Opened 6 years ago

Last modified 5 years ago

#2545 new enhancement

dynamic buildsteps/buildstep detection

Reported by: vlovich Owned by:
Priority: major Milestone: 1.0.+
Version: 0.8.7p1 Keywords:
Cc: rutsky.vladimir@…


Having the build logic for a project live statically in a separate location from the project itself is problematic. If the project build steps change, then the buildbot script needs to be changed + all branches updated before they are re-built. We have a CI system where each branch is tested before being merged into master. Since build changes would happen on a separate branch, there's no way to review it without stopping the world so we can update the buildbot script.

The workaround would be to just have buildbot call a single script that lives in the project, but that suffers from then hiding the individual steps that go into a build from buildbot.

There needs to be a way for each particular build to be queried for the steps for that particular build.

Change History (4)

comment:1 Changed 6 years ago by vlovich

A simple approach might be the original idea, except the buildslave will export an environment variable BUILDSLAVE_PIPE with an fd that it had opened before spawning the step. BUILDSLAVE_PIPE is a simple-line oriented protocol where can write things like

new_step="My Custom build step" log_file=<some path> step_started="Step name" step_finished=OK (or failed)

Another alternative is for the buildslave to create a directory & export the path to it in BUILDSLAVE_STEPS or something like that. The script could then create log files there <some description>.log, <some description>.started, <some description>.finished.

comment:2 Changed 6 years ago by dustin

  • Milestone changed from undecided to 1.0.+
  • Type changed from undecided to enhancement

comment:3 Changed 6 years ago by rutsky

  • Cc rutsky.vladimir@… added

comment:4 Changed 5 years ago by vlovich

I figured out how to do this & it's not actually that difficult.

It involves setting the BuildClass? on the factory + a special step to co-operate with it.

I'm going to try to get approval to release the implementation so this can be built into buildbot.

Note: See TracTickets for help on using tickets.