diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e98a732..4ab93fe 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -105,3 +105,27 @@ jobs: artifacts/SHA256SUMS install.sh uninstall.sh + + publish-crate: + name: Publish to crates.io + needs: release + if: startsWith(github.ref, 'refs/tags/v') + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - name: Install system dependencies + run: sudo apt-get update && sudo apt-get install -y libfontconfig1-dev + + - uses: dtolnay/rust-toolchain@stable + + - name: Verify tag matches Cargo.toml version + run: | + TAG_VERSION="${GITHUB_REF_NAME#v}" + CARGO_VERSION=$(grep '^version' Cargo.toml | head -1 | cut -d'"' -f2) + [ "$TAG_VERSION" = "$CARGO_VERSION" ] || { echo "Tag $TAG_VERSION != Cargo $CARGO_VERSION"; exit 1; } + + - name: Publish + env: + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + run: cargo publish --locked