Skip to content

Commit b0cc52c

Browse files
authored
Merge pull request #570 from concourse/scheduler-behaviour
update docs for scheduler
2 parents cc95965 + 1453e2a commit b0cc52c

File tree

5 files changed

+11
-40
lines changed

5 files changed

+11
-40
lines changed

images/new-pinning-behavior-1.png

-19.4 KB
Binary file not shown.

images/new-pinning-behavior-2.png

-37.5 KB
Binary file not shown.

images/new-pinning-behavior-3.png

-32.5 KB
Binary file not shown.

images/new-pinning-behavior-4.png

-32.6 KB
Binary file not shown.

lit/docs/internals/scheduler.lit

Lines changed: 11 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -51,46 +51,17 @@ The subcomponent used to figure out whether a build can be scheduled is called t
5151

5252
The scheduler will schedule a new build if any of the versions produced by
5353
the algorithm for \reference{schema.get.trigger}{\code{trigger:
54-
true}} resources is not equal to the version used by the \bold{previous
55-
build} of the job.
54+
true}} resources has not been used in any previous build of the job.
5655

57-
What this means is if the algorithm runs and computes an
58-
input version, the scheduler will create a new build as long as that version
59-
is different than the previous build's version for that same input. Even if
60-
that version has been used by a build 2 months ago, the scheduler will
61-
schedule a new build as long as it has not been used by the previous build.
56+
What this means is if the algorithm runs and computes an input version, the
57+
scheduler will create a new build as long as that version has not been used
58+
by any previous build's version for that same input. Even if that version has
59+
been used by a build 2 months ago, the scheduler will \bold{not} schedule a
60+
new build because that version has been previously used in a build of the
61+
job.
6262

63-
If there are any input versions that are different than the previous build,
64-
it will trigger a new build. This can affect some users that are using the
65-
pinning functionality to run older versions.
66-
67-
Let's say you have a job that takes a resource as an input. It currently has
68-
two builds, build 1 has ran with version \code{v1} of the resource and build
69-
2 has ran with \code{v2}.
70-
71-
\diagram{images/new-pinning-behavior-1.png}{80%}
72-
73-
If I pin the input to an older version, a new build is produced because the
74-
pinned version \code{v1} is not equivalent to the version of the previous
75-
build \code{v2}.
76-
77-
\diagram{images/new-pinning-behavior-3.png}{90%}
78-
79-
Then if I unpin the version, another build would be triggered again using the
80-
latest version.
81-
82-
\diagram{images/new-pinning-behavior-4.png}{90%}
83-
84-
This is because after unpinning the resource, the input version for the next
85-
build becomes the latest version \code{v2} which is not equal to the version
86-
\code{v1} used by the previous build.
87-
88-
This is to allow the current state of the builds to always reflect the
89-
current state of the versions. That being said, this behavior can be
90-
undesirable if the goal is to only run a job using an old version. In this
91-
case, build rerunning is the better choice. If you would like to learn more
92-
about build rerunning, you can read more about it in the
93-
\reference{build-rerunning}{build rerunning section}.
63+
If there are any input versions that are different from any previous build,
64+
it will trigger a new build.
9465
}
9566

9667
\section{
@@ -109,9 +80,9 @@ The subcomponent used to figure out whether a build can be scheduled is called t
10980
}{
11081
A build finishes for an upstream job (through passed constraints)
11182
}{
112-
Enabling/Disabling a resource version
83+
Enabling/Disabling a resource version that has not been used in a previous build
11384
}{
114-
Pinning/Unpinning a resource version
85+
Pinning/Unpinning a resource version that has not been used in a previous build
11586
}{
11687
Setting a pipeline
11788
}{

0 commit comments

Comments
 (0)