Skip to content

v0.9.60rc002

v0.9.60rc002 #20

name: Build and Release truss-transfer CLI
on:
release:
types: [published]
workflow_dispatch:
permissions:
contents: write
id-token: write
defaults:
run:
working-directory: truss-transfer
jobs:
build-and-upload-cli:
name: Build and Upload CLI Binaries
strategy:
matrix:
os: [ubuntu-22.04]
target:
- x86_64-unknown-linux-musl
# Can't build OpenSSL on the platforms below from x86 environment
# - aarch64-unknown-linux-musl
# - i686-unknown-linux-musl
# - armv7-unknown-linux-musleabihf
# - powerpc64le-unknown-linux-musl
runs-on: ${{ matrix.os }}
env:
NAME: truss-transfer-cli-${{ github.ref_name }}-linux-${{ matrix.target }}
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Install musl-tools
run: sudo apt-get update && sudo apt-get install -y musl-tools libssl-dev libatomic-ops-dev
- name: Install Rust with musl target
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rust-src
- name: Add musl Target
run: rustup target add ${{ matrix.target }}
- name: Build Statically Linked CLI Binary
run: |
cargo build --release --target ${{ matrix.target }} --features cli --bin truss_transfer_cli
mkdir -p dist/cli
cp target/${{ matrix.target }}/release/truss_transfer_cli dist/cli/${{ env.NAME }}
- name: Test CLI Binary
run: |
sudo mkdir -p /bptr
sudo chown $(whoami):$(whoami) /bptr
cp ./example-bptr-manifest.json /bptr/bptr-manifest
dist/cli/${{ env.NAME }} ./example_bptr_resolved
if [ ! -d "./example_bptr_resolved" ]; then
echo "❌ Test failed: output directory not created."
exit 1
fi
- name: Upload CLI to GitHub Release
uses: softprops/action-gh-release@v2
with:
files: truss-transfer/dist/cli/truss-transfer-cli-*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}