Skip to content

Commit

Permalink
Merge 2ceb43c into 62a33a9
Browse files Browse the repository at this point in the history
  • Loading branch information
bokuweb committed May 26, 2024
2 parents 62a33a9 + 2ceb43c commit b16bb7e
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 1 deletion.
3 changes: 3 additions & 0 deletions dist/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ inputs:
outdated-comment-action:
description: "The option to handle outdated comments. `none` by default."
required: false
retention-days:
description: "This option allows you to specify the duration for which images are stored in the branch. If not specified, the default is 30 days."
required: false
runs:
using: "node20"
main: "lib/index.js"
Expand Down
3 changes: 3 additions & 0 deletions src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ export interface Config {
reportFilePath: string | null;
commentReportFormat: 'raw' | 'summarized';
outdatedCommentAction: 'none' | 'minimize';
retentionDays: number;
}

const validateGitHubToken = (githubToken: string | undefined) => {
Expand Down Expand Up @@ -116,6 +117,7 @@ export const getConfig = (): Config => {
const matchingThreshold = getNumberInput('matching-threshold') ?? 0;
const thresholdRate = getNumberInput('threshold-rate') ?? 0;
const thresholdPixel = getNumberInput('threshold-pixel') ?? 0;
const retentionDays = getNumberInput('threshold-pixel') ?? 30;
validateMatchingThreshold(matchingThreshold);
validateThresholdRate(thresholdRate);
const targetHash = core.getInput('target-hash') || null;
Expand Down Expand Up @@ -146,5 +148,6 @@ export const getConfig = (): Config => {
reportFilePath,
commentReportFormat,
outdatedCommentAction,
retentionDays,
};
};
24 changes: 23 additions & 1 deletion src/push.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ import { log } from './logger';
import { CompareOutput } from './compare';
import { workspace } from './path';
import * as constants from './constants';
import { rejects } from 'assert';
import { backOff } from 'exponential-backoff';

export type PushImagesInput = {
Expand All @@ -54,6 +53,7 @@ export type PushImagesInput = {
branch: string;
targetDir: string;
env: EnvironmentVariables;
retentionDays: number;
// commitName?: string;
// commitEmail?: string;
};
Expand Down Expand Up @@ -197,6 +197,28 @@ export const pushImages = async (input: PushImagesInput) => {
}
}

/* delete expired directories */
try {
const retention = input.retentionDays * 24 * 60 * 60 * 1000;
const files = await fs.readdir(REPO_TEMP);
for (const fileOrDir of files) {
const p = path.join(REPO_TEMP, fileOrDir);
if ((await fs.stat(p)).isDirectory()) {
const day = fileOrDir.split('-')[0];
if (day) {
const now = new Date().getTime();
const target = new Date(day).getTime();
if (now - target > retention) {
log.info(`delete dir ${fileOrDir}`);
await fs.rmdir(p, { recursive: true });
}
}
}
}
} catch (e) {
log.error('Failed to delete directories', e);
}

const destDir = input.targetDir;

// Make sure the destination sourceDir exists
Expand Down
1 change: 1 addition & 0 deletions src/service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ export const run = async ({
env: process.env,
// commitName: undefined,
// commitEmail: undefined,
retentionDays: config.retentionDays,
});
}
}
Expand Down

0 comments on commit b16bb7e

Please sign in to comment.