blob: 44adf33ab35eb46f4198f2c9673af1df68d1add2 [file] [view] [edit]
Landmines let anyone force the CQ build slaves to clean their out directories.
## Using Landmines
If you want to use a landmine to trigger the bots to clean themselves,
then go to continuous-tests/cq/landmines (the directory this file is in) and
bump the number of the landmine file.
For instance, if there is currently a 'landmine.6' file, create 'landmine.7'.
The CQ will only care about the landmine with the largest number, regardless
of how many landmine files there are.
In the landmine file, add a quick note explaining why a landmine is necessary,
and add a bug number if there is one. This part is purely documentation, but
it is nice to have.
Then, commit your change with the new/updated landmine file.
The next time the CQ runs, the builder then checks if
~/landmines/landmine.<number>/<manifest_branch> exists.
If it already exists, then the builder continues normally.
If it does not exists, the builder runs:
`make clean` && `touch ~/landmines/landmine.<number>/<manifest_branch>`
This cleans out the $ROOT/out/ directory and all $ROOT/chromium/src/out_*
directories, and then records that the landmine has been processed.
## Landmine File Format
A landmine file must be located inside continous-tests/cq/landmines
A landmine file must have a name of the format: landmine.<number>
Examples:
continuous-tests/cq/landmines/landmine.1
continuous-tests/cq/landmines/landmine.23
continuous-tests/cq/landmines/landmine.9999
## Landmine File Contents
The contents of a landmine file do not affect the behaviour of a landmine
in anyway. However, it is a convenient place to document why a landmine
was needed. A short description and a bug # are usually good to include.
## Landmine History
Each slave keeps track of which landmines it has already seen in its
own ~/landmines directory. Each time a slave sees a new landmine,
it adds a ~/landmines/<landmine>/<manifest_branch> file to the folder,
to indicate it saw <landmine> and triggered a clean. Since the CQ slaves keep
separate checkouts for each manifest branch, the history needs to include
<manifest_branch>.