wrapc 0.1.6

A zero-fuss, type-safe parser for rustc arguments, designed for RUSTC_WRAPPER tools
Documentation
name: Publish

on:
  push:
    tags:
      - 'v[0-9]+.[0-9]+.[0-9]+'  # strict semver tags only

env:
  CARGO_TERM_COLOR: always
  RUSTFLAGS: -Dwarnings

jobs:
  publish:
    name: Publish wrapc to crates.io
    environment: main
    runs-on: ubuntu-latest
    if: startsWith(github.ref, 'refs/tags/v')
    steps:
      - uses: actions/checkout@v6

      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable

      - name: Install just
        uses: extractions/setup-just@v2

      - name: Cache
        uses: Swatinem/rust-cache@v2

      - name: Validate tag vs manifest
        run: |
          TAG="${GITHUB_REF#refs/tags/v}"
          MANIFEST=$(grep '^version =' Cargo.toml | head -1 | cut -d'"' -f2)
          if [ "$TAG" != "$MANIFEST" ]; then
            echo "::error::Tag $TAG != Cargo.toml version $MANIFEST"
            exit 1
          fi
          echo "+ Version match: $TAG"

      - name: Run full checks
        run: just ci

      - name: Publish to crates.io
        run: cargo publish --token "${{ secrets.CRATES_IO_TOKEN }}"

      - name: Wait for index (optional)
        run: sleep 30
        continue-on-error: true