feat: add support for compose flags (#7)

Add support for options (eg: --profile) to be passed to docker-compose.
This commit is contained in:
Razvan 2022-08-27 08:12:55 +02:00 committed by GitHub
parent 65ecb06558
commit ada3c6c7cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 27 additions and 10 deletions

View File

@ -20,3 +20,8 @@ jobs:
with:
compose-file: "./docker/docker-compose.yml"
down-flags: "--volumes"
- uses: ./
with:
compose-file: "./docker/docker-compose.yml"
compose-flags: "--profile profile-1"
down-flags: "--volumes"

View File

@ -5,6 +5,10 @@ inputs:
description: "relative path to compose file"
required: false
default: "./docker-compose.yml"
compose-flags: # id of input
description: "additional options to pass to `docker-compose` command"
required: false
default: ""
down-flags: # id of input
description: "additional options to pass to `docker-compose down` command"
required: false

View File

@ -9,6 +9,8 @@ services:
volumes:
- test_volume:/test:Z
helloworld2:
profiles: [profile-1]
image: hello-world
helloworld3:
profiles: [profile-2]
image: hello-world

11
main.js
View File

@ -11,10 +11,13 @@ try {
return;
}
const services = core.getMultilineInput("services", { required: false });
const upFlagsString = core.getInput("up-flags");
const options = utils.getOptions(composeFile, upFlagsString);
const services = core.getMultilineInput("services", { required: false });;
const options = {
config: composeFile,
log: true,
composeOptions: utils.parseFlags(core.getInput("compose-flags")),
commandOptions: utils.parseFlags(core.getInput("up-flags"))
};
const promise =
services.length > 0

View File

@ -10,8 +10,12 @@ try {
return;
}
const downFlagsString = core.getInput("down-flags");
const options = utils.getOptions(composeFile, downFlagsString);
const options = {
config: composeFile,
log: true,
composeOptions: utils.parseFlags(core.getInput("compose-flags")),
commandOptions: utils.parseFlags(core.getInput("up-flags"))
};
compose.down(options).then(
() => {

View File

@ -1,8 +1,7 @@
module.exports.getOptions = (composeFile, flags) => {
const options = { config: composeFile, log: true };
module.exports.parseFlags = (flags) => {
if (flags != null && typeof flags == "string" && flags.length > 0) {
options["commandOptions"] = flags.split(" ");
return flags.split(" ");
}
return options;
return [];
};