name: Release on: push: tags: - 'v*' jobs: release: runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v7 - name: Determine tag id: tag run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT - name: Create Release uses: softprops/action-gh-release@v3 with: tag_name: ${{ github.ref_name }} name: RustLock v${{ steps.tag.outputs.VERSION }} draft: true prerelease: ${{ contains(github.ref_name, 'alpha') || contains(github.ref_name, 'beta') }} generate_release_notes: true publish-crates: runs-on: ubuntu-latest needs: [release] steps: - uses: actions/checkout@v7 - uses: ./.github/actions/deps - uses: Swatinem/rust-cache@v2 - uses: dtolnay/rust-toolchain@stable - name: Publish to crates.io env: CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} run: | if [ -z "$CARGO_REGISTRY_TOKEN" ]; then echo "CARGO_REGISTRY_TOKEN not set — skipping publish" exit 0 fi cargo publish