Migrate CI/CD from CircleCI to GitHub Actions (dual-run) - #80
Draft
dkn96 wants to merge 2 commits into
Draft
Conversation
Adds GHA equivalents of the CircleCI pipelines. CircleCI config is left in place so both systems run side by side until GHA is validated; a follow-up PR will remove .circleci/ at cutover.
dkn96
marked this pull request as draft
August 21, 2026 06:56
The CircleCI job cross-triggered the SFRA wdio suite in BoltApp/integration-tests. That repo is archived (read-only since Oct 2025) and the suite has been unmaintained since mid-2023, so the trigger fires into a decommissioned project. Dropping it removes the last CircleCI dependency (and the CIRCLE_TOKEN secret) from this pipeline; post-deploy integration coverage needs a new owner and home if it is wanted again.
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.
CircleCI → GitHub Actions migration (dual-run)
Adds GitHub Actions equivalents of the CircleCI pipelines.
.circleci/is intentionally left in place — both systems run side by side until GHA is validated with the secrets below, then a follow-up PR removes CircleCI.What's migrated
sfcc-flow/lint-and-unit-test(all branches)ci.yml/lint-and-unit-test(on: push)concurrency: qa-sandbox-deploygroup added on the deploy job so sandbox deploys serializesfcc-flow/update-qa-sandbox(master)ci.yml/update-qa-sandbox(master only)sfcc-flow/integration-tests(master)sfcc-release-flow(API-triggered pipeline parameter)release.ymlvia nativeworkflow_dispatchwith ataginputpublish-github-release(ghr+GITHUBTOKENPAT)gh release create/uploadwith the built-inGITHUB_TOKEN(permissions: contents: write) — PAT no longer needednotify-buildcopcurlto the webhook on master failuresrestore_cache/save_cache(npm)actions/cachekeyed onpackage-lock.jsonJobs run in the same
boltdev/sfcc-ciDocker image as CircleCI (pulled with Docker Hub credentials) for toolchain parity. Helper scripts are copied to.github/scripts/(originals untouched);create-zip-artifacts.shno longer stagesrelease-artifacts.sh(replaced bygh release).Repo secrets required before this can go green
DOCKER_USER,DOCKER_PASSWORD,SFCCCLIENTID,SFCCCLIENTSECRET,SFCC_QA_ACCOUNT,SFCC_QA_ACCOUNT_PW,QA_V2_SANDBOX_HOSTNAME,GREENKEEPER_WEBHOOK. These mirror the CircleCIsfcc-credscontext.Not migrated (parity decisions)
The
integration-testscross-trigger — deliberately dropped. The CircleCI job called the CircleCI API (withCIRCLE_TOKEN) to run the SFRA wdio suite inBoltApp/integration-tests. That repo is archived (read-only since Oct 2025) and its SFRA suite has been unmaintained since mid-2023, so the trigger fires into a decommissioned project. Dropping it removes the last CircleCI dependency (and theCIRCLE_TOKENsecret) from this pipeline. If post-deploy integration coverage is wanted again, it needs a new owner and a new home first.The commented-out
auto-releasecron workflow — dead code in CircleCI, not carried over.The
adhoc-deploy/*branch queue filter — it gated nothing downstream (deploy remains master-only).Validation before cutover
ci.ymlrun on a branch pushactions/checkoutworks insideboltdev/sfcc-ci(GHA mounts node20 into the container; a very old glibc base would fail — fallback issetup-node+npm i -g sfcc-cion the runner)release.ymlwith a test tag; verify the zip on the GitHub release.circleci/