This action runs your compose file(s) and clean up before action finished
The action will run docker compose up
to start the services defined in the given compose file(s).
The compose file(s) can be specified using the compose-file
input.
Some extra options can be passed to the docker compose up
command using the up-flags
input.
On post hook, the action will run docker compose down
to clean up the services.
In debug mode, the logs of the running services are printed before the cleanup.
Some extra options can be passed to the docker compose down
command using the down-flags
input.
- uses: hoverkraft-tech/[email protected]
with:
# Description: Additional options to pass to `docker` command.
#
docker-flags: ""
# Description: Path to compose file(s). It can be a list of files. It can be
# absolute or relative to the current working directory (cwd).
#
# Default: ./docker-compose.yml
compose-file: ""
# Description: Services to perform docker compose up.
#
services: ""
# Description: Additional options to pass to `docker compose up` command.
#
# Default:
up-flags: ""
# Description: Additional options to pass to `docker compose down` command.
#
# Default:
down-flags: ""
# Description: Additional options to pass to `docker compose` command.
#
# Default:
compose-flags: ""
# Description: Current working directory
#
# Default: ${{ github.workspace }}
cwd: ""
# Description: Compose version to use. If null (default), it will use the current
# installed version. If "latest", it will install the latest version.
#
compose-version: ""
# Description: The GitHub token used to create an authenticated client (to fetch
# the latest version of docker compose).
#
# Default: ${{ github.token }}
github-token: ""
Input | Description | Default | Required |
---|---|---|---|
docker-flags |
Additional options to pass to docker command. |
false | |
compose-file |
Path to compose file(s). It can be a list of files. It can be absolute or relative to the current working directory (cwd). | ./docker-compose.yml |
false |
services |
Services to perform docker compose up. | false | |
up-flags |
Additional options to pass to docker compose up command. |
false | |
down-flags |
Additional options to pass to docker compose down command. |
false | |
compose-flags |
Additional options to pass to docker compose command. |
false | |
cwd |
Current working directory | ${{ github.workspace }} |
false |
compose-version |
Compose version to use. If null (default), it will use the current installed version. If "latest", it will install the latest version. |
false | |
github-token |
The GitHub token used to create an authenticated client (to fetch the latest version of docker compose). | ${{ github.token }} |
false |
name: Docker Compose Action
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run docker compose
uses: hoverkraft-tech/[email protected]
with:
compose-file: "./docker/docker-compose.yml"
- name: Execute tests in the running services
run: |
docker compose exec test-app pytest
steps:
- uses: actions/checkout@v4
- uses: hoverkraft-tech/[email protected]
with:
compose-file: "./docker/docker-compose.yml"
env:
CUSTOM_VARIABLE: "test"
Perform docker compose up
to some given service instead of all of them
steps:
# need checkout before using compose-action
- uses: actions/checkout@v3
- uses: hoverkraft-tech/[email protected]
with:
compose-file: "./docker/docker-compose.yml"
services: |
helloworld2
helloworld3
Specify flags to pass to the docker compose up
. Default is none. Can be used
to pass the --build
flag, for example, if you want persistent volumes to be
deleted as well during cleanup. A full list of flags can be found in the
docker compose up documentation.
Specify flags to pass to the docker compose down
command during cleanup.
Default is none. Can be used to pass the --volumes
flag, for example, if you
want persistent volumes to be deleted as well during cleanup. A full list of
flags can be found in the
docker compose down documentation.
Specify flags to pass to the docker compose
command. Default is none. A full
list of flags can be found in the
docker compose documentation.
steps:
# need checkout before using compose-action
- uses: actions/checkout@v3
- uses: hoverkraft-tech/[email protected]
with:
compose-file: "./docker/docker-compose.yml"
services: |
helloworld2
helloworld3