Skip to content

soar nightly

soar nightly #187

Workflow file for this run

name: soar nightly
on:
push:
tags:
- nightly
workflow_dispatch:
permissions:
contents: write
jobs:
remove-nightly-tag:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Remove existing nightly tag
run: |
gh release delete nightly --cleanup-tag || true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
publish-nightly:
name: Publish nightly binaries
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
build:
- {
NAME: x86_64-linux,
TARGET: x86_64-unknown-linux-musl,
}
- {
NAME: aarch64-linux,
TARGET: aarch64-unknown-linux-musl,
}
- {
NAME: riscv64-linux,
TARGET: riscv64gc-unknown-linux-musl
}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get version info
id: version
run: |
SHORT_SHA=$(git rev-parse --short HEAD)
echo "version=nightly-${SHORT_SHA}" >> $GITHUB_OUTPUT
- name: Install dependencies
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
--allow-unauthenticated musl-tools b3sum
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@nightly
with:
targets: ${{ matrix.build.TARGET }}
- name: Install cross-compilation tools
uses: taiki-e/setup-cross-toolchain-action@v1
with:
target: ${{ matrix.build.TARGET }}
- name: Build
run: SOAR_NIGHTLY=1 RUSTFLAGS="-C target-feature=+crt-static" cargo build --release --locked --target ${{ matrix.build.TARGET }}
- name: Prepare release assets
shell: bash
run: |
mkdir -p release
cp {LICENSE,README.md,CHANGELOG.md} release/
cp "target/${{ matrix.build.TARGET }}/release/soar" release/
- name: Create release artifacts
shell: bash
run: |
cp release/soar soar-${{ matrix.build.NAME }}
b3sum soar-${{ matrix.build.NAME }} \
> soar-${{ matrix.build.NAME }}.b3sum
tar -czvf soar-${{ matrix.build.NAME }}.tar.gz \
release/
b3sum soar-${{ matrix.build.NAME }}.tar.gz \
> soar-${{ matrix.build.NAME }}.tar.gz.b3sum
- name: Publish to GitHub (nightly)
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: soar-${{ matrix.build.NAME }}*
file_glob: true
overwrite: true
tag: nightly
release_name: "${{ steps.version.outputs.version }}"
prerelease: true