NAME TYPE FROM STATUS STARTED DURATION sample-build-1 Source Git@e79d887 Running 13 seconds ago 13s sample-build-2 Source Git New sample-build-3 Source Git New
The build run policy describes the order in which the builds created from the
build configuration should run. This can be done by changing the value of the
runPolicy
field in the spec
section of the Build
specification.
It is also possible to change the runPolicy
value for existing build
configurations.
Changing Parallel
to Serial
or SerialLatestOnly
and triggering a
new build from this configuration will cause the new build to wait until all
parallel builds complete as the serial build can only run alone.
Changing Serial
to SerialLatestOnly
and triggering a new build will
cause cancellation of all existing builds in queue, except the currently
running build and the most recently created build. The newest build will
execute next.
Setting the runPolicy
field to Serial
will cause all new builds created
from the Build
configuration to be run sequentially. That means there
will be only one build running at a time and every new build will wait until
the previous build completes. Using this policy will result in consistent and
predictable build output. This is the default runPolicy
.
Triggering three builds from the sample-build configuration, using the
Serial
policy will result in:
NAME TYPE FROM STATUS STARTED DURATION sample-build-1 Source Git@e79d887 Running 13 seconds ago 13s sample-build-2 Source Git New sample-build-3 Source Git New
When the sample-build-1 build completes, the sample-build-2 build will run:
NAME TYPE FROM STATUS STARTED DURATION sample-build-1 Source Git@e79d887 Completed 43 seconds ago 34s sample-build-2 Source Git@1aa381b Running 2 seconds ago 2s sample-build-3 Source Git New
Setting the runPolicy
field to SerialLatestOnly
will cause all new builds
created from the Build
configuration to be run sequentially, same as using
the Serial
run policy. The difference is that when a currently running build
completes, the next build that will run is the latest build created. In other
words, you do not wait for the queued builds to run, as they are skipped.
Skipped builds are marked as Cancelled. This policy can be used for fast,
iterative development.
Triggering three builds from the sample-build configuration, using the
SerialLatestOnly
policy will result in:
NAME TYPE FROM STATUS STARTED DURATION sample-build-1 Source Git@e79d887 Running 13 seconds ago 13s sample-build-2 Source Git Cancelled sample-build-3 Source Git New
The sample-build-2 build will be canceled (skipped) and the next build run after sample-build-1 completes will be the sample-build-3 build:
NAME TYPE FROM STATUS STARTED DURATION sample-build-1 Source Git@e79d887 Completed 43 seconds ago 34s sample-build-2 Source Git Cancelled sample-build-3 Source Git@1aa381b Running 2 seconds ago 2s
Setting the runPolicy
field to Parallel
causes all new builds created from
the Build
configuration to be run in parallel. This can produce
unpredictable results, as the first created build can complete last, which will
replace the pushed container image produced by the last build which completed
earlier.
Use the parallel run policy in cases where you do not care about the order in which the builds will complete.
Triggering three builds from the sample-build configuration, using the
Parallel
policy will result in three simultaneous builds:
NAME TYPE FROM STATUS STARTED DURATION sample-build-1 Source Git@e79d887 Running 13 seconds ago 13s sample-build-2 Source Git@a76d881 Running 15 seconds ago 3s sample-build-3 Source Git@689d111 Running 17 seconds ago 3s
The completion order is not guaranteed:
NAME TYPE FROM STATUS STARTED DURATION sample-build-1 Source Git@e79d887 Running 13 seconds ago 13s sample-build-2 Source Git@a76d881 Running 15 seconds ago 3s sample-build-3 Source Git@689d111 Completed 17 seconds ago 5s