Refactor: reuse getArtifactUploaderClient in start-proxy-action

This commit is contained in:
Angela P Wen
2024-09-26 13:41:28 -07:00
parent ce99e3489b
commit 0c5c594f45
9 changed files with 62 additions and 81 deletions

33
lib/debug-artifacts.js generated
View File

@@ -30,6 +30,7 @@ exports.sanitizeArtifactName = sanitizeArtifactName;
exports.uploadCombinedSarifArtifacts = uploadCombinedSarifArtifacts;
exports.tryUploadAllAvailableDebugArtifacts = tryUploadAllAvailableDebugArtifacts;
exports.uploadDebugArtifacts = uploadDebugArtifacts;
exports.getArtifactUploaderClient = getArtifactUploaderClient;
const fs = __importStar(require("fs"));
const path = __importStar(require("path"));
const artifact = __importStar(require("@actions/artifact"));
@@ -191,21 +192,7 @@ async function uploadDebugArtifacts(logger, toUpload, rootDir, artifactName, ghV
core.info("Could not parse user-specified `matrix` input into JSON. The debug artifact will not be named with the user's `matrix` input.");
}
}
// `@actions/artifact@v2` is not yet supported on GHES so the legacy version of the client will be used on GHES
// until it is supported. We also use the legacy version of the client if the feature flag is disabled.
let artifactUploader;
if (ghVariant === util_1.GitHubVariant.GHES) {
logger.info("Uploading debug artifacts using the `@actions/artifact@v1` client because the `v2` version is not yet supported on GHES.");
artifactUploader = artifactLegacy.create();
}
else if (!(await features.getValue(feature_flags_1.Feature.ArtifactV2Upgrade))) {
logger.info("Uploading debug artifacts using the `@actions/artifact@v1` client because the value of the relevant feature flag is false. To use the `v2` version of the client, set the `CODEQL_ACTION_ARTIFACT_V2_UPGRADE` environment variable to true.");
artifactUploader = artifactLegacy.create();
}
else {
logger.info("Uploading debug artifacts using the `@actions/artifact@v2` client.");
artifactUploader = new artifact.DefaultArtifactClient();
}
const artifactUploader = await getArtifactUploaderClient(logger, ghVariant, features);
try {
await artifactUploader.uploadArtifact(sanitizeArtifactName(`${artifactName}${suffix}`), toUpload.map((file) => path.normalize(file)), path.normalize(rootDir), {
// ensure we don't keep the debug artifacts around for too long since they can be large.
@@ -217,6 +204,22 @@ async function uploadDebugArtifacts(logger, toUpload, rootDir, artifactName, ghV
core.warning(`Failed to upload debug artifacts: ${e}`);
}
}
// `@actions/artifact@v2` is not yet supported on GHES so the legacy version of the client will be used on GHES
// until it is supported. We also use the legacy version of the client if the feature flag is disabled.
async function getArtifactUploaderClient(logger, ghVariant, features) {
if (ghVariant === util_1.GitHubVariant.GHES) {
logger.info("Uploading debug artifacts using the `@actions/artifact@v1` client because the `v2` version is not yet supported on GHES.");
return artifactLegacy.create();
}
else if (!(await features.getValue(feature_flags_1.Feature.ArtifactV2Upgrade))) {
logger.info("Uploading debug artifacts using the `@actions/artifact@v1` client because the value of the relevant feature flag is false. To use the `v2` version of the client, set the `CODEQL_ACTION_ARTIFACT_V2_UPGRADE` environment variable to true.");
return artifactLegacy.create();
}
else {
logger.info("Uploading debug artifacts using the `@actions/artifact@v2` client.");
return new artifact.DefaultArtifactClient();
}
}
/**
* If a database has not been finalized, we cannot run the `codeql database bundle`
* command in the CLI because it will return an error. Instead we directly zip