name: Release
on:
push:
tags:
- "v*"
permissions:
contents: write
id-token: write
env:
CARGO_TERM_COLOR: always
jobs:
release:
name: Create GitHub Release & Publish
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: thumbv7em-none-eabihf
- name: Authenticate with crates.io
id: auth
uses: rust-lang/crates-io-auth-action@v1
- name: Publish to crates.io
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token || secrets.CARGO_REGISTRY_TOKEN }}
run: cargo publish
- name: Install arm-none-eabi binutils
run: sudo apt-get update && sudo apt-get install -y binutils-arm-none-eabi
- name: Build offline tools (host)
run: |
cargo build --release -p asset_cli
tar -czf asset_cli-linux-x86_64.tar.gz -C target/release asset_cli
- name: Build embedded size-harness ELF (thumbv7em)
run: |
RUSTFLAGS="-C link-arg=-Tlink.x" cargo build --release -p size-harness --target thumbv7em-none-eabihf
cp target/thumbv7em-none-eabihf/release/size-harness size-harness-thumbv7em.elf
arm-none-eabi-size size-harness-thumbv7em.elf > size-harness-thumbv7em-report.txt
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
asset_cli-linux-x86_64.tar.gz
size-harness-thumbv7em.elf
size-harness-thumbv7em-report.txt