Skip to content

Commit

Permalink
Fix issue with cc 1.0.86 and macos builds and build binaries on all (s…
Browse files Browse the repository at this point in the history
…tellar#1287)

* Fix issue with cc 1.0.86 and macos builds

* fix

* fix

* update to 1.0.88

* try 1.0.95
  • Loading branch information
leighmcculloch authored and elizabethengelman committed Apr 29, 2024
1 parent bb6c4ab commit fb773e7
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 58 deletions.
73 changes: 73 additions & 0 deletions .github/workflows/binaries.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Binaries

on:
release:
types: [published]
pull_request:

defaults:
run:
shell: bash

jobs:

build:
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-20.04 # Use 20.04 to get an older version of glibc for increased compat
target: x86_64-unknown-linux-gnu
- os: ubuntu-20.04 # Use 20.04 to get an older version of glibc for increased compat
target: aarch64-unknown-linux-gnu
- os: macos-latest
target: x86_64-apple-darwin
- os: macos-latest
target: aarch64-apple-darwin
- os: windows-latest
target: x86_64-pc-windows-msvc
ext: .exe
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- run: rustup update
- run: rustup target add ${{ matrix.target }}
- if: matrix.target == 'aarch64-unknown-linux-gnu'
run: sudo apt-get update && sudo apt-get -y install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
- name: Setup Version and Name
run: |
version="$(cargo metadata --format-version 1 --no-deps | jq -r '.packages[] | select(.name == "soroban-cli") | .version')"
echo "VERSION=${version}" >> $GITHUB_ENV
echo "NAME=soroban-cli-${version}-${{ matrix.target }}" >> $GITHUB_ENV
- name: Package
run: cargo package --no-verify
- name: Build
env:
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
run: |
cd target/package
tar xvfz soroban-cli-$VERSION.crate
cd soroban-cli-$VERSION
cargo build --target-dir=../.. --features opt --release --target ${{ matrix.target }}
- name: Compress
run: |
cd target/${{ matrix.target }}/release
tar czvf $NAME.tar.gz soroban${{ matrix.ext }}
- name: Upload to Artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ env.NAME }}
path: 'target/${{ matrix.target }}/release/${{ env.NAME }}.tar.gz'
- name: Upload to Release
if: github.event_name == 'release'
uses: actions/github-script@v6
with:
script: |
const fs = require('fs');
await github.rest.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: ${{ github.event.release.id }},
name: '${{ env.NAME }}.tar.gz',
data: fs.readFileSync('target/${{ matrix.target }}/release/${{ env.NAME }}.tar.gz'),
});
58 changes: 0 additions & 58 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,61 +14,3 @@ jobs:
uses: stellar/actions/.github/workflows/rust-publish.yml@main
secrets:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

upload:
needs: publish
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-20.04 # Use 20.04 to get an older version of glibc for increased compat
target: x86_64-unknown-linux-gnu
- os: ubuntu-20.04 # Use 20.04 to get an older version of glibc for increased compat
target: aarch64-unknown-linux-gnu
- os: macos-latest
target: x86_64-apple-darwin
- os: macos-latest
target: aarch64-apple-darwin
- os: windows-latest
target: x86_64-pc-windows-msvc
ext: .exe
runs-on: ${{ matrix.os }}
env:
VERSION: '${{ github.event.release.name }}'
NAME: 'soroban-cli-${{ github.event.release.name }}-${{ matrix.target }}'
steps:
- uses: actions/checkout@v3
- run: rustup update
- run: rustup target add ${{ matrix.target }}
- if: matrix.target == 'aarch64-unknown-linux-gnu'
run: sudo apt-get update && sudo apt-get -y install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
- name: Package
run: cargo package --no-verify
- name: Build
env:
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
run: |
cd target/package
tar xvfz soroban-cli-$VERSION.crate
cd soroban-cli-$VERSION
cargo build --target-dir=../.. --features opt --release --target ${{ matrix.target }}
- name: Compress
run: |
cd target/${{ matrix.target }}/release
tar czvf $NAME.tar.gz soroban${{ matrix.ext }}
- uses: actions/upload-artifact@v3
with:
name: ${{ env.NAME }}
path: 'target/${{ matrix.target }}/release/${{ env.NAME }}.tar.gz'
- name: Upload
uses: actions/github-script@v6
with:
script: |
const fs = require('fs');
await github.rest.repos.uploadReleaseAsset({
owner: context.repo.owner,
repo: context.repo.repo,
release_id: ${{ github.event.release.id }},
name: '${{ env.NAME }}.tar.gz',
data: fs.readFileSync('target/${{ matrix.target }}/release/${{ env.NAME }}.tar.gz'),
});

0 comments on commit fb773e7

Please sign in to comment.