Skip to content

feat(orchestrator): wire BuildManager into the build controller#169

Closed
behinddwalls wants to merge 1 commit into
preetam/build-noopfrom
preetam/build-wire
Closed

feat(orchestrator): wire BuildManager into the build controller#169
behinddwalls wants to merge 1 commit into
preetam/build-noopfrom
preetam/build-wire

Conversation

@behinddwalls
Copy link
Copy Markdown
Collaborator

@behinddwalls behinddwalls commented May 29, 2026

Summary

The build controller had a TODO: Trigger CI build and hard-coded an
Accepted build. It now invokes BuildManager.Trigger: it assembles one
entity.BuildChange per request in the batch (action Validate), triggers
the build, and publishes a Build carrying the manager's returned ID and
status to the buildsignal stage. The orchestrator wires the noop manager
(extension/build/noop) as the pass-through default, so a land request now
flows end-to-end through the build step (every build succeeds) until a real
provider is configured.

Build failure handling and polling of non-terminal (Accepted/Running)
builds are deliberately out of scope here — the noop always returns a
terminal status — and are left as follow-ups.

Test Plan

  • ✅ `make fmt && make lint`
  • ✅ `make check-gazelle && make check-tidy && make check-mocks`
  • ✅ `bazel build //...`
  • ✅ `bazel test //... --test_tag_filters=-integration` — 36/36
  • ⏭️ `make e2e-test` requires Docker; not run in this environment

Stack

  1. feat(build): add BuildManager extension and trim BuildStatus enum #167
  2. feat(build): add noop BuildManager implementation #168
  3. @ feat(orchestrator): wire BuildManager into the build controller #169

## Summary

The build controller had a `TODO: Trigger CI build` and hard-coded an
`Accepted` build. It now invokes `BuildManager.Trigger`: it assembles one
`entity.BuildChange` per request in the batch (action `Validate`), triggers
the build, and publishes a `Build` carrying the manager's returned ID and
status to the buildsignal stage. The orchestrator wires the noop manager
(`extension/build/noop`) as the pass-through default, so a land request now
flows end-to-end through the build step (every build succeeds) until a real
provider is configured.

Build failure handling and polling of non-terminal (`Accepted`/`Running`)
builds are deliberately out of scope here — the noop always returns a
terminal status — and are left as follow-ups.

## Test Plan

- ✅ \`make fmt && make lint\`
- ✅ \`make check-gazelle && make check-tidy && make check-mocks\`
- ✅ \`bazel build //...\`
- ✅ \`bazel test //... --test_tag_filters=-integration\` — 36/36
- ⏭️ \`make e2e-test\` requires Docker; not run in this environment

## Issues

(none)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant