49 lines
1.0 KiB
Markdown
49 lines
1.0 KiB
Markdown
# VM Images & Tests
|
|
|
|
All commands in this directory require the `gcloud` project to be set.
|
|
|
|
For example: `gcloud config set project gvisor-kokoro-testing`.
|
|
|
|
Images can be generated by using the `vm_image` rule. This rule will generate a
|
|
binary target that builds an image in an idempotent way, and can be referenced
|
|
from other rules.
|
|
|
|
For example:
|
|
|
|
```
|
|
vm_image(
|
|
name = "ubuntu",
|
|
project = "ubuntu-1604-lts",
|
|
family = "ubuntu-os-cloud",
|
|
scripts = [
|
|
"script.sh",
|
|
"other.sh",
|
|
],
|
|
)
|
|
```
|
|
|
|
These images can be built manually by executing the target. The output on
|
|
`stdout` will be the image id (in the current project).
|
|
|
|
For example:
|
|
|
|
```
|
|
$ bazel build :ubuntu
|
|
```
|
|
|
|
Images are always named per the hash of all the hermetic input scripts. This
|
|
allows images to be memoized quickly and easily.
|
|
|
|
The `vm_test` rule can be used to execute a command remotely. This is still
|
|
under development however, and will likely change over time.
|
|
|
|
For example:
|
|
|
|
```
|
|
vm_test(
|
|
name = "mycommand",
|
|
image = ":ubuntu",
|
|
targets = [":test"],
|
|
)
|
|
```
|