Repository navigation
ci: move tests and publishing from CircleCI to GitHub Actions - #1003
Merged
jennifer-shehane merged 5 commits intoOct 27, 2026
Merged
Conversation
Move the lint, Markdown link check, unit test, build, test app matrix, and Windows test jobs to a new GitHub Actions workflow. CircleCI now only publishes to npm from the release branches. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WUv8r5BpvRwiN6jZDrvvVE
Add a release job to the CI workflow that runs semantic-release after every test passes on master, next, beta, and dev. It authenticates with npm trusted publishing (OIDC), so no npm token is stored, and publishes with provenance. Upgrade semantic-release to 25.0.9, whose npm plugin supports trusted publishing, and remove the CircleCI config and the effective:config script. Releases no longer publish from CircleCI. A trusted publisher for cypress-io/code-coverage and the ci.yml workflow must be configured on npmjs.com before the next release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WUv8r5BpvRwiN6jZDrvvVE
…hub-actions-migration-h0eoku # Conflicts: # .circleci/config.yml
- Move every action to its Node 24 major version (checkout, setup-node, cache and upload-artifact v6, cypress-io/github-action v7) - Run unit tests with coverage so the 80% line threshold is enforced and the uploaded report exists - Drop wait-on from the Windows job, matching the previous setup - Drop the release job's concurrency group, since the workflow-level group already serializes push runs per branch - Read the Node version for most jobs from .nvmrc - Trim workflow comments to follow the comment guidance in AGENTS.md - Document Node 22.14 as the minimum for development, which semantic-release 25 requires Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WUv8r5BpvRwiN6jZDrvvVE
The Windows job failed because cypress run couldn't find the binary that npm ci should have installed. Set CYPRESS_CACHE_FOLDER for the whole job, cache that folder, and install and verify the binary before the run, so a missing binary fails early with a clear error. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WUv8r5BpvRwiN6jZDrvvVE
Member
Author
|
A quick heads-up on the red CircleCI Pipeline status: it's expected, and nothing in this PR needs to change. This PR deletes I'd rather not add a placeholder config just to turn it green, since that would keep a CI system around that no longer runs anything. The real fix needs a repo admin:
All the actual testing now happens in the GitHub Actions CI workflow. Generated by Claude Code |
jennifer-shehane
deleted the
claude/circleci-github-actions-migration-h0eoku
branch
October 27, 2026 17:56
|
🎉 This PR is included in version 4.1.2 🎉 The release is available on: Your semantic-release bot 📦🚀 |
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.
What this changes
This moves everything CircleCI did into one GitHub Actions workflow,
.github/workflows/ci.yml, and removes.circleci/config.yml.npm run coverageon Node 24, so the 80% line threshold invitest.config.tsis now enforced in CI. The report is uploaded as an artifact.npm run build.fail-fast: false, so one failing app doesn't hide the others. Each job uploads its coverage report.test-apps/all-filesruns onwindows-latestthroughcypress-io/github-action@v7.master,next,beta, ordev,semantic-releasepublishes to npm. It uses npm trusted publishing (OIDC), so there's no npm token to store or rotate, and provenance attestations are added automatically.Along the way:
semantic-releasegoes from 23.1.1 to 25.0.9, the first line whose npm plugin supports trusted publishing. It needs Node 22.14 or later, soAGENTS.mdnow lists that as the minimum for development. The published plugin still supports Node 20 (enginesis unchanged).checkout,setup-node,cache, andupload-artifactat@v6..nvmrc.AGENTS.mddescribes the new CI and release flow, and the CircleCI-onlyeffective:configscript is gone.Nothing in
lib/changes, and the commits areci:, so merging this won't cut a release by itself.Setup needed from an admin
Here's what needs a human with the right access. 🙌
npmjs.com (package admin, before the next release):
cypress-io, repositorycode-coverage, workflow filenameci.yml. Leave the environment blank.npm publishand manage dist-tags. Publishers created since September 3, 2026 default to staged publishing only, which semantic-release can't use.feat:orfix:lands onmaster.org-npm-credentialscontext, after checking whether other repos still use it.GitHub (repo admin):
master, replace the oldci/circleci: …required checks with the new job names (Lint,Unit tests,Build,Test app (…)). Otherwise PRs will wait for checks that never arrive.GITHUB_TOKEN.Things I'd love a second opinion on
dist/itself instead of reusing thebuildjob's output. It's simpler but slower, and it could be a follow-up.wait-on, the same way the CircleCI job did. This PR's run is the first real test of that.Checks run locally
npm cifrom the updated lockfilenpm run coverage: 30 of 30 tests pass, 94.5% line coveragenpm run format:checknpm run buildci.ymlThe release job can only really run after merge, on a release branch.
Generated by Claude Code
Note
Medium Risk
CI and npm publishing paths change materially (OIDC trusted publishing and branch-protection check renames required); plugin runtime code is untouched but a misconfigured trusted publisher could block releases.
Overview
Replaces CircleCI with a single GitHub Actions workflow (
.github/workflows/ci.yml) and deletes.circleci/config.yml. Lint, unit tests (nownpm run coverageon Node 24 with artifact upload), build, the 17-app Cypress matrix, Windowsall-files, and npm release are all defined there—with PR concurrency cancellation and push triggers limited to release branches plus all PRs.The release job runs
semantic-releaseafter green CI on pushes tomaster/next/beta/dev, using npm trusted publishing (OIDC) instead of CircleCI’s npm token context.semantic-releaseis bumped to 25.0.9; docs now call for Node 22.14+ for dev/release tooling whileenginesstays>=20.Docs and housekeeping: README CI badge points at Actions;
AGENTS.mddescribes the new pipeline and matrix location; the CircleCI-onlyeffective:configscript is removed frompackage.json.Reviewed by Cursor Bugbot for commit 1239af5. Bugbot is set up for automated code reviews on this repo. Configure here.