Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hoverkraft-tech/compose-action

This action runs your docker-compose file and clean up before action finished
https://github.com/hoverkraft-tech/compose-action

docker-compose github-actions

Last synced: about 1 month ago
JSON representation

This action runs your docker-compose file and clean up before action finished

Awesome Lists containing this project

README

        

branding<icon:anchor color:gray-dark>

# branding<icon:anchor color:gray-dark> GitHub Action: Docker Compose Action

Release%20by%20tagRelease%20by%20dateCommitOpen%20IssuesDownloads

This action runs your docker-compose file and clean up before action finished

## Usage

### Action

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.

### Post hook

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.

```yaml
- 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: ""
```

## Inputs

| **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** |

## Examples

### Example using in a full workflow

```yaml
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
```

### Example Using environment variables

```yaml
steps:
- uses: actions/checkout@v4
- uses: hoverkraft-tech/[email protected]
with:
compose-file: "./docker/docker-compose.yml"
env:
CUSTOM_VARIABLE: "test"
```

### Example using `services`

Perform `docker-compose up` to some given service instead of all of them

```yaml
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
```

### Example using `up-flags`

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](https://docs.docker.com/compose/reference/up/).

### Example using `down-flags`

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](https://docs.docker.com/compose/reference/down/).

### Example using `compose-flags`

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](https://docs.docker.com/compose/reference/#command-options-overview-and-help).

```yaml
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
```