# 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).

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"],
)
```