From 5612367f3f944443de17cf7dc392a40da129a575 Mon Sep 17 00:00:00 2001 From: sommersoft Date: Tue, 8 Feb 2022 07:31:54 -0600 Subject: [PATCH] add working docker-compose elements --- testing/downstream_testing/Dockerfile | 31 ++++++++ testing/downstream_testing/docker-compose.yml | 78 +++++++++++++++++++ testing/downstream_testing/entrypoint.sh | 6 ++ 3 files changed, 115 insertions(+) create mode 100644 testing/downstream_testing/Dockerfile create mode 100644 testing/downstream_testing/docker-compose.yml create mode 100644 testing/downstream_testing/entrypoint.sh diff --git a/testing/downstream_testing/Dockerfile b/testing/downstream_testing/Dockerfile new file mode 100644 index 000000000..c40cce6bb --- /dev/null +++ b/testing/downstream_testing/Dockerfile @@ -0,0 +1,31 @@ +FROM sommersoft/pyenv-pytest:latest + +COPY entrypoint.sh /entrypoint.sh + +# Add mysql apt repository +RUN set -ex; \ +# gpg: key 5072E1F5: public key "MySQL Release Engineering " imported + key='859BE8D7C586F538430B19C2467B942D3A79BD29'; \ + export GNUPGHOME="$(mktemp -d)"; \ + #gpg --batch --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ + for server in ha.pool.sks-keyservers.net \ + hkp://p80.pool.sks-keyservers.net:80 \ + keyserver.ubuntu.com \ + hkp://keyserver.ubuntu.com:80 \ + pgp.mit.edu; do \ + gpg --keyserver "$server" --recv-keys "$key" && break || echo "Trying new keyserver..."; \ + done; \ + gpg --batch --export "$key" > /etc/apt/trusted.gpg.d/mysql.gpg; \ + gpgconf --kill all; \ + rm -rf "$GNUPGHOME"; \ + apt-key list > /dev/null +RUN echo 'deb http://repo.mysql.com/apt/debian/ buster mysql-8.0' > /etc/apt/sources.list.d/mysql.list + +RUN apt-get update \ + && apt-get install --no-install-recommends -y make build-essential libssl-dev zlib1g-dev \ + libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev \ + libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev + +RUN apt-get install -y postgresql-client mysql-client + +ENTRYPOINT [ "/entrypoint.sh" ] \ No newline at end of file diff --git a/testing/downstream_testing/docker-compose.yml b/testing/downstream_testing/docker-compose.yml new file mode 100644 index 000000000..90bef1dc8 --- /dev/null +++ b/testing/downstream_testing/docker-compose.yml @@ -0,0 +1,78 @@ +version: "3" +services: + base_nodb: + build: . + environment: + - DS_NAME + - DS_YAML + - DS_JOBS + - DS_MATRIX_EXCLUDE + volumes: + - type: bind + source: /home/runner/work/pytest/pytest + target: /pytest + volume: + nocopy: true + profiles: + - nodb + + base_postgres: + build: . + environment: + - DS_NAME + - DS_YAML + - DS_JOBS + - DS_MATRIX_EXCLUDE + - TEST_DB_USER=$USER + - TEST_DB_PASSWORD=pytest_djang0 + - TEST_DB_HOST=postgres_db + volumes: + - type: bind + source: /home/runner/work/pytest/pytest + target: /pytest + volume: + nocopy: true + depends_on: + - postgres_db + profiles: + - postgres + postgres_db: + image: "postgres:latest" + environment: + - POSTGRES_PASSWORD=pytest_djang0 + - POSTGRES_USER=$USER + volumes: + - /etc/passwd:/etc/passwd:ro + - ./data/db:/var/lib/postgresql/data + profiles: + - postgres + + base_mysql: + build: . + environment: + - DS_NAME + - DS_YAML + - DS_JOBS + - DS_MATRIX_EXCLUDE + - TEST_DB_USER=root + - TEST_DB_PASSWORD=root + - TEST_DB_HOST=mysql_db + volumes: + - type: bind + source: /home/runner/work/pytest/pytest + target: /pytest + volume: + nocopy: true + depends_on: + - mysql_db + profiles: + - mysql + mysql_db: + image: "mysql:latest" + command: --default-authentication-plugin=mysql_native_password + environment: + - MYSQL_ROOT_PASSWORD=root + volumes: + - ./data/db:/var/lib/mysql + profiles: + - mysql \ No newline at end of file diff --git a/testing/downstream_testing/entrypoint.sh b/testing/downstream_testing/entrypoint.sh new file mode 100644 index 000000000..1fbf660dc --- /dev/null +++ b/testing/downstream_testing/entrypoint.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +python3.9 -m pip install --no-cache-dir pyyaml sh + +cd /pytest +python3.9 -u -m testing.downstream_testing.downstream_runner $DS_NAME $DS_YAML $DS_JOBS --matrix-exclude $DS_MATRIX_EXCLUDE \ No newline at end of file