Skip to content

Handle long version when git ref is not available. #4205

Handle long version when git ref is not available.

Handle long version when git ref is not available. #4205

Workflow file for this run

name: Binaries
on:
release:
types: [published]
pull_request:
concurrency:
group:
${{ github.workflow }}-${{ github.ref_protected == 'true' && github.sha ||
github.ref }}-{{ github.event_name }}
cancel-in-progress: true
defaults:
run:
shell: bash
permissions:
id-token: write
contents: write
attestations: write
jobs:
build:
strategy:
fail-fast: false
matrix:
crate:
- name: stellar-cli
binary: stellar
sys:
- os: ubuntu-22.04 # Use 22 to get an older version of glibc for increased compat
target: x86_64-unknown-linux-gnu
- os: ubuntu-22.04-arm # Use 22 to get an older version of glibc for increased compat
target: aarch64-unknown-linux-gnu
runs-on: ${{ matrix.sys.os }}
steps:
- uses: actions/checkout@v5
- uses: ./.github/actions/build-binary
with:
target: ${{ matrix.sys.target }}
crate-name: ${{ matrix.crate.name }}
binary-name: ${{ matrix.crate.binary }}
build-macos:
if:
github.event_name == 'release' || github.ref == 'refs/heads/main' ||
startsWith(github.ref, 'refs/heads/release/') || startsWith(github.head_ref, 'release/')
strategy:
fail-fast: false
matrix:
crate:
- name: stellar-cli
binary: stellar
sys:
- os: macos-15
target: aarch64-apple-darwin
- os: macos-15-intel
target: x86_64-apple-darwin
runs-on: ${{ matrix.sys.os }}
steps:
- uses: actions/checkout@v5
- uses: ./.github/actions/build-binary
with:
target: ${{ matrix.sys.target }}
crate-name: ${{ matrix.crate.name }}
binary-name: ${{ matrix.crate.binary }}
build-windows:
if:
github.event_name == 'release' || github.ref == 'refs/heads/main' ||
startsWith(github.ref, 'refs/heads/release/') || startsWith(github.head_ref, 'release/')
strategy:
fail-fast: false
matrix:
crate:
- name: stellar-cli
binary: stellar
sys:
- os: windows-latest
target: x86_64-pc-windows-msvc
ext: .exe
runs-on: ${{ matrix.sys.os }}
steps:
- uses: actions/checkout@v5
- uses: ./.github/actions/build-binary
with:
target: ${{ matrix.sys.target }}
crate-name: ${{ matrix.crate.name }}
binary-name: ${{ matrix.crate.binary }}
binary-ext: ${{ matrix.sys.ext }}
installer:
needs: [build, build-macos, build-windows]
runs-on: windows-latest
steps:
- uses: actions/checkout@v5
- name: Setup vars
run: |
version="$(cargo metadata --format-version 1 --no-deps | jq -r '.packages[] | select(.name == "stellar-cli") | .version')"
installer_basename="stellar-cli-installer-${version}-x86_64-pc-windows-msvc"
echo "VERSION=${version}" >> $GITHUB_ENV
echo "STELLAR_CLI_INSTALLER_BASENAME=${installer_basename}" >> $GITHUB_ENV
echo "STELLAR_CLI_INSTALLER=${installer_basename}.exe" >> $GITHUB_ENV
echo "ARTIFACT_NAME=stellar-cli-${version}-x86_64-pc-windows-msvc.tar.gz" >> $GITHUB_ENV
- name: Download Artifact
uses: actions/download-artifact@v5
with:
name: ${{ env.ARTIFACT_NAME }}
- name: Uncompress Artifact
run: tar xvf ${{ env.ARTIFACT_NAME }}
- shell: powershell
run: winget install --id JRSoftware.InnoSetup --scope machine --silent --accept-package-agreements --accept-source-agreements --force
- shell: powershell
run: |
$innoPath = "C:\Program Files (x86)\Inno Setup 6"
echo $innoPath | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Build Installer
shell: powershell
run: |
$Env:STELLAR_CLI_VERSION = "${{ env.VERSION }}"
ISCC.exe installer.iss
mv Output/stellar-installer.exe ${{ env.STELLAR_CLI_INSTALLER }}
- name: Upload Artifact
uses: ./.github/actions/artifact-upload
with:
name: ${{ env.STELLAR_CLI_INSTALLER }}
path: ${{ env.STELLAR_CLI_INSTALLER }}