Add simulation video
Change-Id: I5dc8bfca61d536a825be11f7721ddb60e74c827b
This commit is contained in:
parent
d50e73ab2b
commit
0a213fc51a
@ -1 +0,0 @@
|
||||
Placeholder.
|
BIN
media/simulation-poster.png
Normal file
BIN
media/simulation-poster.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 116 KiB |
BIN
media/simulation.mp4
Normal file
BIN
media/simulation.mp4
Normal file
Binary file not shown.
181
media/simulation.vtt
Normal file
181
media/simulation.vtt
Normal file
@ -0,0 +1,181 @@
|
||||
WEBVTT
|
||||
|
||||
00:00:00.000 --> 00:00:05.843
|
||||
Zuul can be used to ensure that every commit
|
||||
merged into a project has passed tests
|
||||
|
||||
00:00:05.844 --> 00:00:09.442
|
||||
and the project continues to work
|
||||
with its dependencies.
|
||||
|
||||
00:00:09.443 --> 00:00:14.402
|
||||
When a change or pull request is approved
|
||||
Zuul adds it to the gate pipeline.
|
||||
|
||||
00:00:14.403 --> 00:00:18.242
|
||||
This pipeline holds changes to be merged
|
||||
into their respective projects
|
||||
|
||||
00:00:18.243 --> 00:00:20.882
|
||||
in the order in which they are going to merge.
|
||||
|
||||
00:00:20.883 --> 00:00:23.282
|
||||
This ordering can be determined explicitly
|
||||
|
||||
00:00:23.283 --> 00:00:25.843
|
||||
if a user adds a "Depends-On" line
|
||||
to the commit message.
|
||||
|
||||
00:00:25.844 --> 00:00:30.003
|
||||
In that case, Zuul will make sure that the
|
||||
dependency is enqueued first
|
||||
|
||||
00:00:30.004 --> 00:00:32.551
|
||||
followed by the change that depends on it.
|
||||
|
||||
00:00:32.552 --> 00:00:36.657
|
||||
Or as in this case the order might simply be
|
||||
determined by the order
|
||||
|
||||
00:00:36.658 --> 00:00:39.616
|
||||
in which changes are approved
|
||||
by the project's developers.
|
||||
|
||||
00:00:39.617 --> 00:00:41.290
|
||||
In the example shown here
|
||||
|
||||
00:00:41.291 --> 00:00:44.174
|
||||
developers have approved
|
||||
two changes to Nova,
|
||||
|
||||
00:00:44.177 --> 00:00:45.700
|
||||
one change to Keystone,
|
||||
|
||||
00:00:45.701 --> 00:00:48.094
|
||||
followed by one more change to Nova.
|
||||
|
||||
00:00:48.097 --> 00:00:50.896
|
||||
As soon as a change is enqueued
|
||||
into the gate pipeline
|
||||
|
||||
00:00:50.897 --> 00:00:53.376
|
||||
Zuul starts running jobs for that change.
|
||||
|
||||
00:00:53.377 --> 00:00:57.216
|
||||
Each item in the pipeline represents
|
||||
a future state of its project
|
||||
|
||||
00:00:57.217 --> 00:01:01.616
|
||||
but also includes the future state
|
||||
of all the projects ahead of it in the queue.
|
||||
|
||||
00:01:01.617 --> 00:01:05.136
|
||||
So in this case, the tests which are running
|
||||
on the second Nova change
|
||||
|
||||
00:01:05.137 --> 00:01:08.816
|
||||
include the commit for that change
|
||||
as well as the first.
|
||||
|
||||
00:01:08.817 --> 00:01:12.977
|
||||
Nova and Keystone are tested together
|
||||
in the integration test job
|
||||
|
||||
00:01:12.978 --> 00:01:15.596
|
||||
so when that job runs on change #3
|
||||
|
||||
00:01:15.597 --> 00:01:17.836
|
||||
it is testing not only the Keystone change
|
||||
|
||||
00:01:17.837 --> 00:01:20.156
|
||||
but both Nova changes as well.
|
||||
|
||||
00:01:20.157 --> 00:01:24.071
|
||||
Inside that test job,
|
||||
it is as if all the changes ahead of it
|
||||
|
||||
00:01:24.072 --> 00:01:25.991
|
||||
in the queue have already merged.
|
||||
|
||||
00:01:25.992 --> 00:01:30.631
|
||||
In this way, Zuul tests the changes as they
|
||||
would be merged into the git repository
|
||||
|
||||
00:01:30.632 --> 00:01:32.711
|
||||
not simply as they were written.
|
||||
|
||||
00:01:32.712 --> 00:01:35.351
|
||||
Zuul runs all of these tests in parallel
|
||||
|
||||
00:01:35.352 --> 00:01:36.951
|
||||
but as soon as a job fails,
|
||||
|
||||
00:01:36.952 --> 00:01:39.491
|
||||
the future that Zuul predicted
|
||||
is no longer valid --
|
||||
|
||||
00:01:39.492 --> 00:01:42.051
|
||||
we know that change is not going to merge.
|
||||
|
||||
00:01:42.052 --> 00:01:45.651
|
||||
All of the tests for changes behind it
|
||||
in the queue are outdated
|
||||
|
||||
00:01:45.652 --> 00:01:48.611
|
||||
so Zuul cancels any running jobs
|
||||
for those changes.
|
||||
|
||||
00:01:48.612 --> 00:01:52.051
|
||||
Here we can see that not only has
|
||||
change #4 failed
|
||||
|
||||
00:01:52.052 --> 00:01:54.451
|
||||
but change #3 has as well.
|
||||
|
||||
00:01:54.452 --> 00:01:57.651
|
||||
Because #3 failed and is no longer
|
||||
eligible to merge
|
||||
|
||||
00:01:57.652 --> 00:02:01.171
|
||||
Zuul has invalidated the earlier
|
||||
test results for #4
|
||||
|
||||
00:02:01.172 --> 00:02:06.371
|
||||
and has re-started jobs for #4 with only
|
||||
changes #1 and #2 included this time.
|
||||
|
||||
00:02:06.372 --> 00:02:11.151
|
||||
Change #3 stays in the queue in case
|
||||
one of the changes ahead of it fails
|
||||
|
||||
00:02:11.152 --> 00:02:14.512
|
||||
but unless that happens it will not be merged.
|
||||
|
||||
00:02:14.513 --> 00:02:17.472
|
||||
As changes #1 and #2 complete their tests
|
||||
|
||||
00:02:17.473 --> 00:02:20.592
|
||||
each of them is merged into
|
||||
the Nova repository.
|
||||
|
||||
00:02:20.593 --> 00:02:21.794
|
||||
Once that is complete
|
||||
|
||||
00:02:21.795 --> 00:02:26.914
|
||||
it is safe to report the Keystone change #3
|
||||
as having failed its tests
|
||||
|
||||
00:02:26.915 --> 00:02:30.274
|
||||
Finally, the tests for Nova
|
||||
change #4 are passing now
|
||||
|
||||
00:02:30.275 --> 00:02:33.714
|
||||
confirming that the earlier problem
|
||||
was due to the Keystone change
|
||||
|
||||
00:02:33.715 --> 00:02:37.053
|
||||
Zuul merges the final Nova
|
||||
change into the repository
|
||||
|
||||
00:02:37.054 --> 00:02:39.766
|
||||
once all tests are complete.
|
BIN
media/simulation.webm
Normal file
BIN
media/simulation.webm
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user