Skip to content

Commit afdf30f

Browse files
authored
Merge pull request #1652 from github/henrymercer/fix-bundle-version
Fix the `bundleVersion` field set by the automated bundle update PR
2 parents 9a866ed + 55a2e70 commit afdf30f

File tree

1 file changed

+39
-41
lines changed

1 file changed

+39
-41
lines changed

.github/actions/update-bundle/index.ts

+39-41
Original file line numberDiff line numberDiff line change
@@ -13,57 +13,55 @@ interface Defaults {
1313
priorCliVersion: string;
1414
}
1515

16-
const CODEQL_BUNDLE_PREFIX = 'codeql-bundle-';
17-
1816
function getCodeQLCliVersionForRelease(release): string {
1917
// We do not currently tag CodeQL bundles based on the CLI version they contain.
2018
// Instead, we use a marker file `cli-version-<version>.txt` to record the CLI version.
2119
// This marker file is uploaded as a release asset for all new CodeQL bundles.
2220
const cliVersionsFromMarkerFiles = release.assets
23-
.map((asset) => asset.name.match(/cli-version-(.*)\.txt/)?.[1])
24-
.filter((v) => v)
25-
.map((v) => v as string);
21+
.map((asset) => asset.name.match(/cli-version-(.*)\.txt/)?.[1])
22+
.filter((v) => v)
23+
.map((v) => v as string);
2624
if (cliVersionsFromMarkerFiles.length > 1) {
2725
throw new Error(
2826
`Release ${release.tag_name} has multiple CLI version marker files.`
29-
);
30-
} else if (cliVersionsFromMarkerFiles.length === 0) {
31-
throw new Error(
32-
`Failed to find the CodeQL CLI version for release ${release.tag_name}.`
33-
);
34-
}
35-
return cliVersionsFromMarkerFiles[0];
36-
}
27+
);
28+
} else if (cliVersionsFromMarkerFiles.length === 0) {
29+
throw new Error(
30+
`Failed to find the CodeQL CLI version for release ${release.tag_name}.`
31+
);
32+
}
33+
return cliVersionsFromMarkerFiles[0];
34+
}
3735

38-
async function getBundleInfoFromRelease(release): Promise<BundleInfo> {
39-
return {
40-
bundleVersion: release.tag_name.substring(CODEQL_BUNDLE_PREFIX.length),
41-
cliVersion: getCodeQLCliVersionForRelease(release)
42-
};
43-
}
36+
async function getBundleInfoFromRelease(release): Promise<BundleInfo> {
37+
return {
38+
bundleVersion: release.tag_name,
39+
cliVersion: getCodeQLCliVersionForRelease(release)
40+
};
41+
}
4442

45-
async function getNewDefaults(currentDefaults: Defaults): Promise<Defaults> {
46-
const release = github.context.payload.release;
47-
console.log('Updating default bundle as a result of the following release: ' +
48-
`${JSON.stringify(release)}.`)
43+
async function getNewDefaults(currentDefaults: Defaults): Promise<Defaults> {
44+
const release = github.context.payload.release;
45+
console.log('Updating default bundle as a result of the following release: ' +
46+
`${JSON.stringify(release)}.`)
4947

50-
const bundleInfo = await getBundleInfoFromRelease(release);
51-
return {
52-
bundleVersion: bundleInfo.bundleVersion,
53-
cliVersion: bundleInfo.cliVersion,
54-
priorBundleVersion: currentDefaults.bundleVersion,
55-
priorCliVersion: currentDefaults.cliVersion
56-
};
57-
}
48+
const bundleInfo = await getBundleInfoFromRelease(release);
49+
return {
50+
bundleVersion: bundleInfo.bundleVersion,
51+
cliVersion: bundleInfo.cliVersion,
52+
priorBundleVersion: currentDefaults.bundleVersion,
53+
priorCliVersion: currentDefaults.cliVersion
54+
};
55+
}
5856

59-
async function main() {
60-
const previousDefaults: Defaults = JSON.parse(fs.readFileSync('../../../src/defaults.json', 'utf8'));
61-
const newDefaults = await getNewDefaults(previousDefaults);
62-
// Update the source file in the repository. Calling workflows should subsequently rebuild
63-
// the Action to update `lib/defaults.json`.
64-
fs.writeFileSync('../../../src/defaults.json', JSON.stringify(newDefaults, null, 2) + "\n");
65-
}
57+
async function main() {
58+
const previousDefaults: Defaults = JSON.parse(fs.readFileSync('../../../src/defaults.json', 'utf8'));
59+
const newDefaults = await getNewDefaults(previousDefaults);
60+
// Update the source file in the repository. Calling workflows should subsequently rebuild
61+
// the Action to update `lib/defaults.json`.
62+
fs.writeFileSync('../../../src/defaults.json', JSON.stringify(newDefaults, null, 2) + "\n");
63+
}
6664

67-
// Ideally, we'd await main() here, but that doesn't work well with `ts-node`.
68-
// So instead we rely on the fact that Node won't exit until the event loop is empty.
69-
main();
65+
// Ideally, we'd await main() here, but that doesn't work well with `ts-node`.
66+
// So instead we rely on the fact that Node won't exit until the event loop is empty.
67+
main();

0 commit comments

Comments
 (0)