@@ -2,7 +2,13 @@ name: CI
22
33on :
44 release :
5- types : [created, edited]
5+ types : [created, edited, published, unpublished, prereleased, released]
6+ workflow_dispatch :
7+ inputs :
8+ tag :
9+ description : ' Tag to build (e.g., v1.0.43)'
10+ required : false
11+ type : string
612
713env :
814 ARCHIVE_NAME : AXe-macOS # Name for the release archive
4147 - name : Extract version from tag
4248 id : version
4349 run : |
44- VERSION=${GITHUB_REF#refs/tags/v}
50+ if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
51+ # Manual trigger - use provided tag or latest tag
52+ if [ -n "${{ github.event.inputs.tag }}" ]; then
53+ TAG="${{ github.event.inputs.tag }}"
54+ else
55+ # Get the latest tag
56+ TAG=$(git describe --tags --abbrev=0)
57+ fi
58+ echo "Using tag from manual trigger: $TAG"
59+ else
60+ # Release event - use the release tag
61+ TAG=${GITHUB_REF#refs/tags/}
62+ echo "Using tag from release event: $TAG"
63+ fi
64+
65+ VERSION=${TAG#v}
4566 echo "version=$VERSION" >> $GITHUB_OUTPUT
46- echo "tag=${GITHUB_REF#refs/tags/} " >> $GITHUB_OUTPUT
67+ echo "tag=$TAG " >> $GITHUB_OUTPUT
4768 echo "Building version: $VERSION"
4869
4970 - name : Restore idb repository cache
@@ -278,6 +299,7 @@ jobs:
278299 fi
279300
280301 - name : Delete existing release asset (if re-running)
302+ if : github.event_name == 'release'
281303 continue-on-error : true
282304 run : |
283305 ASSET_NAME="${{ steps.create_archive.outputs.archive_name }}"
@@ -298,6 +320,7 @@ jobs:
298320 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
299321
300322 - name : Upload release asset
323+ if : github.event_name == 'release'
301324 uses : actions/upload-release-asset@v1
302325 env :
303326 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
@@ -307,8 +330,18 @@ jobs:
307330 asset_name : ${{ steps.create_archive.outputs.archive_name }}
308331 asset_content_type : application/gzip
309332
333+ - name : Upload build artifact (manual trigger)
334+ if : github.event_name == 'workflow_dispatch'
335+ uses : actions/upload-artifact@v4
336+ with :
337+ name : ${{ steps.create_archive.outputs.archive_name }}
338+ path : ${{ steps.create_archive.outputs.archive_name }}
339+ retention-days : 30
340+
310341 - name : Update Homebrew tap
311- if : ${{ !github.event.release.prerelease }}
342+ if : |
343+ (github.event_name == 'release' && !github.event.release.prerelease) ||
344+ (github.event_name == 'workflow_dispatch')
312345 env :
313346 HOMEBREW_TAP_TOKEN : ${{ secrets.HOMEBREW_TAP_TOKEN }}
314347 run : |
@@ -318,7 +351,12 @@ jobs:
318351 exit 0
319352 fi
320353
321- echo "🍺 Updating Homebrew tap..."
354+ if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
355+ echo "🍺 Updating Homebrew tap (manual trigger)..."
356+ else
357+ echo "🍺 Updating Homebrew tap (release event)..."
358+ fi
359+
322360 git clone https://x-access-token:${HOMEBREW_TAP_TOKEN}@github.com/cameroncooke/homebrew-axe.git tap-repo
323361 cd tap-repo
324362
0 commit comments