mirror of
https://github.com/hoverkraft-tech/compose-action.git
synced 2026-01-10 22:53:06 +08:00
test: --abort-on-container-exit option
Signed-off-by: Emilien Escalle <emilien.escalle@escemi.com>
This commit is contained in:
parent
2bd57c29bd
commit
78f44f26f9
16
.github/dependabot.yml
vendored
16
.github/dependabot.yml
vendored
@ -6,35 +6,35 @@ updates:
|
|||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
day: friday
|
day: friday
|
||||||
time: '04:00'
|
time: "04:00"
|
||||||
groups:
|
groups:
|
||||||
github-actions-dependencies:
|
github-actions-dependencies:
|
||||||
patterns:
|
patterns:
|
||||||
- '*'
|
- "*"
|
||||||
|
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
directory: '/'
|
directory: "/"
|
||||||
open-pull-requests-limit: 20
|
open-pull-requests-limit: 20
|
||||||
versioning-strategy: widen
|
versioning-strategy: widen
|
||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
day: friday
|
day: friday
|
||||||
time: '04:00'
|
time: "04:00"
|
||||||
groups:
|
groups:
|
||||||
actions-dependencies:
|
actions-dependencies:
|
||||||
patterns:
|
patterns:
|
||||||
- '@actions/*'
|
- "@actions/*"
|
||||||
npm-dev-dependencies:
|
npm-dev-dependencies:
|
||||||
dependency-type: development
|
dependency-type: development
|
||||||
|
|
||||||
- package-ecosystem: docker
|
- package-ecosystem: docker
|
||||||
directory: '/docker'
|
directory: "/test"
|
||||||
open-pull-requests-limit: 20
|
open-pull-requests-limit: 20
|
||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
day: friday
|
day: friday
|
||||||
time: '04:00'
|
time: "04:00"
|
||||||
groups:
|
groups:
|
||||||
docker-dependencies:
|
docker-dependencies:
|
||||||
patterns:
|
patterns:
|
||||||
- '*'
|
- "*"
|
||||||
|
|||||||
58
.github/workflows/__check-action.yml
vendored
58
.github/workflows/__check-action.yml
vendored
@ -16,18 +16,18 @@ jobs:
|
|||||||
- name: Act
|
- name: Act
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
compose-file: "./docker/docker-compose.yml"
|
compose-file: "./test/docker-compose.yml"
|
||||||
services: |
|
services: |
|
||||||
service-b
|
service-b
|
||||||
service-c
|
service-c
|
||||||
|
|
||||||
- name: "Assert: only expected services are running"
|
- name: "Assert: only expected services are running"
|
||||||
run: |
|
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 ./test/docker-compose.yml ps | grep test-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 ./test/docker-compose.yml ps | grep test-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-a-1 && echo "Unexpected service service-a is running" && exit 1) || true
|
||||||
|
|
||||||
test-action-with-down-flags:
|
test-action-with-down-flags:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -38,7 +38,7 @@ jobs:
|
|||||||
- name: Act
|
- name: Act
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
compose-file: "./docker/docker-compose.yml"
|
compose-file: "./test/docker-compose.yml"
|
||||||
down-flags: "--volumes"
|
down-flags: "--volumes"
|
||||||
|
|
||||||
test-action-with-compose-flags:
|
test-action-with-compose-flags:
|
||||||
@ -50,13 +50,13 @@ jobs:
|
|||||||
- name: Act
|
- name: Act
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
compose-file: "./docker/docker-compose.yml"
|
compose-file: "./test/docker-compose.yml"
|
||||||
compose-flags: "--profile profile-1"
|
compose-flags: "--profile profile-1"
|
||||||
down-flags: "--volumes"
|
down-flags: "--volumes"
|
||||||
|
|
||||||
- name: "Assert: profile is used"
|
- name: "Assert: profile is used"
|
||||||
run: |
|
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:
|
test-action-with-env:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -67,7 +67,7 @@ jobs:
|
|||||||
- name: Act
|
- name: Act
|
||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
compose-file: "./docker/docker-compose-with-env.yml"
|
compose-file: "./test/docker-compose-with-env.yml"
|
||||||
env:
|
env:
|
||||||
IMAGE_NAME: busybox
|
IMAGE_NAME: busybox
|
||||||
|
|
||||||
@ -75,9 +75,9 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
IMAGE_NAME: busybox
|
IMAGE_NAME: busybox
|
||||||
run: |
|
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:
|
test-action-with-multiple-compose-files:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -89,20 +89,20 @@ jobs:
|
|||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
compose-file: |
|
compose-file: |
|
||||||
./docker/docker-compose.yml
|
./test/docker-compose.yml
|
||||||
./docker/docker-compose.ci.yml
|
./test/docker-compose.ci.yml
|
||||||
services: |
|
services: |
|
||||||
service-b
|
service-b
|
||||||
service-d
|
service-d
|
||||||
|
|
||||||
- name: "Assert: only expected services are running"
|
- name: "Assert: only expected services are running"
|
||||||
run: |
|
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 ./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 ./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 ./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 ./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 ./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 ./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-c-1 && echo "Unexpected service service-c is running" && exit 1) || true
|
||||||
|
|
||||||
test-action-with-cwd:
|
test-action-with-cwd:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -114,15 +114,27 @@ jobs:
|
|||||||
uses: ./
|
uses: ./
|
||||||
with:
|
with:
|
||||||
compose-file: "docker-compose.yml"
|
compose-file: "docker-compose.yml"
|
||||||
cwd: "./docker"
|
cwd: "./test"
|
||||||
services: |
|
services: |
|
||||||
service-b
|
service-b
|
||||||
service-c
|
service-c
|
||||||
|
|
||||||
- name: "Assert: only expected services are running"
|
- name: "Assert: only expected services are running"
|
||||||
run: |
|
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 ./test/docker-compose.yml ps | grep test-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 ./test/docker-compose.yml ps | grep test-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-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
11
test/Dockerfile
Normal 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
|
||||||
23
test/docker-compose-web-mysql.yml
Normal file
23
test/docker-compose-web-mysql.yml
Normal 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
13
test/entrypoint.sh
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
sleep 2 && cat <<EOF
|
||||||
|
_________________________________________________
|
||||||
|
< It works! >
|
||||||
|
< --abort-on-container-exit --exit-code-from=web >
|
||||||
|
-------------------------------------------------
|
||||||
|
\ ^__^
|
||||||
|
\ (oo)\_______
|
||||||
|
(__)\ )\\/\\
|
||||||
|
||----w |
|
||||||
|
|| ||
|
||||||
|
EOF
|
||||||
Loading…
x
Reference in New Issue
Block a user