Skip to content

feat(stovepipe): add the build stage controller#407

Merged
roychying merged 7 commits into
mainfrom
chenghan.ying/stovepipe-build-controller
Jul 22, 2026
Merged

feat(stovepipe): add the build stage controller#407
roychying merged 7 commits into
mainfrom
chenghan.ying/stovepipe-build-controller

Conversation

@roychying

Copy link
Copy Markdown
Contributor

Why?

Stovepipe needs a controller that actually triggers builds using the BuildRunner contract.

What?

Adds stovepipe/controller/build. Process unmarshals a BuildRequest (request id only), reloads the Request, no-ops if already terminal, resolves the runner via Factory.For(Config{QueueName}), reads the already-decided BuildStrategy/BaseURI (retryable if not yet visible — never re-derives full-vs-incremental itself), triggers via buildRunner.Trigger(ctx, baseURI, request.URI, nil), persists a Build row (BuildStore.Create, tolerant of ErrAlreadyExists), and publishes the resulting build id to the buildsignal topic, partitioned by build id.

Test Plan

stovepipe/controller/build/build_test.go covers: terminal-request no-op, unresolved build strategy (retryable), Factory.For/Trigger/BuildStore.Create/publish failure paths, and the happy path for both full and incremental strategies. go build ./... and go test ./stovepipe/controller/build/... pass.

Issue

@roychying
roychying requested review from a team, behinddwalls and sbalabanov as code owners July 20, 2026 23:19
Comment thread stovepipe/controller/build/build.go Outdated
Comment thread stovepipe/controller/build/build.go
Comment thread stovepipe/controller/build/build.go Outdated
Comment thread stovepipe/controller/build/build.go Outdated
Comment thread stovepipe/controller/build/build.go Outdated
@roychying
roychying force-pushed the chenghan.ying/stovepipe-buildrunner-extention branch from 96902d1 to c50b42d Compare July 21, 2026 22:51
@behinddwalls

Copy link
Copy Markdown
Collaborator

🛑 Automatic stack rebase aborted — diff mismatch

The rebase of chenghan.ying/stovepipe-build-controller completed without conflicts, but the resulting code diff does not match the original. This means the rebase silently altered code content. The branch was not force-pushed.

Please rebase manually and verify the changes are correct.

@roychying
roychying force-pushed the chenghan.ying/stovepipe-build-controller branch 2 times, most recently from bf87943 to cad0157 Compare July 22, 2026 00:37
@roychying
roychying changed the base branch from chenghan.ying/stovepipe-buildrunner-extention to main July 22, 2026 00:56
@roychying
roychying added this pull request to the merge queue Jul 22, 2026
@roychying
roychying removed this pull request from the merge queue due to a manual request Jul 22, 2026
@roychying
roychying force-pushed the chenghan.ying/stovepipe-build-controller branch from cad0157 to bf87943 Compare July 22, 2026 00:58
@roychying
roychying enabled auto-merge July 22, 2026 00:59
@roychying
roychying added this pull request to the merge queue Jul 22, 2026
Merged via the queue into main with commit 83caa80 Jul 22, 2026
27 checks passed
@behinddwalls
behinddwalls deleted the chenghan.ying/stovepipe-build-controller branch July 22, 2026 01:04
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.

3 participants