8181 check_package "@salesforce/b2c-cli" "packages/b2c-cli" "cli"
8282 check_package "@salesforce/b2c-dx-mcp" "packages/b2c-dx-mcp" "mcp"
8383
84+ # VS Code extension — compare against git tags (not npm)
85+ LOCAL_VSX_VERSION=$(node -p "require('./packages/b2c-vs-extension/package.json').version")
86+ LAST_VSX_TAG=$(git tag -l "b2c-vs-extension@*" --sort=-v:refname | head -1 | sed 's/b2c-vs-extension@//')
87+ echo "b2c-vs-extension: local=${LOCAL_VSX_VERSION} tag=${LAST_VSX_TAG:-none}"
88+ if [ "$LOCAL_VSX_VERSION" != "$LAST_VSX_TAG" ]; then
89+ echo "publish_vsx=true" >> $GITHUB_OUTPUT
90+ echo "version_vsx=${LOCAL_VSX_VERSION}" >> $GITHUB_OUTPUT
91+ else
92+ echo "publish_vsx=false" >> $GITHUB_OUTPUT
93+ fi
94+
8495 - name : Create snapshot versions
8596 if : steps.release-type.outputs.type == 'nightly'
8697 run : |
@@ -114,6 +125,11 @@ jobs:
114125 if : steps.release-type.outputs.type == 'nightly' || steps.packages.outputs.publish_mcp == 'true'
115126 run : pnpm --filter @salesforce/b2c-dx-mcp publish --provenance --no-git-checks --tag ${{ steps.release-type.outputs.tag }}
116127
128+ - name : Package VS Code extension
129+ if : steps.release-type.outputs.type == 'stable' && steps.packages.outputs.publish_vsx == 'true'
130+ working-directory : packages/b2c-vs-extension
131+ run : pnpm run package
132+
117133 - name : Create git tags
118134 if : steps.release-type.outputs.type == 'stable'
119135 run : |
@@ -140,6 +156,12 @@ jobs:
140156 TAGS_CREATED="$TAGS_CREATED $TAG"
141157 fi
142158
159+ if [[ "${{ steps.packages.outputs.publish_vsx }}" == "true" ]]; then
160+ TAG="b2c-vs-extension@${{ steps.packages.outputs.version_vsx }}"
161+ git tag "$TAG"
162+ TAGS_CREATED="$TAGS_CREATED $TAG"
163+ fi
164+
143165 if [ -n "$TAGS_CREATED" ]; then
144166 git push origin $TAGS_CREATED
145167 echo "Created tags:$TAGS_CREATED"
@@ -180,6 +202,13 @@ jobs:
180202 extract_latest packages/b2c-tooling-sdk/CHANGELOG.md
181203 echo ""
182204 fi
205+
206+ if [[ "${{ steps.packages.outputs.publish_vsx }}" == "true" ]]; then
207+ echo "## b2c-vs-extension@${{ steps.packages.outputs.version_vsx }}"
208+ echo ""
209+ extract_latest packages/b2c-vs-extension/CHANGELOG.md
210+ echo ""
211+ fi
183212 } > /tmp/release-notes.md
184213
185214 - name : Create GitHub Release
@@ -192,6 +221,8 @@ jobs:
192221 RELEASE_TAG="@salesforce/b2c-tooling-sdk@${{ steps.packages.outputs.version_sdk }}"
193222 elif [[ "${{ steps.packages.outputs.publish_mcp }}" == "true" ]]; then
194223 RELEASE_TAG="@salesforce/b2c-dx-mcp@${{ steps.packages.outputs.version_mcp }}"
224+ elif [[ "${{ steps.packages.outputs.publish_vsx }}" == "true" ]]; then
225+ RELEASE_TAG="b2c-vs-extension@${{ steps.packages.outputs.version_vsx }}"
195226 else
196227 echo "No packages published, skipping release"
197228 exit 0
@@ -223,6 +254,8 @@ jobs:
223254 RELEASE_TAG="@salesforce/b2c-tooling-sdk@${{ steps.packages.outputs.version_sdk }}"
224255 elif [[ "${{ steps.packages.outputs.publish_mcp }}" == "true" ]]; then
225256 RELEASE_TAG="@salesforce/b2c-dx-mcp@${{ steps.packages.outputs.version_mcp }}"
257+ elif [[ "${{ steps.packages.outputs.publish_vsx }}" == "true" ]]; then
258+ RELEASE_TAG="b2c-vs-extension@${{ steps.packages.outputs.version_vsx }}"
226259 else
227260 echo "No release to upload to"
228261 exit 0
@@ -231,3 +264,24 @@ jobs:
231264 gh release upload "$RELEASE_TAG" b2c-skills.zip b2c-cli-skills.zip
232265 env :
233266 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
267+
268+ - name : Upload VS Code extension to release
269+ if : steps.release-type.outputs.type == 'stable' && steps.packages.outputs.publish_vsx == 'true'
270+ run : |
271+ # Determine the release tag (same logic as Create GitHub Release)
272+ if [[ "${{ steps.packages.outputs.publish_cli }}" == "true" ]]; then
273+ RELEASE_TAG="@salesforce/b2c-cli@${{ steps.packages.outputs.version_cli }}"
274+ elif [[ "${{ steps.packages.outputs.publish_sdk }}" == "true" ]]; then
275+ RELEASE_TAG="@salesforce/b2c-tooling-sdk@${{ steps.packages.outputs.version_sdk }}"
276+ elif [[ "${{ steps.packages.outputs.publish_mcp }}" == "true" ]]; then
277+ RELEASE_TAG="@salesforce/b2c-dx-mcp@${{ steps.packages.outputs.version_mcp }}"
278+ elif [[ "${{ steps.packages.outputs.publish_vsx }}" == "true" ]]; then
279+ RELEASE_TAG="b2c-vs-extension@${{ steps.packages.outputs.version_vsx }}"
280+ else
281+ echo "No release to upload to"
282+ exit 0
283+ fi
284+
285+ gh release upload "$RELEASE_TAG" packages/b2c-vs-extension/*.vsix
286+ env :
287+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments