From 378429ae67d6649705edd690d67617713ce67892 Mon Sep 17 00:00:00 2001 From: Leigh McCulloch <351529+leighmcculloch@users.noreply.github.com> Date: Thu, 1 Dec 2022 11:28:02 -0800 Subject: [PATCH] Add publishing binaries to GitHub Releases (#208) * Add publishing binaries to GitHub Releases * Retroactively publish v0.0.8 binaries * Revert "Retroactively publish v0.0.8 binaries" --- .github/workflows/publish.yml | 56 +++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 6a132a09..2f3e2a33 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,9 +4,65 @@ on: release: types: [published] +defaults: + run: + shell: bash + jobs: publish: uses: stellar/actions/.github/workflows/rust-publish.yml@main secrets: CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + + upload: + strategy: + matrix: + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + - os: ubuntu-latest + 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: 'stellar-xdr-${{ 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 -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 stellar-xdr-$VERSION.crate + cd stellar-xdr-$VERSION + cargo build --target-dir=../.. --release --target ${{ matrix.target }} --features cli + - uses: actions/upload-artifact@v3 + with: + name: ${{ env.NAME }} + path: 'target/${{ matrix.target }}/release/stellar-xdr${{ matrix.ext }}' + - 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 }}${{ matrix.ext }}', + data: fs.readFileSync('target/${{ matrix.target }}/release/stellar-xdr${{ matrix.ext }}'), + });