Skip to content

Commit 5ee4868

Browse files
committed
fix: activate VS Code extension on startup and improve release workflow
Activate the extension via onStartupFinished so the instance selector status bar appears without requiring the user to open the B2C sidebar first. Tree views remain lazy — no network calls until the view is opened. Improve GitHub releases: give main releases a descriptive title listing published packages, move the VSIX exclusively to a dedicated VS Code extension release (with changelog + install instructions), and prevent tag collisions when the extension is the only published package.
1 parent c5edd5d commit 5ee4868

2 files changed

Lines changed: 45 additions & 49 deletions

File tree

.github/workflows/publish.yml

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,8 @@ jobs:
394394
- name: Create GitHub Release
395395
if: steps.release-type.outputs.type == 'stable' && steps.changesets.outputs.skip != 'true' && steps.quick-check.outputs.skip != 'true'
396396
run: |
397-
# Determine the release tag — prefer CLI as the user-facing product
397+
# Determine the release tag — prefer CLI as the user-facing product.
398+
# VSX is excluded: it gets its own dedicated release to avoid tag collisions.
398399
if [[ "${{ steps.packages.outputs.publish_cli }}" == "true" ]]; then
399400
RELEASE_TAG="@salesforce/b2c-cli@${{ steps.packages.outputs.version_cli }}"
400401
elif [[ "${{ steps.packages.outputs.publish_sdk }}" == "true" ]]; then
@@ -403,18 +404,27 @@ jobs:
403404
RELEASE_TAG="@salesforce/b2c-dx-mcp@${{ steps.packages.outputs.version_mcp }}"
404405
elif [[ "${{ steps.packages.outputs.publish_mrt }}" == "true" ]]; then
405406
RELEASE_TAG="@salesforce/mrt-utilities@${{ steps.packages.outputs.version_mrt }}"
406-
elif [[ "${{ steps.packages.outputs.publish_vsx }}" == "true" ]]; then
407-
RELEASE_TAG="b2c-vs-extension@${{ steps.packages.outputs.version_vsx }}"
408407
elif [[ "${{ steps.packages.outputs.publish_docs }}" == "true" ]]; then
409408
RELEASE_TAG="docs@${{ steps.packages.outputs.version_docs }}"
410409
elif [[ "${{ steps.packages.outputs.publish_plugins }}" == "true" ]]; then
411410
RELEASE_TAG="b2c-agent-plugins@${{ steps.packages.outputs.version_plugins }}"
412411
else
413-
echo "No packages published, skipping release"
412+
echo "No non-VSX packages published, skipping main release"
414413
exit 0
415414
fi
416415
417-
gh release create "$RELEASE_TAG" --notes-file /tmp/release-notes.md
416+
# Build a human-readable title from published package versions
417+
TITLE_PARTS=()
418+
[[ "${{ steps.packages.outputs.publish_cli }}" == "true" ]] && TITLE_PARTS+=("b2c-cli ${{ steps.packages.outputs.version_cli }}")
419+
[[ "${{ steps.packages.outputs.publish_sdk }}" == "true" ]] && TITLE_PARTS+=("b2c-tooling-sdk ${{ steps.packages.outputs.version_sdk }}")
420+
[[ "${{ steps.packages.outputs.publish_mcp }}" == "true" ]] && TITLE_PARTS+=("b2c-dx-mcp ${{ steps.packages.outputs.version_mcp }}")
421+
[[ "${{ steps.packages.outputs.publish_mrt }}" == "true" ]] && TITLE_PARTS+=("mrt-utilities ${{ steps.packages.outputs.version_mrt }}")
422+
[[ "${{ steps.packages.outputs.publish_vsx }}" == "true" ]] && TITLE_PARTS+=("b2c-vs-extension ${{ steps.packages.outputs.version_vsx }}")
423+
[[ "${{ steps.packages.outputs.publish_docs }}" == "true" ]] && TITLE_PARTS+=("docs ${{ steps.packages.outputs.version_docs }}")
424+
[[ "${{ steps.packages.outputs.publish_plugins }}" == "true" ]] && TITLE_PARTS+=("agent-plugins ${{ steps.packages.outputs.version_plugins }}")
425+
RELEASE_TITLE="Version Packages — $(IFS=', '; echo "${TITLE_PARTS[*]}")"
426+
427+
gh release create "$RELEASE_TAG" --title "$RELEASE_TITLE" --notes-file /tmp/release-notes.md
418428
env:
419429
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
420430

@@ -433,7 +443,7 @@ jobs:
433443
- name: Upload skills to release
434444
if: steps.release-type.outputs.type == 'stable' && steps.changesets.outputs.skip != 'true' && steps.quick-check.outputs.skip != 'true' && steps.packages.outputs.publish_plugins == 'true'
435445
run: |
436-
# Determine the release tag (same priority as Create GitHub Release)
446+
# Determine the release tag (same priority as Create GitHub Release, excludes VSX)
437447
if [[ "${{ steps.packages.outputs.publish_cli }}" == "true" ]]; then
438448
RELEASE_TAG="@salesforce/b2c-cli@${{ steps.packages.outputs.version_cli }}"
439449
elif [[ "${{ steps.packages.outputs.publish_sdk }}" == "true" ]]; then
@@ -442,8 +452,6 @@ jobs:
442452
RELEASE_TAG="@salesforce/b2c-dx-mcp@${{ steps.packages.outputs.version_mcp }}"
443453
elif [[ "${{ steps.packages.outputs.publish_mrt }}" == "true" ]]; then
444454
RELEASE_TAG="@salesforce/mrt-utilities@${{ steps.packages.outputs.version_mrt }}"
445-
elif [[ "${{ steps.packages.outputs.publish_vsx }}" == "true" ]]; then
446-
RELEASE_TAG="b2c-vs-extension@${{ steps.packages.outputs.version_vsx }}"
447455
elif [[ "${{ steps.packages.outputs.publish_docs }}" == "true" ]]; then
448456
RELEASE_TAG="docs@${{ steps.packages.outputs.version_docs }}"
449457
else
@@ -454,35 +462,38 @@ jobs:
454462
env:
455463
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
456464

