Add 'down-on-success' input to action.yml and implement conditional down in post-runner.ts
This commit is contained in:
@@ -48,6 +48,10 @@ inputs:
|
|||||||
description: The GitHub token used to create an authenticated client (to fetch the latest version of docker compose).
|
description: The GitHub token used to create an authenticated client (to fetch the latest version of docker compose).
|
||||||
default: ${{ github.token }}
|
default: ${{ github.token }}
|
||||||
required: false
|
required: false
|
||||||
|
down-on-success:
|
||||||
|
description: "Whether to down the services on success."
|
||||||
|
required: false
|
||||||
|
default: "false"
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: node20
|
using: node20
|
||||||
|
|||||||
@@ -30,15 +30,16 @@ export async function run(): Promise<void> {
|
|||||||
|
|
||||||
loggerService.debug("docker compose logs:\n" + output);
|
loggerService.debug("docker compose logs:\n" + output);
|
||||||
|
|
||||||
await dockerComposeService.down({
|
if (inputs.downOnSuccess) {
|
||||||
dockerFlags: inputs.dockerFlags,
|
await dockerComposeService.down({
|
||||||
composeFiles: inputs.composeFiles,
|
dockerFlags: inputs.dockerFlags,
|
||||||
composeFlags: inputs.composeFlags,
|
composeFiles: inputs.composeFiles,
|
||||||
cwd: inputs.cwd,
|
composeFlags: inputs.composeFlags,
|
||||||
downFlags: inputs.downFlags,
|
cwd: inputs.cwd,
|
||||||
serviceLogger: loggerService.getServiceLogger(inputs.serviceLogLevel),
|
downFlags: inputs.downFlags,
|
||||||
});
|
serviceLogger: loggerService.getServiceLogger(inputs.serviceLogLevel),
|
||||||
|
});
|
||||||
|
}
|
||||||
loggerService.info("docker compose is down");
|
loggerService.info("docker compose is down");
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
setFailed(`${error instanceof Error ? error : JSON.stringify(error)}`);
|
setFailed(`${error instanceof Error ? error : JSON.stringify(error)}`);
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export type Inputs = {
|
|||||||
composeVersion: string | null;
|
composeVersion: string | null;
|
||||||
githubToken: string | null;
|
githubToken: string | null;
|
||||||
serviceLogLevel: LogLevel;
|
serviceLogLevel: LogLevel;
|
||||||
|
downOnSuccess: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export enum InputNames {
|
export enum InputNames {
|
||||||
@@ -27,6 +28,7 @@ export enum InputNames {
|
|||||||
ComposeVersion = "compose-version",
|
ComposeVersion = "compose-version",
|
||||||
GithubToken = "github-token",
|
GithubToken = "github-token",
|
||||||
ServiceLogLevel = "services-log-level",
|
ServiceLogLevel = "services-log-level",
|
||||||
|
DownOnSuccess = "down-on-success",
|
||||||
}
|
}
|
||||||
|
|
||||||
export const COMPOSE_VERSION_LATEST = "latest";
|
export const COMPOSE_VERSION_LATEST = "latest";
|
||||||
@@ -44,6 +46,7 @@ export class InputService {
|
|||||||
composeVersion: this.getComposeVersion(),
|
composeVersion: this.getComposeVersion(),
|
||||||
githubToken: this.getGithubToken(),
|
githubToken: this.getGithubToken(),
|
||||||
serviceLogLevel: this.getServiceLogLevel(),
|
serviceLogLevel: this.getServiceLogLevel(),
|
||||||
|
downOnSuccess: this.getDownOnSuccess(),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,9 +127,15 @@ export class InputService {
|
|||||||
const configuredLevel = getInput(InputNames.ServiceLogLevel, { required: false });
|
const configuredLevel = getInput(InputNames.ServiceLogLevel, { required: false });
|
||||||
if (configuredLevel && !Object.values(LogLevel).includes(configuredLevel as LogLevel)) {
|
if (configuredLevel && !Object.values(LogLevel).includes(configuredLevel as LogLevel)) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
`Invalid service log level "${configuredLevel}". Valid values are: ${Object.values(LogLevel).join(", ")}`
|
`Invalid service log level "${configuredLevel}". Valid values are: ${Object.values(
|
||||||
|
LogLevel
|
||||||
|
).join(", ")}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return (configuredLevel as LogLevel) || LogLevel.Debug;
|
return (configuredLevel as LogLevel) || LogLevel.Debug;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private getDownOnSuccess(): boolean {
|
||||||
|
return getInput(InputNames.DownOnSuccess, { required: false }) === "true";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user