diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..358246b71 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,67 @@ +# Holds common docker settings for running containerized tests. +# +# Examples: +# docker-compose run archlinux-webkit tox -e py-qt5 -- tests/unit/browser/webengine/test_webenginesettings.py +# docker-compose run archlinux-webengine-unstable-qt6 tox -e py -- tests/unit/browser/webengine/test_webenginesettings.py +# IMAGE=python:3.8 docker-compose run other bash +# +# archlinux-* images are generated by scripts/dev/ci/docker/generate.py and +# published from CI. +# For other images, like python:3.8 or ubuntu:20.04, use +# `IMAGE=python:3.8 docker-compose run other bash`. +# See doc/contributing.asciidoc for more notes. +# +# `extends` might not work on some compose versions: https://stackoverflow.com/questions/36283908/re-using-environment-variables-in-docker-compose-yml +# Env var interpolation (for the "other") service, might not work on older +# compose versions. +services: + base: + image: index.docker.io/library/python:3 + environment: + QUTE_TESTS_BACKEND: "webengine" + # DISPLAY allows connecting applications in the container to a Xephyr display on + # the host via the mounted /tmp/ directory below. + # Run like: + # Xephyr :27 -ac -resizeable -title qutetests -screen 1920x1080 -no-host-grab + DISPLAY: ":27" + # Since we are mounting the source dir from the host, move cache dirs + # out of the work directory into the container so we can avoid conflicts + # with permissions. + TOX_WORK_DIR: "/home/user/.tox" + HYPOTHESIS_EXAMPLES_DIR: "/home/user/.hypothesis/examples" + # This tells tox to make the system site packages available in the + # virtualenvs it creates, which lets you use the distro Qt when doing `tox -e py` + VIRTUALENV_SYSTEM_SITE_PACKAGES: "true" + working_dir: /work + volumes: + - /tmp/.X11-unix:/tmp/.X11-unix + - type: bind + source: $PWD + target: /work + read_only: true + + archlinux-webengine-unstable-qt6: + extends: base + image: index.docker.io/qutebrowser/ci:archlinux-webengine-unstable-qt6 + + archlinux-webengine-unstable: + image: index.docker.io/qutebrowser/ci:archlinux-webengine-unstable + extends: base + + archlinux-webengine-qt6: + image: index.docker.io/qutebrowser/ci:archlinux-webengine-qt6 + extends: base + + archlinux-webengine: + image: index.docker.io/qutebrowser/ci:archlinux-webengine + extends: base + + archlinux-webkit: + image: index.docker.io/qutebrowser/ci:archlinux-webkit + extends: base + environment: + QUTE_TESTS_BACKEND: "webkit" + + other: + image: "${IMAGE}" + extends: base