Skip to content

Commit 3b8cb4f

Browse files
committed
Update GHA workflow
1 parent bf29e1b commit 3b8cb4f

File tree

1 file changed

+29
-35
lines changed

1 file changed

+29
-35
lines changed

.github/workflows/publish.yml

Lines changed: 29 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)