Skip to content

Commit

Permalink
test: --abort-on-container-exit option
Browse files Browse the repository at this point in the history
Signed-off-by: Emilien Escalle <emilien.escalle@escemi.com>
  • Loading branch information
isbang authored and neilime committed Apr 3, 2024
1 parent 2bd57c2 commit 78f44f2
Show file tree
Hide file tree
Showing 8 changed files with 90 additions and 31 deletions.
16 changes: 8 additions & 8 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
- '*'
- "*"
58 changes: 35 additions & 23 deletions .github/workflows/__check-action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand All @@ -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
Expand All @@ -67,17 +67,17 @@ 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

- name: "Assert: env is used"
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
Expand All @@ -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
Expand All @@ -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 changes: 11 additions & 0 deletions test/Dockerfile
Original file line number Diff line number Diff line change
@@ -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
23 changes: 23 additions & 0 deletions test/docker-compose-web-mysql.yml
Original file line number Diff line number Diff line change
@@ -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
File renamed without changes.
File renamed without changes.
File renamed without changes.
13 changes: 13 additions & 0 deletions test/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/sh

sleep 2 && cat <<EOF
_________________________________________________
< It works! >
< --abort-on-container-exit --exit-code-from=web >
-------------------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\\/\\
||----w |
|| ||
EOF

0 comments on commit 78f44f2

Please sign in to comment.