parent
044b8da55a
commit
5fc7d033f9
288 changed files with 13040 additions and 1 deletions
115
bots/README.md
Normal file
115
bots/README.md
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
# Cockpit Bots
|
||||
|
||||
These are automated bots and tools that work on Cockpit. This
|
||||
includes updating operating system images, testing changes,
|
||||
releasing Cockpit and more.
|
||||
|
||||
## Images
|
||||
|
||||
In order to test Cockpit-related projects, they are staged into an operating
|
||||
system image. These images are tracked in the ```bots/images``` directory.
|
||||
|
||||
These well known image names are expected to contain no ```.```
|
||||
characters and have no file name extension.
|
||||
|
||||
For managing these images:
|
||||
|
||||
* image-download: Download test images
|
||||
* image-upload: Upload test images
|
||||
* image-create: Create test machine images
|
||||
* image-customize: Generic tool to install packages, upload files, or run
|
||||
commands in a test machine image
|
||||
* image-prepare: Build and install Cockpit packages into a test machine image
|
||||
(specific to the cockpit project itself, thus it is in test/, not bots/)
|
||||
|
||||
For debugging the images:
|
||||
|
||||
* bots/vm-run: Run a test machine image
|
||||
* bots/vm-reset: Remove all overlays from image-customize, image-prepare, etc
|
||||
from test/images/
|
||||
|
||||
In case of `qemu-system-x86_64: -netdev bridge,br=cockpit1,id=bridge0: bridge helper failed`
|
||||
error, please [allow][1] `qemu-bridge-helper` to access the bridge settings.
|
||||
|
||||
To check when images will automatically be refreshed by the bots
|
||||
use the image-trigger tool:
|
||||
|
||||
$ bots/image-trigger -vd
|
||||
|
||||
## Tests
|
||||
|
||||
The bots automatically run the tests as needed on pull requests
|
||||
and branches. To check when and where tests will be run, use the
|
||||
tests-scan tool:
|
||||
|
||||
$ bots/tests-scan -vd
|
||||
|
||||
## Integration with GitHub
|
||||
|
||||
A number of machines are watching our GitHub repository and are
|
||||
executing tests for pull requests as well as making new images.
|
||||
|
||||
Most of this happens automatically, but you can influence their
|
||||
actions with the tests-trigger utility in this directory.
|
||||
|
||||
### Setup
|
||||
|
||||
You need a GitHub token in ~/.config/github-token. You can create one
|
||||
for your account at
|
||||
|
||||
https://github.com/settings/tokens
|
||||
|
||||
When generating a new personal access token, the scope only needs to
|
||||
encompass public_repo (or repo if you're accessing a private repo).
|
||||
|
||||
### Retrying a failed test
|
||||
|
||||
If you want to run the "verify/fedora-atomic" testsuite again for pull
|
||||
request #1234, run tests-trigger like so:
|
||||
|
||||
$ bots/tests-trigger 1234 verify/fedora-atomic
|
||||
|
||||
### Testing a pull request by a non-whitelisted user
|
||||
|
||||
If you want to run all tests on pull request #1234 that has been
|
||||
opened by someone who is not in our white-list, run tests-trigger
|
||||
like so:
|
||||
|
||||
$ bots/tests-trigger -f 1234
|
||||
|
||||
Of course, you should make sure that the pull request is proper and
|
||||
doesn't execute evil code during tests.
|
||||
|
||||
### Refreshing a test image
|
||||
|
||||
Test images are refreshed automatically once per week, and even if the
|
||||
last refresh has failed, the machines wait one week before trying again.
|
||||
|
||||
If you want the machines to refresh the fedora-atomic image immediately,
|
||||
run image-trigger like so:
|
||||
|
||||
$ bots/image-trigger fedora-atomic
|
||||
|
||||
### Creating new images for a pull request
|
||||
|
||||
If as part of some new feature you need to change the content of some
|
||||
or all images, you can ask the machines to create those images.
|
||||
|
||||
If you want to have a new fedora-atomic image for pull request #1234, add
|
||||
a bullet point to that pull request's description like so, and add the
|
||||
"bot" label to the pull request.
|
||||
|
||||
* [ ] image-refresh fedora-atomic
|
||||
|
||||
The machines will post comments to the pull request about their
|
||||
progress and at the end there will be links to commits with the new
|
||||
images. You can then include these commits into the pull request in
|
||||
any way you like.
|
||||
|
||||
If you are certain about the changes to the images, it is probably a
|
||||
good idea to make a dedicated pull request just for the images. That
|
||||
pull request can then hopefully be merged to master faster. If
|
||||
instead the images are created on the main feature pull request and
|
||||
sit there for a long time, they might cause annoying merge conflicts.
|
||||
|
||||
[1]: https://blog.christophersmart.com/2016/08/31/configuring-qemu-bridge-helper-after-access-denied-by-acl-file-error/
|
||||
Loading…
Add table
Add a link
Reference in a new issue