test: --abort-on-container-exit option

Signed-off-by: Emilien Escalle <emilien.escalle@escemi.com>
This commit is contained in:
Il Sub Bang 2022-11-10 01:13:12 +00:00 committed by Emilien Escalle
parent 2bd57c29bd
commit 78f44f26f9
8 changed files with 90 additions and 31 deletions

View File

@ -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:
- '*'
- "*"

View File

@ -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"

11
test/Dockerfile Normal file
View File

@ -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

View File

@ -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

13
test/entrypoint.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
sleep 2 && cat <<EOF
_________________________________________________
< It works! >
< --abort-on-container-exit --exit-code-from=web >
-------------------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\\/\\
||----w |
|| ||
EOF