name: Release & Publish
on:
release:
types: [published]
env:
CARGO_TERM_COLOR: always
jobs:
release:
name: Build release artifacts & publish
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v6
- name: Install Rust toolchain (stable)
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: Swatinem/rust-cache@v2
- name: Build Rust library (release)
run: cargo build --release --verbose
- name: Run tests (release)
run: cargo test --release --verbose
- name: Install cbindgen
run: cargo install cbindgen
- name: Generate C header
run: make header
- name: Build C static & shared libraries (release)
run: |
make static
make dynamic
- name: Prepare release assets
run: |
mkdir -p release-artifacts
cp target/release/libauthcekunit.so release-artifacts/
cp target/release/libauthcekunit.a release-artifacts/
cp libauthcekunit.h release-artifacts/
- name: Upload assets to GitHub Release
uses: softprops/action-gh-release@v3
with:
files: |
release-artifacts/libauthcekunit.so
release-artifacts/libauthcekunit.a
release-artifacts/libauthcekunit.h
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Publish to crates.io
run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
continue-on-error: false