diff --git a/test/README.md b/test/README.md index 986e4e92a04..4dec2e91bdc 100644 --- a/test/README.md +++ b/test/README.md @@ -42,6 +42,36 @@ go test -v ./libpod/ go test -v -run TestMyFunction ./pkg/specgen/ ``` +## Reproducing CI failures locally with lima + +`hack/ci/ci.sh` runs a CI test suite inside the same lima VM image used by +upstream CI. The script requires `limactl`, starts a nested-virtualization VM +with 8 GB of memory, copies this repository into the VM, and runs +`hack/ci/runner.sh` there, so the host distro does not matter. + +The invocation is positional and takes 2 to 4 arguments: + +```bash +hack/ci/ci.sh TEST DISTRO +hack/ci/ci.sh TEST PRIV DISTRO +hack/ci/ci.sh TEST MODE PRIV DISTRO +``` + +`TEST` is the suite, one of `build`, `apiv2`, `bindings`, `bud`, `compose_v2`, +`docker_py`, `unit`, `upgrade`, `int`, `sys`, or `machine`. `MODE` is `local` +or `remote` and defaults to `local`. `PRIV` is `root` or `rootless` and defaults +to `rootless`. `DISTRO` must be one of `fedora-current`, `fedora-prior`, +`fedora-rawhide`, or `debian-sid`. + +For the `upgrade` suite the `MODE` slot is reused to pass the version to upgrade +from (e.g. `v5.3.1`) rather than `local`/`remote`. + +```bash +hack/ci/ci.sh sys remote rootless fedora-current +``` + +Some parts of the test suite cannot run inside the VM. + # Test utils Test utils provide common functions and structs for testing. It includes two structs: * `PodmanTest`: Handle the *podman* command and other global resources like temporary