shieldcontract 0.2.0

Advanced security analysis for blockchain platforms
Documentation
name: Publish to crates.io

on:
  push:
    tags:
      - 'v*'

jobs:
  publish:
    name: Publish to crates.io
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Install Z3
        run: |
          sudo apt-get update && sudo apt-get install -y z3 libz3-dev
          echo "Z3_SYS_Z3_HEADER=/usr/include/z3.h" >> $GITHUB_ENV
      
      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: 1.82.0
      
      - name: Check version consistency
        run: |
          CARGO_VERSION=$(grep '^version' Cargo.toml | head -1 | cut -d'"' -f2)
          TAG_VERSION=${GITHUB_REF#refs/tags/v}
          if [ "$CARGO_VERSION" != "$TAG_VERSION" ]; then
            echo "Error: Cargo.toml version ($CARGO_VERSION) doesn't match tag version ($TAG_VERSION)"
            exit 1
          fi
      
      - name: Publish to crates.io
        run: cargo publish --token ${{ secrets.CRATES_IO_TOKEN }}
        env:
          CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}