name: Release on: push: tags: - 'v*' permissions: contents: write jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - run: cargo test publish: needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable - name: Publish to crates.io run: cargo publish env: CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} release: needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: generate_release_notes: true