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).
|
||||
default: ${{ github.token }}
|
||||
required: false
|
||||
down-on-success:
|
||||
description: "Whether to down the services on success."
|
||||
required: false
|
||||
default: "false"
|
||||
|
||||
runs:
|
||||
using: node20
|
||||
|
||||
@@ -30,6 +30,7 @@ export async function run(): Promise<void> {
|
||||
|
||||
loggerService.debug("docker compose logs:\n" + output);
|
||||
|
||||
if (inputs.downOnSuccess) {
|
||||
await dockerComposeService.down({
|
||||
dockerFlags: inputs.dockerFlags,
|
||||
composeFiles: inputs.composeFiles,
|
||||
@@ -38,7 +39,7 @@ export async function run(): Promise<void> {
|
||||
downFlags: inputs.downFlags,
|
||||
serviceLogger: loggerService.getServiceLogger(inputs.serviceLogLevel),
|
||||
});
|
||||
|
||||
}
|
||||
loggerService.info("docker compose is down");
|
||||
} catch (error) {
|
||||
setFailed(`${error instanceof Error ? error : JSON.stringify(error)}`);
|
||||
|
||||
@@ -14,6 +14,7 @@ export type Inputs = {
|
||||
composeVersion: string | null;
|
||||
githubToken: string | null;
|
||||
serviceLogLevel: LogLevel;
|
||||
downOnSuccess: boolean;
|
||||
};
|
||||
|
||||
export enum InputNames {
|
||||
@@ -27,6 +28,7 @@ export enum InputNames {
|
||||
ComposeVersion = "compose-version",
|
||||
GithubToken = "github-token",
|
||||
ServiceLogLevel = "services-log-level",
|
||||
DownOnSuccess = "down-on-success",
|
||||
}
|
||||
|
||||
export const COMPOSE_VERSION_LATEST = "latest";
|
||||
@@ -44,6 +46,7 @@ export class InputService {
|
||||
composeVersion: this.getComposeVersion(),
|
||||
githubToken: this.getGithubToken(),
|
||||
serviceLogLevel: this.getServiceLogLevel(),
|
||||
downOnSuccess: this.getDownOnSuccess(),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -124,9 +127,15 @@ export class InputService {
|
||||
const configuredLevel = getInput(InputNames.ServiceLogLevel, { required: false });
|
||||
if (configuredLevel && !Object.values(LogLevel).includes(configuredLevel as LogLevel)) {
|
||||
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;
|
||||
}
|
||||
|
||||
private getDownOnSuccess(): boolean {
|
||||
return getInput(InputNames.DownOnSuccess, { required: false }) === "true";
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user