Skip to content

feat: automated weekly release workflow with security hardening and promotion fix - W-23900552 - #7995

Merged
madhur310 merged 127 commits into
developfrom
feat/simplified-release-workflow
Sep 3, 2026
Merged

madhur310 merged 127 commits into
developfrom
feat/simplified-release-workflow

Conversation

@madhur310

@madhur310 madhur310 commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Replaces manual release branch workflow with automated prerelease-to-stable promotion, adds comprehensive security fixes, resolves critical concurrency deadlock, and adds emergency response capabilities with two-step pre-release workflow.

@W-23900552@

What Changed

New Automated Release Workflow

  • Added build-release.yml (renamed from buildReleaseFromPrerelease.yml) with Monday 8 AM UTC cron schedule
  • Auto-detects promoted nightly tags and builds stable release VSIXs
  • Flexible git ref support: Can build from any tag/branch/SHA via startFromRef input
  • Emergency pre-release mode: New publishAsPrerelease: true flag for hotfixes without version bumping
  • Replaces deprecated createReleaseBranch.yml Monday cron
  • Enables 5-day customer testing period (Wed pre-release → Mon stable release)

Emergency Pre-release Workflow (NEW - Two-Step Process)

Step 1: Build VSIXs

  • build-release.yml with publishAsPrerelease: true - builds from any git ref without version bumping
  • Creates GitHub pre-release with nightly-format tag (e.g., v67.13.7-nightly.develop.20260821)
  • ~3 minutes to build

Step 2: Publish to Marketplace

  • promote-prerelease.yml with releaseTag input - publishes specific release to marketplace as pre-release
  • New releaseTag parameter added to upstream workflow (PR pending)
  • ~2 minutes to publish
  • Total time: ~5 minutes from hotfix → marketplace

Emergency Patch Release Workflows (Stable Releases)

  • create-patch-release-branch.yml: Creates release-base/vX.Y.x branches from existing tags for iterative patching
  • build-patch-release.yml: Tags and builds patch releases with auto version increment
  • Auto-generates cherry-pick commands: Release notes include exact commands to backport fixes to develop
  • Enables hotfixes: Patch marketplace releases (v67.12.0 → v67.12.1) without waiting for next nightly cycle

Security & Robustness Fixes (7 total)

  1. Command injection prevention: Strict regex validation for prereleaseTag input prevents malicious payloads
  2. VSIX validation: Ensures builds produce files before creating releases (prevents empty releases)
  3. Script integrity verification: SHA256 checksums verify scripts during preserve/restore operations
  4. Integer overflow protection: Validates version components ≤9999 to prevent invalid semver
  5. Workflow dependency ordering: Moved npm install AFTER version updates to fix workspace dependency resolution
  6. Release deletion timeout: Added 20s timeout with explicit failure on GitHub API delays
  7. Enhanced error handling: Directory validation and clear error messages in update scripts

Fixed Pre-release Promotion Workflow

  • Removed duplicate concurrency group causing deadlock in promote-prerelease.yml
  • Workflow now successfully publishes to VS Code Marketplace and Open VSX every Wednesday
  • Changed min-tag-age-days default: 7 days → 0 days (promotes latest nightly, then 5-day marketplace pre-release baking period)
  • Tested and verified on ci-testing repo

Documentation Updates

  • Updated release workflow (.claude/skills/release/SKILL.md) for new automation + emergency workflows
  • Updated publishing guide (contributing/publishing.md) with Wed → Mon flow + emergency pre-release instructions
  • Added inline workflow comments explaining security measures and schedule rationale
  • Updated .github/workflows/NIGHTLY-BUILDS.md with emergency release examples

New Weekly Automation Flow

  1. Daily 4 AM UTC: Nightly builds create GitHub pre-releases
  2. Wednesday 7 AM UTC: promote-prerelease.yml publishes latest nightly to marketplace as pre-release
  3. Monday 8 AM UTC: build-release.yml builds stable release from Wed pre-release
  4. Monday: Engineer tests and approves marketplace stable publish

Emergency Response Capabilities (NEW)

