44 push :
55 tags :
66 - ' v*'
7+ workflow_dispatch :
8+ inputs :
9+ version :
10+ description : ' Version to publish (e.g. 0.16.0)'
11+ required : true
12+ type : string
713
814permissions :
915 contents : write
@@ -25,34 +31,22 @@ jobs:
2531 - name : Extract version from tag
2632 id : version
2733 run : |
28- VERSION=${GITHUB_REF#refs/tags/v}
34+ if [ -n "${{ inputs.version }}" ]; then
35+ VERSION="${{ inputs.version }}"
36+ else
37+ VERSION=${GITHUB_REF#refs/tags/v}
38+ fi
2939 echo "version=$VERSION" >> $GITHUB_OUTPUT
3040 echo "Publishing version: $VERSION"
3141
32- - name : Publish derive crate
33- env :
34- CARGO_REGISTRY_TOKEN : ${{ secrets.CARGO_REGISTRY_TOKEN }}
35- run : cargo publish -p revision-derive
42+ - name : Install cargo-release
43+ run : cargo install cargo-release
3644
37- - name : Wait for revision-derive to be available
38- run : |
39- VERSION="${{ steps.version.outputs.version }}"
40- echo "Waiting for revision-derive $VERSION on crates.io..."
41- for i in {1..60}; do
42- if cargo search revision-derive --limit 1 | grep -q "revision-derive = \"$VERSION\""; then
43- echo "Found revision-derive $VERSION"
44- exit 0
45- fi
46- echo "Retry $i/60..."
47- sleep 5
48- done
49- echo "Timed out waiting for crates.io"
50- exit 1
51-
52- - name : Publish main crate
45+ - name : Publish to crates.io
5346 env :
5447 CARGO_REGISTRY_TOKEN : ${{ secrets.CARGO_REGISTRY_TOKEN }}
55- run : cargo publish -p revision
48+ run : |
49+ cargo release publish --workspace --execute --no-confirm --no-tag --no-push --allow-branch HEAD
5650
5751 - name : Create GitHub Release
5852 uses : softprops/action-gh-release@v1
0 commit comments