@@ -27,29 +27,40 @@ jobs:
2727 - name : Build Extension
2828 run : npm run vsix
2929
30- - name : Check if pre-release
31- id : check_prerelease
32- run : |
33- if [[ ${{ github.ref }} =~ .*-pre.* ]]; then
34- echo "is_prerelease=true" >> $GITHUB_OUTPUT
35- else
36- echo "is_prerelease=false" >> $GITHUB_OUTPUT
37- fi
38-
3930 - name : Upload extension to Actions Artifact
4031 uses : actions/upload-artifact@v4
4132 with :
4233 name : shiny-vscode
4334 path : " shiny*.vsix"
4435
36+ check-ref :
37+ runs-on : ubuntu-latest
38+ outputs :
39+ should_publish : ${{ steps.check.outputs.should_publish }}
40+ is_prerelease : ${{ steps.check.outputs.is_prerelease }}
41+ steps :
42+ - id : check
43+ run : |
44+ if [[ "${{ github.ref_type }}" == "tag" ]]; then
45+ echo "should_publish=true" >> $GITHUB_OUTPUT
46+ echo "is_prerelease=false" >> $GITHUB_OUTPUT
47+ elif [[ "${{ github.ref_type }}" == "branch" ]] && [[ "${{ github.ref_name }}" =~ ^v[0-9.]+-pre[0-9]*$ ]]; then
48+ echo "should_publish=true" >> $GITHUB_OUTPUT
49+ echo "is_prerelease=true" >> $GITHUB_OUTPUT
50+ else
51+ echo "should_publish=false" >> $GITHUB_OUTPUT
52+ echo "is_prerelease=false" >> $GITHUB_OUTPUT
53+ fi
54+
4555 publish-open-vsx :
4656 runs-on : ubuntu-latest
57+ needs :
58+ - build-vsix
59+ - check-ref
4760 if : |
4861 github.event_name == 'push' &&
49- github.ref_type == 'tag ' &&
62+ needs.check-ref.outputs.should_publish == 'true ' &&
5063 github.repository_owner == 'posit-dev'
51- needs :
52- - build-vsix
5364 steps :
5465 - uses : actions/checkout@v4
5566 - uses : actions/setup-node@v4
@@ -58,30 +69,22 @@ jobs:
5869
5970 - run : npm ci
6071
61- - name : Check if pre-release
62- id : check_prerelease
63- run : |
64- if [[ ${{ github.ref }} =~ .*-pre.* ]]; then
65- echo "is_prerelease=true" >> $GITHUB_OUTPUT
66- else
67- echo "is_prerelease=false" >> $GITHUB_OUTPUT
68- fi
69-
7072 - name : Publish to Open VSX Registry
7173 uses : HaaLeo/publish-vscode-extension@v1
7274 with :
7375 pat : ${{ secrets.OPEN_VSX_TOKEN }}
7476 skipDuplicate : true
75- preRelease : ${{ steps.check_prerelease .outputs.is_prerelease }}
77+ preRelease : ${{ needs.check-ref .outputs.is_prerelease }}
7678
7779 publish-vscode-marketplace :
7880 runs-on : ubuntu-latest
81+ needs :
82+ - build-vsix
83+ - check-ref
7984 if : |
8085 github.event_name == 'push' &&
81- github.ref_type == 'tag ' &&
86+ needs.check-ref.outputs.should_publish == 'true ' &&
8287 github.repository_owner == 'posit-dev'
83- needs :
84- - build-vsix
8588 steps :
8689 - uses : actions/checkout@v4
8790 - uses : actions/setup-node@v4
@@ -90,19 +93,10 @@ jobs:
9093
9194 - run : npm ci
9295
93- - name : Check if pre-release
94- id : check_prerelease
95- run : |
96- if [[ ${{ github.ref }} =~ .*-pre.* ]]; then
97- echo "is_prerelease=true" >> $GITHUB_OUTPUT
98- else
99- echo "is_prerelease=false" >> $GITHUB_OUTPUT
100- fi
101-
10296 - name : Publish to Visual Studio Marketplace
10397 uses : HaaLeo/publish-vscode-extension@v1
10498 with :
10599 pat : ${{ secrets.VSCE_PAT }}
106100 skipDuplicate : true
107101 registryUrl : https://marketplace.visualstudio.com
108- preRelease : ${{ steps.check_prerelease .outputs.is_prerelease }}
102+ preRelease : ${{ needs.check-ref .outputs.is_prerelease }}
0 commit comments