ci(publish): single-trigger 1st-gen next and gated 2nd-gen beta from main#6468
ci(publish): single-trigger 1st-gen next and gated 2nd-gen beta from main#6468Rajdeepc wants to merge 1 commit into
Conversation
…main Let one manual publish from main ship 1st-gen under next while 2nd-gen releases as 2.0.0-beta.N only when pending changesets mention core or @adobe/spectrum-wc. Snapshot versioning still consumes changesets for both generations; main-2nd-gen-beta-release retitles 2nd-gen changelogs to beta.N before pack/publish so 2nd-gen never rides the next train. Co-authored-by: Cursor <cursoragent@cursor.com>
|
📚 Branch Preview Links🔍 First Generation Visual Regression Test ResultsWhen a visual regression test fails (or has previously failed while working on this branch), its results can be found in the following URLs:
Deployed to Azure Blob Storage: If the changes are expected, update the |
Coverage Report for CI Build 28791436109Coverage decreased (-0.003%) to 96.254%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats💛 - Coveralls |
Description
Adds a single manual publish trigger from
mainthat can ship 1st-gen and 2nd-gen in one workflow run without maintaining a separate release branch for day-to-day betas.What changes
.github/workflows/publish.ymlworkflow_dispatchinputs:tag— 1st-gen dist-tag (next,latest, etc.); 2nd-gen always publishes underbetabeta_2nd_gen(defaulttrue) — also cut a 2nd-gen beta when eligibledry_run— pack +npm publish --dry-runfor 2nd-gen (no registry writes)check-changesetsnow outputshas_2nd_gen_changesetswhen any pending changeset mentions@spectrum-web-components/coreor@adobe/spectrum-wcchangeset version --snapshot→ mark core/swcprivate: true→changeset publish --tag <tag>(1st-gen only)beta_2nd_genis enabled, tag is notlatest, andhas_2nd_gen_changesetsis truescripts/main-2nd-gen-beta-release.jsretitles snapshot changelog entries to2.0.0-beta.N, sets versions, refreshes 2nd-genversion.ts(leaves1st-gen/tools/base/src/version.tson main)yarn pack+npm publish --tag betasnapshot-testruns are unchanged (2nd-gen is not excluded)scripts/main-2nd-gen-beta-release.js0.x-next.*) to the2.0.0-beta.Nline used on npmbeta.Nfrom published@adobe/spectrum-wcversionsWhat this does not change
nextreleases onmainstill publish 1st-gen only (no automatic 2nd-gen beta on every push)latestprod releases are unchanged; 2nd-gen beta is never cut duringlatestgen2-betabranch / pre-mode flow from chore(release): enter beta pre-release mode for 2nd-gen (2.0.0-beta.0) #6413 remains available; this PR is an alternative main-only operator pathMotivation and context
Team agreed to run
2.0.0-beta.xthrough the rest of the year while 1st-gen continues onnext. Operating two release surfaces (mainfor 1st-gen,gen2-betafor 2nd-gen) creates duplicate release work.This PR lets a release manager trigger one publish from
mainand get:next(or chosen tag)@spectrum-web-components/core+@adobe/spectrum-wconbetaat2.0.0-beta.N…only when there are actual 2nd-gen changesets — no empty beta cuts.
Related prior work:
gen2-betapre-release mode setupRelated issue(s)
<ADD TICKET NUMBER — do not link, per Adobe guidance>Screenshots (if appropriate)
N/A — CI / release workflow only.
Author's checklist
Reviewer's checklist
patch,minor, ormajorfeaturesManual review test cases
1st-gen + 2nd-gen release (dry run)
mainwithtag=next,beta_2nd_gen=true,dry_run=truehas_2nd_gen_changesets=true,run_2nd_gen_beta=truenext; 2nd-gen showsnpm publish --dry-runfor@2.0.0-beta.NunderbetaCHANGELOG.mdentries are retitled to## 2.0.0-beta.N(not0.x-next.*)1st-gen only — beta step skipped
core/@adobe/spectrum-wcin.changeset/*.md)beta_2nd_gen=truehas_2nd_gen_changesets=false,run_2nd_gen_beta=falsecore/swcversions stay at committed values (not bumped to beta)PR snapshot-test unchanged
snapshot-releaselabelexclude_2nd_gen=falseand 2nd-gen is included in snapshot publish (smoke-test path)latestprod runtag=latestrun_2nd_gen_beta=falseregardless ofbeta_2nd_genDevice review
N/A — no UI changes.
Accessibility testing checklist
N/A — this PR changes only the GitHub Actions publish workflow and a release prep script. No component DOM, focus, keyboard, or screen-reader surface is affected.
Keyboard (required — document steps below)
N/A — no interactive UI. Confirm no Storybook or docs regressions in unrelated areas during manual workflow testing.
Screen reader (required — document steps below)
N/A — no interactive UI or ARIA surface changed by this PR.
Local verification (author)
Dry runs on
rajdeepc/ci-single-trigger-main-2nd-gen-beta:has_2nd_genrun_2nd_gen_betatruetruenextsnapshot + 2nd-gen2.0.0-beta.Nchangelog + dry-run publishfalsefalseAcceptance criteria
mainwith pending 1st-gen and 2nd-gen changesets, whentag=nextandbeta_2nd_gen=true, then 1st-gen publishes undernextand 2nd-gen publishes underbetaat2.0.0-beta.Nwith changelog entries for consumed 2nd-gen changesets.main, whenbeta_2nd_gen=true, then no 2nd-gen beta is cut and prepare/publish 2nd-gen steps are skipped.tag=latest, when the workflow runs, then no 2nd-gen beta is cut regardless of changesets.snapshot-release, when publish runs, then 2nd-gen is not excluded (existing smoke-test behavior preserved).