From 5a938d984b4eeea61d793a51c336fb833379fb5c Mon Sep 17 00:00:00 2001 From: zackverham <96081108+zackverham@users.noreply.github.com> Date: Wed, 3 Jun 2026 16:54:47 -0400 Subject: [PATCH 1/3] Replace HaaLeo/publish-vscode-extension with inline publish steps The HaaLeo action is a Node.js-based action that introduces runtime version dependencies. Replace it with inline bash steps that call vsce/ovsx directly via npx, matching the approach we prototyped in posit-gh-actions. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/publish.yaml | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 8fe1d8214..71f420f5c 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -38,12 +38,16 @@ jobs: echo "extension_path=dist/${name}-$(just version).vsix" >> "$GITHUB_OUTPUT" - name: Publish to Visual Studio Marketplace - uses: HaaLeo/publish-vscode-extension@v2 - with: - registryUrl: https://marketplace.visualstudio.com - pat: ${{ secrets.VSCE_PAT }} - extensionFile: ${{ steps.get-extension-path.outputs.extension_path }} - skipDuplicate: true + env: + VSCE_PAT: ${{ secrets.VSCE_PAT }} + EXTENSION_FILE: ${{ steps.get-extension-path.outputs.extension_path }} + run: | + set -euo pipefail + if [[ ! -f "$EXTENSION_FILE" ]]; then + echo "::error::extensionFile not found at: $EXTENSION_FILE" + exit 1 + fi + npx --yes @vscode/vsce@2 publish --packagePath "$EXTENSION_FILE" --skip-duplicate publish-open-vsx: needs: @@ -66,8 +70,13 @@ jobs: echo "extension_path=dist/${name}-$(just version).vsix" >> "$GITHUB_OUTPUT" - name: Publish to Open VSX Registry - uses: HaaLeo/publish-vscode-extension@v2 - with: - pat: ${{ secrets.OPEN_VSX_TOKEN }} - extensionFile: ${{ steps.get-extension-path.outputs.extension_path }} - skipDuplicate: true + env: + OVSX_TOKEN: ${{ secrets.OPEN_VSX_TOKEN }} + EXTENSION_FILE: ${{ steps.get-extension-path.outputs.extension_path }} + run: | + set -euo pipefail + if [[ ! -f "$EXTENSION_FILE" ]]; then + echo "::error::extensionFile not found at: $EXTENSION_FILE" + exit 1 + fi + npx --yes ovsx@0 publish "$EXTENSION_FILE" --skip-duplicate From 54d0e6c9912fbb62ea45cb06954496fe13b4ba47 Mon Sep 17 00:00:00 2001 From: zackverham <96081108+zackverham@users.noreply.github.com> Date: Wed, 3 Jun 2026 17:04:22 -0400 Subject: [PATCH 2/3] fix: use OVSX_PAT env var for Open VSX authentication The ovsx CLI reads credentials from OVSX_PAT, not OVSX_TOKEN. Co-Authored-By: Claude Opus 4.6 --- .github/workflows/publish.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 71f420f5c..eb22727b8 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -71,7 +71,7 @@ jobs: - name: Publish to Open VSX Registry env: - OVSX_TOKEN: ${{ secrets.OPEN_VSX_TOKEN }} + OVSX_PAT: ${{ secrets.OPEN_VSX_TOKEN }} EXTENSION_FILE: ${{ steps.get-extension-path.outputs.extension_path }} run: | set -euo pipefail From 5aa605f674c7f098c64ce2ee054cef6d11f90b7f Mon Sep 17 00:00:00 2001 From: zackverham <96081108+zackverham@users.noreply.github.com> Date: Wed, 3 Jun 2026 17:24:56 -0400 Subject: [PATCH 3/3] fix: bump vsce to @3 and ovsx to @1 Co-Authored-By: Claude Opus 4.6 --- .github/workflows/publish.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index eb22727b8..d80814105 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -47,7 +47,7 @@ jobs: echo "::error::extensionFile not found at: $EXTENSION_FILE" exit 1 fi - npx --yes @vscode/vsce@2 publish --packagePath "$EXTENSION_FILE" --skip-duplicate + npx --yes @vscode/vsce@3 publish --packagePath "$EXTENSION_FILE" --skip-duplicate publish-open-vsx: needs: @@ -79,4 +79,4 @@ jobs: echo "::error::extensionFile not found at: $EXTENSION_FILE" exit 1 fi - npx --yes ovsx@0 publish "$EXTENSION_FILE" --skip-duplicate + npx --yes ovsx@1 publish "$EXTENSION_FILE" --skip-duplicate