457-
- name: Upload VS Code extension to release
458-
if: steps.release-type.outputs.type == 'stable' && steps.packages.outputs.publish_vsx == 'true'
459-
run: |
460-
# Determine the release tag (same logic as Create GitHub Release)
461-
if [[ "${{ steps.packages.outputs.publish_cli }}" == "true" ]]; then
462-
RELEASE_TAG="@salesforce/b2c-cli@${{ steps.packages.outputs.version_cli }}"
463-
elif [[ "${{ steps.packages.outputs.publish_sdk }}" == "true" ]]; then
464-
RELEASE_TAG="@salesforce/b2c-tooling-sdk@${{ steps.packages.outputs.version_sdk }}"
465-
elif [[ "${{ steps.packages.outputs.publish_mcp }}" == "true" ]]; then
466-
RELEASE_TAG="@salesforce/b2c-dx-mcp@${{ steps.packages.outputs.version_mcp }}"
467-
elif [[ "${{ steps.packages.outputs.publish_mrt }}" == "true" ]]; then
468-
RELEASE_TAG="@salesforce/mrt-utilities@${{ steps.packages.outputs.version_mrt }}"
469-
elif [[ "${{ steps.packages.outputs.publish_vsx }}" == "true" ]]; then
470-
RELEASE_TAG="b2c-vs-extension@${{ steps.packages.outputs.version_vsx }}"
471-
else
472-
echo "No release to upload to"
473-
exit 0
474-
fi
475-
476-
gh release upload "$RELEASE_TAG" packages/b2c-vs-extension/*.vsix
477-
env:
478-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
479-
480465
- name: Create VS Code extension release
481466
if: >-
482467
steps.release-type.outputs.type == 'stable'
483468
&& steps.packages.outputs.publish_vsx == 'true'
484469
run: |
485470
VSX_TAG="b2c-vs-extension@${{ steps.packages.outputs.version_vsx }}"
471+
VSX_VERSION="${{ steps.packages.outputs.version_vsx }}"
472+
473+
# Extract extension changelog for the dedicated release
474+
extract_latest() {
475+
awk '
476+
/^## / { if (found) exit; found=1; next }
477+
found { print }
478+
' "$1"
479+
}
480+
481+
VSX_CHANGELOG=$(extract_latest packages/b2c-vs-extension/CHANGELOG.md)
482+
483+
VSX_NOTES="## B2C DX VS Code Extension v${VSX_VERSION}
484+
485+
Download the \`.vsix\` file below and install via:
486+
\`\`\`
487+
code --install-extension b2c-vs-extension-${VSX_VERSION}.vsix
488+
\`\`\`
489+
490+
Or in VS Code: Extensions → ⋯ → Install from VSIX...
491+
492+
---
493+
494+
### Changelog
495+
496+
${VSX_CHANGELOG}"
486497

487498
# Create a dedicated release for the extension (not latest — main releases own that)
488499
# Use --clobber on upload in case a previous run partially completed
@@ -491,21 +502,10 @@ jobs:
491502
gh release upload "$VSX_TAG" packages/b2c-vs-extension/*.vsix --clobber
492503
else
493504
gh release create "$VSX_TAG" \
494-
--title "VS Code Extension ${{ steps.packages.outputs.version_vsx }}" \
505+
--title "VS Code Extension ${VSX_VERSION}" \
495506
--latest=false \
496-
--notes "$(cat <<'NOTES'
497-
## B2C DX VS Code Extension v${{ steps.packages.outputs.version_vsx }}
498-
499-
Download the `.vsix` file below and install via:
500-
```
501-
code --install-extension b2c-vs-extension-${{ steps.packages.outputs.version_vsx }}.vsix
502-
```
503-
504-
Or in VS Code: Extensions → ⋯ → Install from VSIX...
505-
NOTES
506-
)"
507+
--notes "$VSX_NOTES"
507508

508-
# Upload the VSIX to the dedicated release
509509
gh release upload "$VSX_TAG" packages/b2c-vs-extension/*.vsix
510510
fi
511511
env:

packages/b2c-vs-extension/package.json

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,13 @@
1818
"vscode": "^1.105.1"
1919
},
2020
"activationEvents": [
21+
"onStartupFinished",
2122
"onView:b2cWebdavExplorer",
2223
"onView:b2cContentExplorer",
2324
"onFileSystem:b2c-webdav",
2425
"onFileSystem:b2c-content",
25-
"onCommand:b2c-dx.openUI",
26-
"onCommand:b2c-dx.promptAgent",
27-
"onCommand:b2c-dx.listWebDav",
2826
"onView:b2cApiBrowser",
2927
"onView:b2cSandboxExplorer",
30-
"onCommand:b2c-dx.scaffold.generate",
31-
"onCommand:b2c-dx.cap.install",
3228
"onDebugResolve:b2c-script",
3329
"workspaceContains:**/commerce-app.json"
3430
],

0 commit comments

Comments
 (0)