chore: move release publishing to Azure pipelines - #7674
Draft
Jane Chu (janechu) wants to merge 1 commit into
Draft
chore: move release publishing to Azure pipelines#7674Jane Chu (janechu) wants to merge 1 commit into
Jane Chu (janechu) wants to merge 1 commit into
Conversation
Move release publishing off GitHub Actions and onto two Azure Pipelines under .ado/pipelines/ (FAST CD Build and FAST CD), so release credentials never leave the Azure environment. FAST CD Build packs pending npm tarballs and paired Rust crates on every push to main; FAST CD signs those artifacts, publishes to npm/crates.io, and only then creates the git tag and GitHub release per package, so a publish failure never strands a tag. Replaces the nightly cd-github-releases.yml GitHub Actions workflow and the old download-github-releases.mjs/create-github-releases.mjs pair with pack-pending-releases.mjs, check-release-tags.mjs, read-release-manifest.mjs, and a shared publishable-workspaces.mjs helper. Updates check-publish-pipeline.mjs, CONTRIBUTING.md, and .github/workflows/README.md to match. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 5e1aa6a9-5ec9-4b4a-b088-9181bf93a95d
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request
📖 Description
Moves release publishing off GitHub Actions and onto two Azure Pipelines under
.ado/pipelines/—azure-pipelines-build.yml(FAST CD Build) andazure-pipelines-cd.yml(FAST CD) — so release credentials never leave the Azure environment.FAST CD Buildtriggers on every push tomain, detects publishable workspaces whose${name}_v${version}tag doesn't yet exist onorigin, and packs their npm tarballs and paired Rust crates into pipeline artifacts.FAST CDtriggers automatically whenFAST CD Build'sBuildArtifactsstage completes, signs the artifacts, publishes to npm/crates.io viaFAST.Release.PipelineTemplate, and only then creates the git tag and GitHub release per package — publishing before tagging means a publish failure never strands a tag, so the nextFAST CD Buildrun automatically retries.cd-github-releases.ymlGitHub Actions workflow and the oldcreate-github-releases.mjs/download-github-releases.mjsscript pair, replacing them withpack-pending-releases.mjs,check-release-tags.mjs,read-release-manifest.mjs, and a sharedpublishable-workspaces.mjshelper.check-publish-pipeline.mjs(the PR-validation guardrail that keeps Azure CD task coverage in sync with publishable workspaces),CONTRIBUTING.md, and.github/workflows/README.mdto describe the new pipeline design.👩💻 Reviewer Notes
FAST CD BuildandFAST CDneed to be registered as pipelines in Azure DevOps and repointed at the new.ado/pipelines/azure-pipelines-build.yml/.ado/pipelines/azure-pipelines-cd.ymlpaths (and the old root-levelazure-pipelines-cd.ymlpipeline definition retired/repointed) before this change is effective. This is an operational/ADO-admin step outside of this repo's source and cannot be verified from GitHub tooling.FAST.Sign.PipelineTemplate.ymlandFAST.Release.PipelineTemplate.ymllive in the internalopen-source/FASTPipelineTemplatesAzure DevOps repository, which is not accessible from GitHub tooling. Their exact parameter contracts (in particular how they handle an absent artifact directory) could not be independently verified while authoring this pipeline — please confirm against the live templates during ADO pipeline registration/rollout. The empty-directory removal step in thePublishjob is a defense-in-depth measure taken because that contract could not be confirmed..github/workflows/README.md(FAST CDsection) — it's the key behavioral change from the prior design and affects retry/idempotency semantics.📑 Test Plan
node build/scripts/check-publish-pipeline.mjs— passes, verifies Azure CD coverage for all 4 publishable workspaces.node build/scripts/pack-pending-releases.mjs --check-only— passes, reports 0 pending releases against current tags.npm run checkchange— passes, no change file required (paths touched are all under beachball's ignored.github//tooling scope).node build/biome-changed.mjs check --staged— passes, checked 5 staged.mjsfiles, no fixes needed..ado/pipelines/*.ymlfiles parse as valid YAML.node --checksyntax validation on all new/modified.mjsscripts.✅ Checklist
General
$ npm run changeAgents