Use Case 1: Emergency Pre-release (Hotfix → Marketplace in ~5 min)

# Step 1: Build from hotfix branch
gh workflow run build-release.yml \
  -f startFromRef=hotfix/critical-bug \
  -f publishAsPrerelease=true \
  -f releaseVersion=67.13.8-nightly.develop.20260821

# Step 2: Publish to marketplace as pre-release
gh workflow run promote-prerelease.yml \
  -f releaseTag=v67.13.8-nightly.develop.20260821

Use Case 2: Patch Current Marketplace Stable Release

# 1. Create release-base branch from v67.12.0
gh workflow run create-patch-release-branch.yml -f baseVersion=67.12.0

# 2. Push fixes to release-base/v67.12.x branch
git checkout release-base/v67.12.x && git push

# 3. Build patch release (creates v67.12.1)
gh workflow run build-patch-release.yml -f releaseBranch=release-base/v67.12.x

# 4. Publish to marketplace
gh workflow run publishVSCode.yml -f version=67.12.1

Use Case 3: Build Stable from Specific Commit

# Emergency stable release from specific commit SHA
gh workflow run build-release.yml \
  -f startFromRef=abc123def \
  -f releaseVersion=67.13.1

Use Case 4: Rollback to Previous Version

# Re-publish older version to marketplace
gh workflow run publishVSCode.yml -f version=67.11.0

Benefits

  • ✅ Reduces manual effort (automated weekly releases)
  • ✅ Increases security (prevents command injection, validates inputs)
  • ✅ Improves reliability (lockfile integrity, error handling)
  • ✅ Enables customer testing (5-day pre-release baking period on marketplace)
  • ✅ Maintains same Monday cadence (replaces old workflow)
  • Emergency pre-release workflow (~5 min hotfix → marketplace as pre-release)
  • Emergency patch workflow (stable version hotfixes with proper semver)
  • Feature parity with Platform CLI (matches CLI Release Guide patterns)

