---
name: test & build
on:
push:
branches:
- '**'
workflow_dispatch:
permissions:
contents: read
env:
CARGO_TERM_COLOR: always
jobs:
test:
uses: ./.github/workflows/test.yml
build:
runs-on: ubuntu-latest
needs: test
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache Rust build artifacts
uses: Swatinem/rust-cache@v2
- name: Build release binary
run: cargo build --release --locked
- name: Compress binary
run: gzip -f -k target/release/hfile
- name: Upload build artifacts
uses: actions/upload-artifact@v7
with:
if-no-files-found: error
name: hfile-release
path: |
target/release/hfile
target/release/hfile.gz