This action runs your docker-compose file 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: 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 |
---|---|---|---|
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