75 lines
2.4 KiB
YAML
75 lines
2.4 KiB
YAML
name: rust-binary-build
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
pull_request:
|
|
branches: [ "main" ]
|
|
paths:
|
|
- 'rust-toolchain.toml'
|
|
- 'adk-rust/**'
|
|
- 'scripts/package_rust_release_binaries.py'
|
|
- '.github/workflows/rust-binary-build.yml'
|
|
push:
|
|
tags:
|
|
- 'v*'
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
build-linux-x86_64:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 60
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install pinned Rust toolchain
|
|
run: |
|
|
rustup toolchain install 1.94.0 --profile minimal --component rustfmt --component clippy
|
|
rustup override set 1.94.0
|
|
rustup show active-toolchain
|
|
cargo +1.94.0 --version
|
|
rustc +1.94.0 --version
|
|
|
|
- name: Build release binaries
|
|
run: cargo +1.94.0 build --manifest-path adk-rust/Cargo.toml --workspace --release
|
|
|
|
- name: Package release binaries
|
|
run: |
|
|
python3 scripts/package_rust_release_binaries.py \
|
|
--release-dir adk-rust/target/release \
|
|
--out-dir dist/awatch-rus-linux-x86_64 \
|
|
--archive dist/awatch-rus-linux-x86_64-release-binaries.tar.gz \
|
|
--target linux-x86_64 \
|
|
--commit "${GITHUB_SHA}" \
|
|
--ref "${GITHUB_REF}" \
|
|
--run-id "${GITHUB_RUN_ID}"
|
|
|
|
- name: Upload release binaries artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: awatch-rus-linux_x86_64-release-binaries
|
|
path: |
|
|
dist/awatch-rus-linux_x86_64-release-binaries.tar.gz
|
|
dist/awatch-rus-linux_x86_64-release-binaries.tar.gz.sha256
|
|
dist/awatch-rus-linux_x86_64/BINARIES.txt
|
|
dist/awatch-rus-linux_x86_64/SHA256SUMS.txt
|
|
dist/awatch-rus-linux_x86_64/BUILD_MANIFEST.json
|
|
if-no-files-found: error
|
|
retention-days: 30
|
|
|
|
- name: Publish GitHub Release assets
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
generate_release_notes: true
|
|
fail_on_unmatched_files: true
|
|
files: |
|
|
dist/awatch-rus-linux_x86_64-release-binaries.tar.gz
|
|
dist/awatch-rus-linux_x86_64-release-binaries.tar.gz.sha256
|
|
dist/awatch-rus-linux_x86_64/BINARIES.txt
|
|
dist/awatch-rus-linux_x86_64/SHA256SUMS.txt
|
|
dist/awatch-rus-linux_x86_64/BUILD_MANIFEST.json
|