name: Publish Rust Crate
on:
push:
tags:
- 'v*' workflow_dispatch:
jobs:
build-rust:
name: Build Rust Crate
runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Build Rust crate (release)
run: |
cargo build --release
- name: Upload Rust binary
uses: actions/upload-artifact@v4
with:
name: rust-binary
path: target/release/
publish-rust:
name: Publish Rust Crate
needs: build-rust
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
- name: Download Rust binary
uses: actions/download-artifact@v4
with:
name: rust-binary
path: target/release/
- name: Publish Rust crate
run: |
echo "Publishing Rust crate..."
cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}