77required :true
88type :string
99description :" Version to publish"
10- packageName :
11- required :true
12- type :string
13- description :" Package filename"
1410isPreRelease :
1511required :false
1612type :boolean
2319required :true
2420
2521jobs :
26- publishMS :
27- name :Publish to VS Marketplace
22+ setup :
23+ name :Setup Package Name
2824runs-on :ubuntu-22.04
25+ outputs :
26+ packageName :${{ steps.package.outputs.packageName }}
2927steps :
3028 -uses :actions/checkout@v5
3129
30+ -uses :actions/setup-node@v5
31+ with :
32+ node-version :" 22"
33+
34+ -name :Construct package name
35+ id :package
36+ run :|
37+ EXTENSION_NAME=$(node -e "console.log(require('./package.json').name)")
38+ if [ "${{ inputs.isPreRelease }}" = "true" ]; then
39+ PACKAGE_NAME="${EXTENSION_NAME}-${{ inputs.version }}-pre.vsix"
40+ else
41+ PACKAGE_NAME="${EXTENSION_NAME}-${{ inputs.version }}.vsix"
42+ fi
43+ echo "packageName=$PACKAGE_NAME" >> $GITHUB_OUTPUT
44+ echo "Package name: $PACKAGE_NAME"
45+
46+ publishMS :
47+ name :Publish to VS Marketplace
48+ needs :setup
49+ runs-on :ubuntu-22.04
50+ steps :
3251 -uses :actions/setup-node@v5
3352with :
3453node-version :" 22"
@@ -44,17 +63,16 @@ jobs:
4463run :|
4564 echo "Publishing version ${{ inputs.version }} to VS Marketplace"
4665 if [ "${{ inputs.isPreRelease }}" = "true" ]; then
47- vsce publish --pre-release --packagePath "./${{inputs .packageName }}" -p ${{ secrets.VSCE_PAT }}
66+ vsce publish --pre-release --packagePath "./${{needs.setup.outputs .packageName }}" -p ${{ secrets.VSCE_PAT }}
4867 else
49- vsce publish --packagePath "./${{inputs .packageName }}" -p ${{ secrets.VSCE_PAT }}
68+ vsce publish --packagePath "./${{needs.setup.outputs .packageName }}" -p ${{ secrets.VSCE_PAT }}
5069 fi
5170
5271publishOVSX :
5372name :Publish to Open VSX
73+ needs :setup
5474runs-on :ubuntu-22.04
5575steps :
56- -uses :actions/checkout@v5
57-
5876 -uses :actions/setup-node@v5
5977with :
6078node-version :" 22"
@@ -70,19 +88,18 @@ jobs:
7088run :|
7189 echo "Publishing version ${{ inputs.version }} to Open VSX"
7290 if [ "${{ inputs.isPreRelease }}" = "true" ]; then
73- ovsx publish "./${{inputs .packageName }}" --pre-release -p ${{ secrets.OVSX_PAT }}
91+ ovsx publish "./${{needs.setup.outputs .packageName }}" --pre-release -p ${{ secrets.OVSX_PAT }}
7492 else
75- ovsx publish "./${{inputs .packageName }}" -p ${{ secrets.OVSX_PAT }}
93+ ovsx publish "./${{needs.setup.outputs .packageName }}" -p ${{ secrets.OVSX_PAT }}
7694 fi
7795
7896publishGH :
7997name :Create GitHub ${{ inputs.isPreRelease && 'Pre-' || '' }}Release
98+ needs :setup
8099runs-on :ubuntu-22.04
81100permissions :
82101contents :write
83102steps :
84- -uses :actions/checkout@v5
85-
86103 -uses :actions/download-artifact@v5
87104with :
88105name :extension-${{ inputs.version }}
94111prerelease :${{ inputs.isPreRelease }}
95112draft :true
96113title :" ${{ inputs.isPreRelease && 'Pre-' || '' }}Release v${{ inputs.version }}"
97- files :${{inputs .packageName }}
114+ files :${{needs.setup.outputs .packageName }}