You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(env): auto-detect 10 additional CI providers (PER-7828) (#2194)
* feat(env): auto-detect 10 additional CI providers (PER-7828)
Add detection plus commit/branch/PR/parallel-nonce extraction for:
TeamCity, AWS CodeBuild, Google Cloud Build, Atlassian Bamboo, Bitrise,
Codemagic, Vercel, Cloudflare Pages, GoCD, Woodpecker.
Detection ordering:
- Woodpecker placed before Drone (guards against pre-3.x Woodpecker
installs that set DRONE=true for backwards compatibility).
- GCB placed last before the CI/unknown fallback because BUILD_ID +
PROJECT_ID is the most generic marker; defensive !JENKINS_URL guard
added.
Parallel-nonce rerun-stability choices:
- Bamboo uses bamboo_buildResultKey (includes build-N suffix) rather
than bamboo_buildNumber (reused on rerun).
- Cloudflare Pages uses a composite \${commit}-\${url} nonce with a
strict null-guard on commit SHA so we never emit "undefined".
- GoCD uses a composite \${pipeline}.\${stage} counter so stage reruns
do not collide.
Each provider gets a dedicated test file covering detection, PR builds
(where applicable), edge cases (CodeBuild manual triggers, GCB manual
submits, Vercel system-env-vars-off, Woodpecker Drone-compat collision,
Jenkins-over-GCB precedence), and PERCY_* override precedence.
API side is a no-op: the 'source' field is free-form metadata with no
allowlist.
Tekton/Argo excluded — no standard git env vars.
Documentation for the 10 new providers (plus doc gaps for Harness,
Heroku CI, Probo.CI) ships in a follow-up PR.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat(env): fix CF Pages nonce + add Tekton/Argo detection
E2E testing revealed the Cloudflare Pages composite nonce
(CF_PAGES_COMMIT_SHA-CF_PAGES_URL) exceeded Percy's 64-char
API limit, causing build creation to fail. Switched to
CF_PAGES_COMMIT_SHA alone — this also gives correct rerun
dedup behavior since the URL changes per redeploy.
Added opt-in detection for Tekton Pipelines and Argo Workflows.
Neither auto-injects identifying env vars into step containers,
so users set them via template substitution:
# Tekton
env:
- name: TEKTON_PIPELINE_RUN
value: "$(context.pipelineRun.name)"
- name: TEKTON_COMMIT_SHA
value: "$(params.commit-sha)"
- name: TEKTON_BRANCH
value: "$(params.branch)"
# Argo Workflows
env:
- name: ARGO_WORKFLOW_NAME
value: "{{workflow.name}}"
- name: ARGO_WORKFLOW_UID
value: "{{workflow.uid}}"
- name: ARGO_COMMIT_SHA
value: "{{workflow.parameters.commit-sha}}"
- name: ARGO_BRANCH
value: "{{workflow.parameters.branch}}"
🤖 Generated with Claude Opus 4.7 (1M context) via Claude Code
+ Compound Engineering v2.50.0
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* docs(env): list all 12 new CI providers + opt-in setup
Adds README entries for the 10 auto-detect providers (TeamCity, AWS
CodeBuild, GCB, Bamboo, Bitrise, Codemagic, Vercel, Cloudflare Pages,
GoCD, Woodpecker), backfills Harness CI (was detected in code but
missing from the list), and documents the opt-in setup for Tekton
Pipelines and Argo Workflows with copy-paste YAML snippets.
Also calls out the Vercel System Env Vars + PERCY_PARALLEL_TOTAL=-1
requirement surfaced during E2E testing.
🤖 Generated with Claude Opus 4.7 (1M context) via Claude Code
+ Compound Engineering v2.50.0
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments