Add 'down-on-success' input to action.yml and implement conditional down in post-runner.ts
Some checks failed
Internal - Main - Continuous Integration / ci (push) Has been cancelled
Internal - Main - Continuous Integration / release (push) Has been cancelled
Need fix to Issue / main (push) Has been cancelled

This commit is contained in:
2025-08-03 03:45:16 +07:00
parent 70d1c8d63e
commit 1372c61353
3 changed files with 24 additions and 10 deletions

View File

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

View File

@@ -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)}`);

View File

@@ -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";
}
}