Testing

  • ✅ All security validations tested with edge cases
  • ✅ Concurrency fix verified on ci-testing repo
  • ✅ Workflow logic validated (quality gates working correctly)
  • ✅ Emergency pre-release workflow tested end-to-end on ci-testing (build + promote)
  • ✅ Double 'v' prefix bug fixed (version normalization)
  • ✅ Documentation parameter names corrected (publishVSCode uses version not releaseVersion)
  • ✅ Upstream PR merged for releaseTag input (feat: add release-tag input to support emergency pre-release publishing W-23900552 salesforcecli/github-workflows#173)
  • ⏳ Pending: First production run (next Monday 8 AM UTC)

Rollout Plan

  1. Merge PR to main repo
  2. Monitor first automated Monday run
  3. After 2-3 successful releases, delete deprecated createReleaseBranch.yml
  4. Document emergency workflows for team (link to publishing.md)

Files Changed

New Files:

  • .github/workflows/build-release.yml (renamed from buildReleaseFromPrerelease.yml, enhanced with emergency pre-release mode)
  • .github/workflows/create-patch-release-branch.yml (120 lines)
  • .github/workflows/build-patch-release.yml (267 lines)
  • scripts/calculate-release-version.js (64 lines)
  • scripts/update-release-versions.js (79 lines)

Modified Files:

  • .github/workflows/promote-prerelease.yml (concurrency fix, min-tag-age-days default: 7→0, added releaseTag input)
  • .github/workflows/createReleaseBranch.yml (deprecated, cron disabled)
  • .github/workflows/publishVSCode.yml (verify-release job refactor, parameter name fixes)
  • .claude/skills/release/SKILL.md (updated for new workflow + emergency pre-releases)
  • contributing/publishing.md (documented new flow + emergency pre-releases)
  • .github/workflows/NIGHTLY-BUILDS.md (updated schedule info + emergency examples)

Key Changes from Initial Implementation

  • Workflow renamed: buildReleaseFromPrerelease.ymlbuild-release.yml for clarity
  • Emergency pre-release support: Added publishAsPrerelease flag to enable pre-release builds without version bumping
  • Two-step emergency workflow: Build VSIXs with build-release.yml, publish with promote-prerelease.yml
  • Upstream enhancement: Added release-tag input to upstream vscode-promote-prerelease.yml workflow (PR pending)
  • Validation window trade-off: Changed from 7-day internal nightly testing to 0-day + 5-day marketplace pre-release validation (net: 2 days shorter but includes real customer usage)

madhur310 and others added 2 commits August 13, 2026 14:57
- Add new workflow to build releases directly from promoted prerelease tags
- Eliminates need for release branches
- Auto-detects latest nightly tag or accepts manual input
- Auto-calculates version (minor bump) or accepts override
- Creates GitHub pre-release with testing checklist
- Deprecate old createReleaseBranch workflow (disabled Monday cron)
- Update documentation for new workflow

This implements the ultra-minimal release workflow:
1. Build from Wednesday's promoted prerelease
2. Test VSIXs from GitHub pre-release
3. Publish exact same VSIXs to marketplace (zero rebuild risk)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
@madhur310
madhur310 requested a review from a team as a code owner August 14, 2026 04:24
@madhur310
madhur310 requested a review from lahernandezb August 14, 2026 04:24
@madhur310
madhur310 marked this pull request as draft August 14, 2026 04:26
madhur310 and others added 11 commits August 14, 2026 09:55
Simplifies buildReleaseFromPrerelease.yml and publishVSCode.yml by
extracting bash logic into testable Node.js scripts and eliminating
unnecessary jobs.

Changes:
- Extract version calculation into scripts/calculate-release-version.js
- Extract package updates into scripts/update-release-versions.js
- Remove build-extension-list job from publishVSCode.yml
- Extract extensions directly from release assets in CBW trigger
- Remove RELEASE_WORKFLOW_CHANGES.md (implementation notes)
- Update documentation to reflect simplified workflows

Benefits:
- 76 fewer workflow lines (-25% buildReleaseFromPrerelease, -10% publishVSCode)
- Version logic is now unit testable
- No checkout/npm setup needed for extension discovery
- Scripts are reusable across workflows

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
The buildReleaseFromPrerelease workflow checks out an old prerelease tag
that doesn't contain the new scripts. Copy scripts to temp before checkout,
then restore them after.

This allows the workflow to use the latest script versions even when
building from old prerelease tags.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
The buildReleaseFromPrerelease workflow updates package versions on an old
prerelease tag. Running npm install tries to resolve the new versions
(which don't exist yet), causing dependency resolution errors.

Skip lockfile update since we're building from existing code with bumped
versions. The lockfile will be updated when the version is committed back
to main after marketplace publish.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
The update-release-versions script was finding ALL package.json files
including those in node_modules subdirectories, incorrectly updating
dependency versions (e.g., @opentelemetry/[email protected]).

Add -not -path "*/node_modules/*" to find command to only update
top-level packages in packages/ directory.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
The generate-sha256.js script expects VSIXs in ./extensions/,
but vscode:package leaves them in individual package directories.
Added step to collect all VSIXs into ./extensions/ before SHA256
generation, matching the pattern used in tagAndRelease.yml.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
The workflow needs to run concatenate-sha256.js to create SHA256.md
from the raw SHA256 file, and reference the file at the root (not in
packages/salesforcedx-vscode/), matching the tagAndRelease.yml flow.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Handle retry scenarios where the release was partially created
but failed during asset upload. Delete and recreate to ensure
a clean state.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Changed approach to create the release first, then upload assets
individually. This is more robust and handles partial failures better.
Also added aggressive cleanup of any existing release/tag to handle
retry scenarios.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Security Fixes:
- Command injection prevention with strict regex validation
- VSIX validation ensuring builds produce files before release
- Script integrity SHA256 checksum verification
- Integer overflow protection max 9999 per version component

Workflow Fixes:
- Fix npm install ordering moved to AFTER version updates
- Fix release deletion race condition with 20s timeout
- Fix promote-prerelease.yml concurrency deadlock
- Added Monday 8 AM UTC cron for automated weekly releases

Documentation Updates:
- Updated release workflow for Wed prerelease to Mon stable
- Updated publishing.md with complete release timeline
- Updated SKILL.md to use new buildReleaseFromPrerelease

Error Handling:
- Enhanced error messages in update-release-versions.js
- Always update package-lock.json for dependency integrity
- Better validation throughout scripts

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
@madhur310 madhur310 changed the title Feat/simplified release workflow Feat/simplified release workflow - W-23900552 Aug 17, 2026
@madhur310 madhur310 changed the title Feat/simplified release workflow - W-23900552 feat: automated weekly release workflow with security hardening and promotion fix - W-23900552 Aug 17, 2026
madhur310 and others added 12 commits August 18, 2026 10:21
Adds capabilities to match Platform CLI Release Guide for emergency response:

New Workflows:

- create-patch-release-branch.yml: Creates release-base/vX.Y.x branches from tags

- build-patch-release.yml: Tags and builds patch releases with auto version increment

Enhanced buildReleaseFromPrerelease.yml:

- Added startFromRef input to accept any git ref (tag/branch/SHA)

- Detection priority: startFromRef → prereleaseTag → auto-detect nightly

- Enables emergency builds from hotfix branches, specific commits, or old tags

Documentation:

- contributing/publishing.md: Emergency patch workflow + flexible ref examples

- .github/workflows/NIGHTLY-BUILDS.md: Quick reference for new capabilities

- .claude/skills/release/SKILL.md: CLI-ready emergency release commands

Use Cases:

1. Patch marketplace release: v67.12.0 → v67.12.1

2. Build from hotfix branch before tagging

3. Build from specific commit SHA for emergency fix

4. Iterative development on release-base branches

Cherry-pick guidance auto-generated in release notes to ensure fixes reach develop.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
1. Checksum verification path mismatch (buildReleaseFromPrerelease.yml)

   - Generate checksums from scripts/ dir to match verification path

   - Prevents always-fail integrity check

2. Version overflow after increment (calculate-release-version.js)

   - Add post-increment validation for newMinor > 9999

   - Prevents v67.9999.0 → v67.10000.0 overflow

3. Missing VSIX validation (publishVSCode.yml)

   - Validate at least one VSIX exists in release before extraction

   - Prevents empty extensions being dispatched to CBW

4. Release deletion without ownership check (buildReleaseFromPrerelease.yml)

   - Check release body for workflow marker before deletion

   - Prevents destroying manual emergency releases

5. Uncaught JSON.parse exception (update-release-versions.js)

   - Wrap JSON.parse in try-catch

   - Skip malformed files, continue with valid ones

   - Report errors without aborting entire script

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
1. Validate latest tag is stable release before patch extraction

   - Reject prerelease tags (v67.12.0-beta.1) with clear error

   - Add extraction validation to catch sed failures

2. Use PREV_TAG from calculate-version output instead of deriving from VERSION

   - Prevents fragile dependency on sed selecting 2nd tag

   - More reliable for git log range

3. Add warning to startFromRef description about bypassing validation

   - Documents that it bypasses nightly tag validation

   - Reminds users to verify ref is reviewed/merged

4. Batch VSIX uploads instead of sequential loop

   - Replace for-loop with single gh release upload command

   - Applies to both buildReleaseFromPrerelease.yml and build-patch-release.yml

   - Reduces API overhead by ~30s for 10+ extensions

5. Use update-release-versions.js script instead of inline jq

   - Replace 14-line inline bash loop with single script call

   - Ensures consistent versioning logic across workflows

6. Add comment about release deletion marker fragility

   - Documents that text matching is fragile

   - Suggests future improvement: use GitHub labels/metadata

7. Add TODO for package versioning criteria duplication

   - Flag for future extraction to shared module

8. Add TODO for VSIX collection duplication

   - Flag for future composite action extraction

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Change promote-prerelease workflow to run daily (6 AM UTC) and promote

last night's nightly build immediately after E2E tests pass, rather

than waiting 7 days. This enables faster iteration - if issues

arise, we can patch pre-release and push fixes quickly.

Changes:

- Schedule: Wed 7 AM UTC to Daily 6 AM UTC (2h after nightly at 4 AM)

- min-tag-age-days: 7 to 0 (promotes newest eligible nightly)

- Updated docs to reflect new promotion cadence

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Address all implementation gaps identified in PR-7995-WORKFLOW-SCENARIOS.md:

- Monday source selection uses marketplace-prerelease-* tracking tags

- Tag creation explicitly targets commit with --target flag

- Isolated branch materialization for emergency builds

- Prerelease-to-stable detection via IS_PRERELEASE output

- Patch branches auto-copy version helper scripts from develop

- Patch tag discovery filters stable tags before sorting

- Version validators accept prerelease formats (67.12.0-beta.1)

- Comprehensive rollback documentation added

- Backport instructions filter out version-bump commits

- Upstream gate-check configuration documented

- All documentation updated to reflect changes

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Change promote-prerelease schedule:

- Wed 7 AM UTC (not daily 6 AM)

- min-tag-age-days: 0 (promotes latest nightly, not 7-day-old)

- 5-day prerelease baking period (Wed to Mon)

Rationale: Wednesday morning nightly gets promoted immediately,

then 5-day testing period before Monday stable build.

Manual override available if longer wait needed.

Updated all documentation to reflect new schedule.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Update final doc references from daily 6 AM to Wed 7 AM UTC:

- .claude/skills/release/SKILL.md

- .github/workflows/TODO-UPSTREAM-GATE-CHECK.md

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
TEMPORARY WORKAROUND - DO NOT MERGE TO MAIN

Creates dummy CI Complete check to satisfy promote-prerelease

quality gate. ci-testing lacks this check, blocking promotion.

Drop this commit before pushing to salesforcedx-vscode.

See .github/workflows/TODO-UPSTREAM-GATE-CHECK.md for proper fix.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Documents commit 1419966 (CI Complete dummy) that must be dropped

before pushing to salesforcedx-vscode main repo.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Change trigger from develop-only to all pushes/PRs so the check

exists for all commits, including nightly builds.

Still temporary - drop before merging to main.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
mshanemc and others added 21 commits September 2, 2026 18:04
* fix: sort sObject field decls by name - W-23573457

* ci-repair: W-23573457
)

* ci: approve PRs on /ai-auto approve via svc-idee-bot - W-24030619

PR author on @forcedotcom/ide-experience comments exactly `/ai-auto approve`.
Node gates check author, team, open/non-draft, green CI, then APPROVE as
svc-idee-bot on the current head (IDEE_GH_TOKEN).

pre-commit compile already fails on origin/develop (SDR standardValueSet).

* ci: approve PRs on /ai-auto approve via svc-idee-bot - W-24030619

PR author on @forcedotcom/ide-experience comments exactly `/ai-auto approve`.
Node gates check author, team, open/non-draft, green CI, then APPROVE as
svc-idee-bot on the current head (IDEE_GH_TOKEN).

* ci: restrict auto-approve workflow token - W-24030619
* feat(soql): migrate From selection to Lit

* fix(soql): address From selection review feedback - W-23928681

* refactor(soql): adopt Lit decorators - W-23928681
…-24017196 (#8078)

* fix(services): redact sf command arguments in telemetry - W-24017196

* fix(services): omit commands from terminal telemetry - W-24017196

* test(metadata): identify terminal spans by parent - W-24017196

* chore: update jsforce dependencies

* chore: update jsforce dependencies
…40 (#8088)

* fix(services): persist later web memfs writes to IndexedDB - W-24062740

Hung IDB write after request.onsuccess blocked the serial watcher. Later files never reached IDB.

* test(services): cover IDB settle timeout abort and persist isolation - W-24062740

Timeout abort unblocks the next write. A persist error does not skip the following updateIDB.

* test(services): drop IDBTransaction this from settleIdbTransaction fakes - W-24062740
Updated the changelog to reflect new features, fixes, and under-the-hood changes for version 67.17.2.
…e-pr] (#8096)

Add property "versionedIndependently": true to pjson
Reset version to 9.0.7
Set pjson property "private": true to exclude from npm publish
Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Addresses PR review comment to use DRY principle by using the existing
.github/actions/gitConfig action instead of duplicating git config commands.

Fixes: #7995 (comment)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
…testing

Previously:
- Wed 7 AM: promote-nightly-to-prerelease (creates new marketplace prerelease)
- Wed 8 AM: build-release (would pick the JUST-CREATED prerelease from 1 hour ago)

Problem: build-release would use a prerelease that was only on marketplace for 1 hour,
not the intended 7+ days of customer testing.

Now:
- Wed 7 AM: build-release (builds stable from LAST week's marketplace prerelease)
- Wed 8 AM: promote-nightly-to-prerelease (promotes THIS week's nightly)

This ensures stable releases are built from marketplace prereleases that have been
tested by customers for 7+ days, as intended.

Fixes: #7995 (comment)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
The old workflow (createReleaseBranch.yml) is deprecated and no longer in use.
No need to document what doesn't exist anymore.

- Removed 'Old Workflow' section (lines 5-126)
- Changed title from 'Before & After' to just 'Release Workflow Architecture'
- Changed 'NEW WORKFLOW' to 'RELEASE WORKFLOW' in diagram

Fixes: #7995 (comment)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Resolved conflicts by accepting develop's changes for:
- All package.json files (version updates)
- package-lock.json
- soql-builder-ui component files

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
The fix for monorepo GitHub release creation has been merged to main:
salesforcecli/github-workflows#181

Updating from test branch @ms/fix-monorepo-github-release to @main.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
@madhur310
madhur310 requested a review from mshanemc September 2, 2026 23:30
- name: Build VSIXs
run: npm run vscode:package

- name: Collect VSIXs

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you made a composite action for this, right?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

used it with a small caveat

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decided it makes sense to just keep it in a shared workflow repo salesforcecli/github-workflows#182 once that is merged we can update this and use it across the repo.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's merged. You're approved to merge this once that change goes in

Comment thread contributing/publishing.md Outdated
## Build Release from Prerelease

Scheduled [Github Action](https://github.com/forcedotcom/salesforcedx-vscode/actions/workflows/createReleaseBranch.yml) creates release branch from `develop` Mondays 1PM GMT. Format: `release/vXX.YY.ZZ`.
Manual workflow [`buildReleaseFromPrerelease.yml`](https://github.com/forcedotcom/salesforcedx-vscode/actions/workflows/buildReleaseFromPrerelease.yml) builds release VSIXs from promoted prerelease tags for internal testing. Auto-detects latest nightly tag and bumps minor version, or accepts manual overrides.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file was renamed to build-release.yml. Same stale name at L100 and L210.

promote-prerelease.yml at L87 is now promote-nightly-to-prerelease.yml.

madhur310 and others added 2 commits September 3, 2026 10:16
Replaces inline VSIX collection logic with the shared collect-vsix action
to match repo convention and the patch-branch workflow. Added a comment
noting it may fail when building from historical refs that predate the
action (2026-08-26), since local actions resolve from the checked-out tree.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
Updated renamed workflow references:
- buildReleaseFromPrerelease.yml → build-release.yml (lines 24, 100, 210)
- promote-prerelease.yml → promote-nightly-to-prerelease.yml (line 87 + CI-TESTING-PLAN)

Fixes: #7995 (comment)

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
The collect-vsix action was merged into salesforcecli/github-workflows
(PR #182). Switch both build-release.yml and build-and-release-patch-branch.yml
to the remote @main reference and delete the local copy.

Using the remote reference also fixes the historical-ref edge case in
build-release.yml: remote actions are fetched from the pinned repo/ref
regardless of what $SOURCE_REF is checked out, so builds from older tags
no longer fail on VSIX collection.

Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
@madhur310
madhur310 merged commit ee0f7b6 into develop Sep 3, 2026
79 of 84 checks passed
@madhur310
madhur310 deleted the feat/simplified-release-workflow branch September 3, 2026 20:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants