Skip to content

ci: add consolidated CodeBuild buildspec for lint+test#265

Merged
dwinter3 merged 3 commits into
mainfrom
ci/consolidated-codebuild-ci
May 15, 2026
Merged

ci: add consolidated CodeBuild buildspec for lint+test#265
dwinter3 merged 3 commits into
mainfrom
ci/consolidated-codebuild-ci

Conversation

@dwinter3

Copy link
Copy Markdown

What

Adds ci/buildspecs/ci.yml, a single CodeBuild buildspec that runs lint + test for every component in sequence:

prompts-syncschemaclisdk-golicensesplugininstallsdk-pythonserver

This is the CodeBuild replacement for the nine .github/workflows/ci-*.yaml GitHub Actions workflows, completing the repo's move off GitHub Actions (the release-* and deploy workflows are already migrated).

Why one consolidated project

A single CodeBuild project (8th-layer-agent-ci) and one pass/fail PR check — granular 9-way splitting is deliberately out of scope for a fork this size. On failure the build log names the failing component (::: [component] ... markers).

Toolchains

Installed explicitly in the install phase for reproducibility regardless of base image:

  • Go 1.26.1cli/go.mod, schema/go.mod, sdk/go/go.mod all pin it; newer than amazonlinux-standard:5.0 ships. Same curl-tarball pattern as ci/buildspecs/cli-release.yml.
  • golangci-lint v2.10.1 — pinned to match the GHA golangci-lint-action.
  • uv — Python toolchain.
  • Node 22 + pnpm 10 — server frontend.

AWS resources (already created)

  • CodeBuild project 8th-layer-agent-ci — image amazonlinux-x86_64-standard:5.0, BUILD_GENERAL1_SMALL, source via the OneZero1ai CodeConnections connection, reportBuildStatus: true.
  • IAM role 8th-layer-agent-ci-codebuild — CloudWatch Logs + UseConnection only (no S3/deploy perms).
  • Webhook — PR events + push to main.

Follow-up

The 9 ci-*.yaml workflows are removed in a separate PR once a green CodeBuild run on main confirms parity.

🤖 Generated with Claude Code

ai-jerry-i-am-your-father and others added 3 commits May 15, 2026 15:09
Adds ci/buildspecs/ci.yml — a single buildspec that runs lint + test for
every component (cli, server, plugin, schema, sdk-go, sdk-python,
install, licenses, prompts-sync) in sequence. This is the CodeBuild
replacement for the nine .github/workflows/ci-*.yaml workflows, run by
the new consolidated CodeBuild project `8th-layer-agent-ci`.

One pass/fail PR check instead of nine. Granular per-component splitting
is deliberately out of scope for a fork this size — on failure the build
log names the failing component.

Toolchains are installed explicitly in the install phase so the build is
reproducible regardless of the base image: Go 1.26.1 (all go.mod files
pin it, newer than amazonlinux-standard:5.0 ships), golangci-lint
v2.10.1, uv, and Node 22 + pnpm 10.

The 9 ci-*.yaml workflows are removed in a follow-up PR once a green
CodeBuild run confirms parity.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
CodeBuild's buildspec YAML parser rejected the first build with
"did not find expected key at line 65" — the `echo "::: [component] ..."`
log markers start with a colon, which an unquoted YAML scalar reads as a
mapping key. Single-quote every command list item so each is an
unambiguous scalar, and drop the in-sequence divider comments (the echo
markers already label each component).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The first consolidated CodeBuild CI run surfaced pre-existing drift:
`sdk/go/prompts/{SKILL,reflect}.md` and `sdk/python/src/cq/prompts/{SKILL,reflect}.md`
were out of sync with their canonical sources under `plugins/cq/`.

The plugin sources document the `propose_batch` reflect flow but the SDK
copies still described the older per-candidate `propose` flow — the
`propose_batch` change updated the plugin without re-running
`make sync-prompts` in the SDKs. The GHA `ci-prompts-sync.yaml` only
fires on paths touching these files, so the drift slipped through.

Ran `make sync-prompts` to bring all four copies back in line. This
unblocks the consolidated CI build's first check (`check-prompts-sync`).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@dwinter3 dwinter3 merged commit c8f9133 into main May 15, 2026
11 of 12 checks passed
dwinter3 added a commit that referenced this pull request May 15, 2026
Removes ci-cli, ci-install, ci-licenses, ci-plugin, ci-prompts-sync,
ci-schema, ci-sdk-go, ci-sdk-python, and ci-server. Their lint + test
coverage is now provided by the consolidated AWS CodeBuild project
`8th-layer-agent-ci` (buildspec `ci/buildspecs/ci.yml`, added in #265),
triggered on PR + push-to-main via a CodeConnections webhook.

This completes the repo's move off GitHub Actions — the release-* and
deploy workflows were migrated earlier.

The CodeBuild project reproduces the GHA workflows' behaviour exactly,
including the parity of their current red state: ci-server.yaml is
already failing on main (7 pre-existing backend pytest failures around
HEAD_REVISION bumps, the users.role bind parameter, and a review-auth
assertion), unrelated to this migration. The new project surfaces the
same 7 failures, so no working CI gate is lost by this removal.

Co-authored-by: David Winter <dw@choruscap.ai>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants