@@ -2,6 +2,11 @@ name: Release
22
33on :
44 workflow_dispatch :
5+ inputs :
6+ overwrite :
7+ description : Overwrite existing release if tag already exists
8+ type : boolean
9+ default : false
510
611jobs :
712 release :
@@ -12,14 +17,16 @@ jobs:
1217
1318 steps :
1419 - name : Checkout repository
15- uses : actions/checkout@v4
20+ uses : actions/checkout@v6
1621
17- - name : Read version from package.json
18- id : version
19- run : echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
22+ - name : Read package info
23+ id : pkg
24+ run : |
25+ echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
26+ echo "name=$(node -p "require('./package.json').name")" >> $GITHUB_OUTPUT
2027
2128 - name : Setup Node.js
22- uses : actions/setup-node@v4
29+ uses : actions/setup-node@v6
2330 with :
2431 node-version : 22
2532
@@ -30,12 +37,17 @@ jobs:
3037 run : npm run ci
3138
3239 - name : Package extension
33- run : npx @vscode/vsce package --no-dependencies -o github-copilot-usage- ${{ steps.version .outputs.version }}.vsix
40+ run : npx @vscode/vsce package --no-dependencies -o ${{ steps.pkg.outputs.name }}- ${{ steps.pkg .outputs.version }}.vsix
3441
3542 - name : Create GitHub Release
36- uses : softprops/action-gh-release@v2
37- with :
38- tag_name : v${{ steps.version.outputs.version }}
39- name : v${{ steps.version.outputs.version }}
40- generate_release_notes : true
41- files : github-copilot-usage-${{ steps.version.outputs.version }}.vsix
43+ env :
44+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
45+ run : |
46+ TAG="v${{ steps.pkg.outputs.version }}"
47+ if [[ "${{ inputs.overwrite }}" == "true" ]]; then
48+ gh release delete "$TAG" --yes --cleanup-tag 2>/dev/null || true
49+ fi
50+ gh release create "$TAG" \
51+ --title "$TAG" \
52+ --generate-notes \
53+ "${{ steps.pkg.outputs.name }}-${{ steps.pkg.outputs.version }}.vsix"
0 commit comments