Skip to content

Publish stable extension on release branches - #26277

Merged
Eduardo Villalpando Mello (edvilme) merged 2 commits into
mainfrom
release-branch-trigger
Nov 9, 2026
Merged

Eduardo Villalpando Mello (edvilme) merged 2 commits into
mainfrom
release-branch-trigger

Conversation

@edvilme

@edvilme Eduardo Villalpando Mello (edvilme) commented Nov 5, 2026 •

Copy link
Copy Markdown

Enable the existing stable Azure pipeline for pushes to release/* branches and default publishExtension to true so those runs publish.

No version/package.json checks are added; all other pipeline settings remain unchanged.

Validated YAML semantics and git diff --check.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 956d3afd-ae0b-486c-a60c-3a6276c23213
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 956d3afd-ae0b-486c-a60c-3a6276c23213
@edvilme Eduardo Villalpando Mello (edvilme) added the debt Code quality issues label Nov 5, 2026
@edvilme Eduardo Villalpando Mello (edvilme) changed the title Trigger stable pipeline on release branches Publish stable extension on release branches Nov 5, 2026
@edvilme
Eduardo Villalpando Mello (edvilme) merged commit 8885e47 into main Nov 9, 2026
77 of 78 checks passed
@edvilme
Eduardo Villalpando Mello (edvilme) deleted the release-branch-trigger branch November 9, 2026 21:34
Eduardo Villalpando Mello (edvilme) added a commit that referenced this pull request Nov 12, 2026
## Summary

Follow-up to #26282. Adds only
`.github/workflows/release-pr-release.yml`; the separate read-only
`Release PR / Plan` workflow is unchanged. Keeping the release trigger
separate also avoids overlapping the plan-adoption PR.

- Handles only `pull_request_target: closed` events targeting `main`,
and runs only when the PR was merged. Closing an unmerged PR does not
run the release job.
- Calls
`microsoft/vscode-python-ci/actions/release-pr@4e0c4335bbf6b1a274673e22d9c39cd7efb93ccf`
with `mode: release` and the default `release/` prefix. Only this
dedicated job receives `contents: write`; no custom token or additional
checkout is added.
- Revalidates the exact merged change and the PR creator's current
write/maintain/admin permission. Only root-`package.json`-only,
top-level-version-only valid bumps qualify. Ordinary PRs skip
successfully. Creates `release/<calculated-stable-version>` without
pushing to `main` or updating an existing release branch; retries fail
if the branch already exists.
- Uses the trusted target-branch workflow and pinned action; no
checked-out PR scripts or hooks are executed. Reports either the created
branch/stable version or that no release candidate was found.

## Activation and prerequisites

**Merging this PR enables release-branch creation on subsequent
qualifying merges. The existing Azure stable pipeline matches
`release/*` and defaults `publishExtension` to `true`, so branch
creation can publish an extension.** This does not change Azure YAML,
publishing approvals, credentials, or branch protection.

- **Merge prerequisite #26282 first. It is still open; do not approve
activation before its read-only plan check is available.**
- Before approving activation, configure/confirm `Release PR / Plan` as
a required check and confirm the Actions bot can create `release/*`
refs.
- Confirm the intended Azure pipeline is enabled, its UI trigger
overrides match the checked-in YAML, and publishing
permissions/approvals are ready. Only checked-in configuration was
inspected; live publishing was not exercised.
- Prefer observing the [Black Formatter
pilot](microsoft/vscode-black-formatter#841)
before approving the remaining repositories. No release branches were
created as part of this PR.

Python's Azure publishing prerequisite #26277 is merged. This
workflow-only maintenance PR uses the existing `skip-issue-check` label;
there is no separate product issue.

## Validation

- Prettier, whitespace checks, and actionlint v1.7.7 pass for the new
workflow.
- Local workflow contract checks cover the main/closed event filter,
merged-only guard, dedicated write permission, reviewed action pin, and
single-file scope. Bash syntax and both job-summary outcomes pass.
- The exact pinned shared action passes all 22 tests: 15 release-action
tests and 7 version-action tests, including authorization/API failures,
unchanged-version skips, stable serialization, and existing-branch
rejection.
- The release workflow cannot be exercised on an open PR: it uses the
trusted target-branch workflow after merge. No live release/publish
smoke test is claimed. Where the plan check is already present on
`main`, this workflow-only PR should pass as not applicable.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 956d3afd-ae0b-486c-a60c-3a6276c23213
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

debt Code quality issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants