name: Release SDK Rust (crates.io)
on:
push:
tags:
- "[0-9]+.[0-9]+.[0-9]+"
workflow_dispatch:
permissions:
contents: read
jobs:
publish:
name: cargo publish
runs-on: macos-26
env:
GRESIQ_API_KEY_DEV: ${{ secrets.GRESIQ_API_KEY_DEV }}
GRESIQ_API_SECRET_DEV: ${{ secrets.GRESIQ_API_SECRET_DEV }}
GRESIQ_API_KEY_PRODUCTION: ${{ secrets.GRESIQ_API_KEY_PRODUCTION }}
GRESIQ_API_SECRET_PRODUCTION: ${{ secrets.GRESIQ_API_SECRET_PRODUCTION }}
HF_TOKEN: ${{ secrets.HF_TOKEN }}
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install stable Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Validate tag matches Cargo.toml version
if: startsWith(github.ref, 'refs/tags/')
run: |
TAG="${GITHUB_REF#refs/tags/}"
CRATE_VERSION=$(grep '^version' Cargo.toml | head -1 | sed 's/version = "//;s/"//')
echo "Tag: $TAG"
echo "Crate: $CRATE_VERSION"
if [ "$TAG" != "$CRATE_VERSION" ]; then
echo "::error::Tag '$TAG' does not match Cargo.toml version '$CRATE_VERSION'."
exit 1
fi
- name: cargo publish --dry-run
run: cargo publish --dry-run
- name: cargo publish
if: startsWith(github.ref, 'refs/tags/')
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
run: cargo publish