fix: garbage collect not implemented error

pull/437/head
Frostebite 2022-10-21 00:51:21 +01:00
parent a083fb34db
commit 16b47da97e
4 changed files with 27 additions and 4 deletions

12
dist/index.js vendored
View File

@ -2779,6 +2779,8 @@ const __1 = __nccwpck_require__(41359);
const fs_1 = __nccwpck_require__(57147); const fs_1 = __nccwpck_require__(57147);
const cloud_runner_1 = __importDefault(__nccwpck_require__(79144)); const cloud_runner_1 = __importDefault(__nccwpck_require__(79144));
const cloud_runner_system_1 = __nccwpck_require__(99393); const cloud_runner_system_1 = __nccwpck_require__(99393);
const path_1 = __importDefault(__nccwpck_require__(71017));
const cloud_runner_folders_1 = __nccwpck_require__(13527);
class LocalDockerCloudRunner { class LocalDockerCloudRunner {
listResources() { listResources() {
throw new Error('Method not implemented.'); throw new Error('Method not implemented.');
@ -2866,7 +2868,15 @@ cp -a ${sharedFolder}. /github/workspace/cloud-runner-cache/
if (cloud_runner_1.default.buildParameters.cloudRunnerDebug) { if (cloud_runner_1.default.buildParameters.cloudRunnerDebug) {
cloud_runner_logger_1.default.log(`Running local-docker: \n ${fileContents}`); cloud_runner_logger_1.default.log(`Running local-docker: \n ${fileContents}`);
} }
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${workspace} && du -sh ${workspace}`); const directories = fs_1.readdirSync(`${workspace}/cloud-runner-cache`);
for (const directory of directories) {
if (!directory.includes(cloud_runner_1.default.retainedWorkspacePrefix) ||
path_1.default.basename(directory) === cloud_runner_folders_1.CloudRunnerFolders.cacheFolder) {
yield cloud_runner_system_1.CloudRunnerSystem.Run(`rm -r ${workspace}/cloud-runner-cache/${path_1.default.basename(directory)}`);
cloud_runner_logger_1.default.log(`rm ${workspace}/cloud-runner-cache/${path_1.default.basename(directory)}`);
}
}
yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${workspace}/cloud-runner-cache && du -sh ${workspace}/cloud-runner-cache`);
yield docker_1.default.run(image, Object.assign({ workspace, actionFolder }, this.buildParameters), false, `chmod +x /github/workspace/${entrypointFilePath} && /github/workspace/${entrypointFilePath}`, content, { yield docker_1.default.run(image, Object.assign({ workspace, actionFolder }, this.buildParameters), false, `chmod +x /github/workspace/${entrypointFilePath} && /github/workspace/${entrypointFilePath}`, content, {
listeners: { listeners: {
stdout: (data) => { stdout: (data) => {

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View File

@ -22,6 +22,7 @@ class CloudRunner {
private static defaultSecrets: CloudRunnerSecret[]; private static defaultSecrets: CloudRunnerSecret[];
private static cloudRunnerEnvironmentVariables: CloudRunnerEnvironmentVariable[]; private static cloudRunnerEnvironmentVariables: CloudRunnerEnvironmentVariable[];
static lockedWorkspace: string | undefined; static lockedWorkspace: string | undefined;
static retainedWorkspacePrefix: string;
public static setup(buildParameters: BuildParameters) { public static setup(buildParameters: BuildParameters) {
CloudRunnerLogger.setup(); CloudRunnerLogger.setup();
CloudRunnerLogger.log(`Setting up cloud runner`); CloudRunnerLogger.log(`Setting up cloud runner`);

View File

@ -5,11 +5,13 @@ import { ProviderInterface } from '../provider-interface';
import CloudRunnerSecret from '../../services/cloud-runner-secret'; import CloudRunnerSecret from '../../services/cloud-runner-secret';
import Docker from '../../../docker'; import Docker from '../../../docker';
import { Action } from '../../..'; import { Action } from '../../..';
import { writeFileSync } from 'fs'; import { writeFileSync, readdirSync } from 'fs';
import CloudRunner from '../../cloud-runner'; import CloudRunner from '../../cloud-runner';
import { ProviderResource } from '../provider-resource'; import { ProviderResource } from '../provider-resource';
import { ProviderWorkflow } from '../provider-workflow'; import { ProviderWorkflow } from '../provider-workflow';
import { CloudRunnerSystem } from '../../services/cloud-runner-system'; import { CloudRunnerSystem } from '../../services/cloud-runner-system';
import path from 'path';
import { CloudRunnerFolders } from '../../services/cloud-runner-folders';
class LocalDockerCloudRunner implements ProviderInterface { class LocalDockerCloudRunner implements ProviderInterface {
public buildParameters: BuildParameters | undefined; public buildParameters: BuildParameters | undefined;
@ -118,7 +120,17 @@ cp -a ${sharedFolder}. /github/workspace/cloud-runner-cache/
if (CloudRunner.buildParameters.cloudRunnerDebug) { if (CloudRunner.buildParameters.cloudRunnerDebug) {
CloudRunnerLogger.log(`Running local-docker: \n ${fileContents}`); CloudRunnerLogger.log(`Running local-docker: \n ${fileContents}`);
} }
await CloudRunnerSystem.Run(`ls ${workspace} && du -sh ${workspace}`); const directories = readdirSync(`${workspace}/cloud-runner-cache`);
for (const directory of directories) {
if (
!directory.includes(CloudRunner.retainedWorkspacePrefix) ||
path.basename(directory) === CloudRunnerFolders.cacheFolder
) {
await CloudRunnerSystem.Run(`rm -r ${workspace}/cloud-runner-cache/${path.basename(directory)}`);
CloudRunnerLogger.log(`rm ${workspace}/cloud-runner-cache/${path.basename(directory)}`);
}
}
await CloudRunnerSystem.Run(`ls ${workspace}/cloud-runner-cache && du -sh ${workspace}/cloud-runner-cache`);
await Docker.run( await Docker.run(
image, image,
{ workspace, actionFolder, ...this.buildParameters }, { workspace, actionFolder, ...this.buildParameters },