From 78f44f26f9eaf089ebb0671bb6c8216dc8235c11 Mon Sep 17 00:00:00 2001 From: Il Sub Bang Date: Thu, 10 Nov 2022 01:13:12 +0000 Subject: [PATCH] test: --abort-on-container-exit option Signed-off-by: Emilien Escalle --- .github/dependabot.yml | 16 +++--- .github/workflows/__check-action.yml | 58 ++++++++++++-------- test/Dockerfile | 11 ++++ test/docker-compose-web-mysql.yml | 23 ++++++++ {docker => test}/docker-compose-with-env.yml | 0 {docker => test}/docker-compose.ci.yml | 0 {docker => test}/docker-compose.yml | 0 test/entrypoint.sh | 13 +++++ 8 files changed, 90 insertions(+), 31 deletions(-) create mode 100644 test/Dockerfile create mode 100644 test/docker-compose-web-mysql.yml rename {docker => test}/docker-compose-with-env.yml (100%) rename {docker => test}/docker-compose.ci.yml (100%) rename {docker => test}/docker-compose.yml (100%) create mode 100755 test/entrypoint.sh diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9619c6d..77caf7d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,35 +6,35 @@ updates: schedule: interval: weekly day: friday - time: '04:00' + time: "04:00" groups: github-actions-dependencies: patterns: - - '*' + - "*" - package-ecosystem: npm - directory: '/' + directory: "/" open-pull-requests-limit: 20 versioning-strategy: widen schedule: interval: weekly day: friday - time: '04:00' + time: "04:00" groups: actions-dependencies: patterns: - - '@actions/*' + - "@actions/*" npm-dev-dependencies: dependency-type: development - package-ecosystem: docker - directory: '/docker' + directory: "/test" open-pull-requests-limit: 20 schedule: interval: weekly day: friday - time: '04:00' + time: "04:00" groups: docker-dependencies: patterns: - - '*' + - "*" diff --git a/.github/workflows/__check-action.yml b/.github/workflows/__check-action.yml index b968eac..f3673c7 100644 --- a/.github/workflows/__check-action.yml +++ b/.github/workflows/__check-action.yml @@ -16,18 +16,18 @@ jobs: - name: Act uses: ./ with: - compose-file: "./docker/docker-compose.yml" + compose-file: "./test/docker-compose.yml" services: | service-b service-c - name: "Assert: only expected services are running" run: | - docker compose -f ./docker/docker-compose.yml ps + docker compose -f ./test/docker-compose.yml ps - docker compose -f ./docker/docker-compose.yml ps | grep docker-service-b-1 || (echo "Service service-b is not running" && exit 1) - docker compose -f ./docker/docker-compose.yml ps | grep docker-service-c-1 || (echo "Service service-c is not running" && exit 1) - (docker compose -f ./docker/docker-compose.yml ps | grep docker-service-a-1 && echo "Unexpected service service-a is running" && exit 1) || true + docker compose -f ./test/docker-compose.yml ps | grep test-service-b-1 || (echo "Service service-b is not running" && exit 1) + docker compose -f ./test/docker-compose.yml ps | grep test-service-c-1 || (echo "Service service-c is not running" && exit 1) + (docker compose -f ./test/docker-compose.yml ps | grep test-service-a-1 && echo "Unexpected service service-a is running" && exit 1) || true test-action-with-down-flags: runs-on: ubuntu-latest @@ -38,7 +38,7 @@ jobs: - name: Act uses: ./ with: - compose-file: "./docker/docker-compose.yml" + compose-file: "./test/docker-compose.yml" down-flags: "--volumes" test-action-with-compose-flags: @@ -50,13 +50,13 @@ jobs: - name: Act uses: ./ with: - compose-file: "./docker/docker-compose.yml" + compose-file: "./test/docker-compose.yml" compose-flags: "--profile profile-1" down-flags: "--volumes" - name: "Assert: profile is used" run: | - docker compose -f ./docker/docker-compose.yml -p profile-1 ps || (echo "Profile not used" && exit 1) + docker compose -f ./test/docker-compose.yml -p profile-1 ps || (echo "Profile not used" && exit 1) test-action-with-env: runs-on: ubuntu-latest @@ -67,7 +67,7 @@ jobs: - name: Act uses: ./ with: - compose-file: "./docker/docker-compose-with-env.yml" + compose-file: "./test/docker-compose-with-env.yml" env: IMAGE_NAME: busybox @@ -75,9 +75,9 @@ jobs: env: IMAGE_NAME: busybox run: | - docker compose -f ./docker/docker-compose-with-env.yml ps + docker compose -f ./test/docker-compose-with-env.yml ps - docker compose -f ./docker/docker-compose-with-env.yml ps | grep docker-service-a-1 || (echo "Service service-a is not running" && exit 1) + docker compose -f ./test/docker-compose-with-env.yml ps | grep test-service-a-1 || (echo "Service service-a is not running" && exit 1) test-action-with-multiple-compose-files: runs-on: ubuntu-latest @@ -89,20 +89,20 @@ jobs: uses: ./ with: compose-file: | - ./docker/docker-compose.yml - ./docker/docker-compose.ci.yml + ./test/docker-compose.yml + ./test/docker-compose.ci.yml services: | service-b service-d - name: "Assert: only expected services are running" run: | - docker compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps + docker compose -f ./test/docker-compose.yml -f ./test/docker-compose.ci.yml ps - docker compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps | grep docker-service-b-1 || (echo "Service service-b is not running" && exit 1) - docker compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps | grep docker-service-d-1 || (echo "Service service-d is not running" && exit 1) - (docker compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps | grep docker-service-a-1 && echo "Unexpected service service-a is running" && exit 1) || true - (docker compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.ci.yml ps | grep docker-service-c-1 && echo "Unexpected service service-c is running" && exit 1) || true + docker compose -f ./test/docker-compose.yml -f ./test/docker-compose.ci.yml ps | grep test-service-b-1 || (echo "Service service-b is not running" && exit 1) + docker compose -f ./test/docker-compose.yml -f ./test/docker-compose.ci.yml ps | grep test-service-d-1 || (echo "Service service-d is not running" && exit 1) + (docker compose -f ./test/docker-compose.yml -f ./test/docker-compose.ci.yml ps | grep test-service-a-1 && echo "Unexpected service service-a is running" && exit 1) || true + (docker compose -f ./test/docker-compose.yml -f ./test/docker-compose.ci.yml ps | grep test-service-c-1 && echo "Unexpected service service-c is running" && exit 1) || true test-action-with-cwd: runs-on: ubuntu-latest @@ -114,15 +114,27 @@ jobs: uses: ./ with: compose-file: "docker-compose.yml" - cwd: "./docker" + cwd: "./test" services: | service-b service-c - name: "Assert: only expected services are running" run: | - docker compose -f ./docker/docker-compose.yml ps + docker compose -f ./test/docker-compose.yml ps - docker compose -f ./docker/docker-compose.yml ps | grep docker-service-b-1 || (echo "Service service-b is not running" && exit 1) - docker compose -f ./docker/docker-compose.yml ps | grep docker-service-c-1 || (echo "Service service-c is not running" && exit 1) - (docker compose -f ./docker/docker-compose.yml ps | grep docker-service-a-1 && echo "Unexpected service service-a is running" && exit 1) || true + docker compose -f ./test/docker-compose.yml ps | grep test-service-b-1 || (echo "Service service-b is not running" && exit 1) + docker compose -f ./test/docker-compose.yml ps | grep test-service-c-1 || (echo "Service service-c is not running" && exit 1) + (docker compose -f ./test/docker-compose.yml ps | grep test-service-a-1 && echo "Unexpected service service-a is running" && exit 1) || true + + test-abort-on-container-exit: + runs-on: ubuntu-latest + name: Test with --abort-on-container-exit + steps: + - uses: actions/checkout@v4 + + - name: Act + uses: ./ + with: + compose-file: "test/docker-compose-web-mysql.yml" + up-flags: "--build --abort-on-container-exit --exit-code-from=web" diff --git a/test/Dockerfile b/test/Dockerfile new file mode 100644 index 0000000..923f43a --- /dev/null +++ b/test/Dockerfile @@ -0,0 +1,11 @@ +#checkov:skip=CKV_DOCKER_2: required +FROM alpine:3 + +WORKDIR /app + +COPY entrypoint.sh . +RUN chmod +x entrypoint.sh + +CMD ["/bin/sh", "entrypoint.sh"] + +USER 1000:1000 diff --git a/test/docker-compose-web-mysql.yml b/test/docker-compose-web-mysql.yml new file mode 100644 index 0000000..fd9039a --- /dev/null +++ b/test/docker-compose-web-mysql.yml @@ -0,0 +1,23 @@ +services: + web: + build: + context: . + dockerfile: Dockerfile + volumes: + - .:/app + - /app/vendor + environment: + - DB_HOST=mysql + - DB_USER=root + - DB_PASSWORD=12345 + - DATABASE=testing + depends_on: + - mysql + + mysql: + image: mariadb:latest + environment: + - MYSQL_HOST=127.0.0.1 + - MYSQL_USER=root + - MARIADB_ROOT_PASSWORD=12345 + - MYSQL_DB=testing diff --git a/docker/docker-compose-with-env.yml b/test/docker-compose-with-env.yml similarity index 100% rename from docker/docker-compose-with-env.yml rename to test/docker-compose-with-env.yml diff --git a/docker/docker-compose.ci.yml b/test/docker-compose.ci.yml similarity index 100% rename from docker/docker-compose.ci.yml rename to test/docker-compose.ci.yml diff --git a/docker/docker-compose.yml b/test/docker-compose.yml similarity index 100% rename from docker/docker-compose.yml rename to test/docker-compose.yml diff --git a/test/entrypoint.sh b/test/entrypoint.sh new file mode 100755 index 0000000..28d324e --- /dev/null +++ b/test/entrypoint.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +sleep 2 && cat < +< --abort-on-container-exit --exit-code-from=web > + ------------------------------------------------- + \ ^__^ + \ (oo)\_______ + (__)\ )\\/\\ + ||----w | + || || +EOF