| # COS Xfstests Runner container used in COS xfstests | |
| ## Overview | |
| This is an docker image used by COS (Container-Optimized OS) | |
| xfstests. It includes scripts and necessary dependencies for running | |
| gce-xfstests under a given xfstests config against a given COS version. | |
| The image is released at `gcr.io/cos-xfstests/cos-xfstests-runner` with a unique | |
| tag for each release. This container image is not publicly available. | |
| ## Building COS Xfstests Runner Image | |
| ### Locally (for testing the image) | |
| For testing, you can simply build and test this docker container locally on your | |
| workstation: | |
| ```shell | |
| $ docker build -t cos-xfstests-runner:dev . | |
| ``` | |
| ### Production (push into GCR) | |
| Since `gcr.io/cos-xfstests/cos-xfstests-runner` is not publicly available, only | |
| authenticated users can push into the GCR registry. | |
| ```shell | |
| $ VERSION=<version> # e.g., 20171008 | |
| $ docker build -t gcr.io/cos-xfstests/cos-xfstests-runner:$VERSION . | |
| $ docker build -t gcr.io/cos-xfstests/cos-xfstests-runner:latest . | |
| $ gcloud docker -- push gcr.io/cos-xfstests/cos-xfstests-runner:$VERSION | |
| $ gcloud docker -- push gcr.io/cos-xfstests/cos-xfstests-runner:latest | |
| ``` | |
| ## Using COS Xfstests Runner Image | |
| ### Locally (for testing the image) | |
| COS xfstests runner container will use the xfstests-bld tarball and kernel image | |
| generated by COS kernel CI. To run this container locally, you can build the kernel | |
| image using cos_kerenl_devenv container. | |
| To run the COS xfstests runner locally: | |
| ```shell | |
| $ docker run --rm -v ~/.config/gcloud:/root/.config/gcloud cos-xfstests-runner:dev -x overlay -n xfs-vm -r gs://xueweiz-play/xfstests/R76-12188.0.0 -p cos-xfstests -z us-west1-c -b generic/269,generic/347,generic/405,generic/500 | |
| ``` | |
| The container will download xfstests-bld tarball and kernel image from given GCS | |
| bucket, then run `gce-xfstests` script on the given config. This will create one | |
| GCE instance and two responding disks in the given project and zone. If they run | |
| into soft lockup, the developer must manually clean them up. | |
| The container image is set to use | |
| [test appliance image](https://github.com/tytso/xfstests-bld/blob/master/Documentation/gce-xfstests.md#creating-a-new-gce-test-appliance-image) | |
| "xfstests-201901211635" by default. Use the `--rootfs_image` to overwrite it. |