This repository has been archived by the owner on Dec 16, 2024. It is now read-only.
Compile CLI wallet binaries #64
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Compile CLI wallet binaries | |
on: | |
workflow_dispatch: | |
inputs: | |
dusk_blockchain_ref: | |
description: "GIT branch, ref, or SHA to checkout" | |
required: true | |
default: "main" | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
build_and_publish: | |
name: Build rusk-wallet binaries for ${{ matrix.os }} with ${{ matrix.compiler }}. | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, ubuntu-22.04, macos-latest, macos-11, windows-latest] | |
compiler: [cargo] | |
include: | |
- os: ubuntu-20.04 | |
compiler: cargo | |
target: linux-x64 | |
- os: ubuntu-22.04 | |
compiler: cargo | |
target: linux-x64-libssl3 | |
- os: macos-latest | |
compiler: cargo | |
target: macos-intel | |
- os: macos-11 | |
compiler: cargo | |
target: macos-arm64 | |
flags: --target=aarch64-apple-darwin | |
platform: aarch64-apple-darwin | |
- os: windows-latest | |
compiler: cargo | |
target: windows-x64 | |
outputs: | |
SEMVER: ${{ steps.semver_output.outputs.SEMVER }} | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.inputs.dusk_blockchain_ref }} | |
- name: Install dependencies | |
uses: dsherret/rust-toolchain-file@v1 | |
- name: Add arm target for Apple Silicon build | |
run: rustup target add aarch64-apple-darwin | |
if: ${{ matrix.os == 'macos-11' }} | |
- name: Build Wallet | |
shell: bash | |
working-directory: ./ | |
run: ${{matrix.compiler}} b --release --verbose ${{matrix.flags}} | |
- name: Get semver from wallet binary | |
run: | | |
ls -la target/release | |
export SEMVER=$(cargo pkgid | perl -lpe 's/.*\@(.*)/$1/') | |
echo "SEMVER=$SEMVER" >> $GITHUB_ENV | |
echo "SEMVER=$SEMVER" >> $GITHUB_OUTPUT | |
- name: "Pack binaries" | |
run: | | |
mkdir -p ./${{env.SEMVER}}-${{matrix.target}} | |
echo "Fetching binary, changelog, and readme files..." | |
mv target/${{matrix.platform}}/release/rusk-wallet ./${{env.SEMVER}}-${{matrix.target}}/rusk-wallet | |
cp CHANGELOG.md ./${{env.SEMVER}}-${{matrix.target}}/ | |
cp README.md ./${{env.SEMVER}}-${{matrix.target}}/ | |
tar -czvf ruskwallet${{env.SEMVER}}-${{matrix.target}}.tar.gz ./${{env.SEMVER}}-${{matrix.target}} | |
ls -la *.gz | |
- name: "Upload Wallet Artifacts" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rusk-wallet-${{env.SEMVER}}-${{matrix.target}} | |
path: ./*.gz | |
retention-days: 5 | |
merge: | |
runs-on: ubuntu-latest | |
needs: build_and_publish | |
steps: | |
- name: Merge Artifacts | |
uses: actions/upload-artifact/merge@v4 | |
with: | |
name: wallet-binaries-${{needs.build_and_publish.outputs.SEMVER}} | |
pattern: rusk-wallet-* |