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.
Logs of the Docker Compose services are logged using GitHub core.ts
API before the cleanup.
The log level can be set using the services-log-level
input. The default is debug
, which will
only print logs if debug mode is switched on.
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 log level used for Docker Compose service logs. Can be one of
# "debug", "info".
#
# Default: debug
services-log-level: ""
# 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 | |
services-log-level |
The log level used for Docker Compose service logs. Can be one of "debug", "info". |
debug |
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/[email protected]
- 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/[email protected]
- 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
Specify multiple compose files to use with the docker compose
command. This is
useful when you have a base compose file and additional files for different
environments or configurations.
steps:
# need checkout before using compose-action
- uses: actions/checkout@v3
- uses: hoverkraft-tech/[email protected]
with:
compose-file: |
./docker/docker-compose.yml
./docker/docker-compose.ci.yml