summaryrefslogtreecommitdiffhomepage
path: root/tools/vm/README.md
blob: 1e9859e66c5e2c9b8c2565ed08e5d860d720e5c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 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"],
)
```