@@ -2,63 +2,64 @@ import * as fs from 'fs';
22import * as github from '@actions/github' ;
33
44interface BundleInfo {
5- bundleVersion : string ;
6- cliVersion : string ;
5+ bundleVersion : string ;
6+ cliVersion : string ;
77}
88
99interface Defaults {
10- bundleVersion : string ;
11- cliVersion : string ;
12- priorBundleVersion : string ;
13- priorCliVersion : string ;
10+ bundleVersion : string ;
11+ cliVersion : string ;
12+ priorBundleVersion : string ;
13+ priorCliVersion : string ;
1414}
1515
1616const CODEQL_BUNDLE_PREFIX = 'codeql-bundle-' ;
1717
1818function getCodeQLCliVersionForRelease ( release ) : string {
19- const cliVersionsFromMarkerFiles = release . assets
20- . map ( ( asset ) => asset . name . match ( / c l i - v e r s i o n - ( .* ) \. t x t / ) ?. [ 1 ] )
21- . filter ( ( v ) => v )
22- . map ( ( v ) => v as string ) ;
23- if ( cliVersionsFromMarkerFiles . length > 1 ) {
24- throw new Error (
25- `Release ${ release . tag_name } has multiple CLI version marker files.`
19+ const cliVersionsFromMarkerFiles = release . assets
20+ . map ( ( asset ) => asset . name . match ( / c l i - v e r s i o n - ( .* ) \. t x t / ) ?. [ 1 ] )
21+ . filter ( ( v ) => v )
22+ . map ( ( v ) => v as string ) ;
23+ if ( cliVersionsFromMarkerFiles . length > 1 ) {
24+ throw new Error (
25+ `Release ${ release . tag_name } has multiple CLI version marker files.`
2626 ) ;
2727 } else if ( cliVersionsFromMarkerFiles . length === 0 ) {
2828 throw new Error (
2929 `Failed to find the CodeQL CLI version for release ${ release . tag_name } .`
30- ) ;
30+ ) ;
31+ }
32+ return cliVersionsFromMarkerFiles [ 0 ] ;
3133 }
32- return cliVersionsFromMarkerFiles [ 0 ] ;
33- }
34-
35- async function getBundleInfoFromRelease ( release ) : Promise < BundleInfo > {
36- return {
34+
35+ async function getBundleInfoFromRelease ( release ) : Promise < BundleInfo > {
36+ return {
3737 bundleVersion : release . tag_name . substring ( CODEQL_BUNDLE_PREFIX . length ) ,
3838 cliVersion : getCodeQLCliVersionForRelease ( release )
39- } ;
40- }
41-
42- async function getNewDefaults ( currentDefaults : Defaults ) : Promise < Defaults > {
43- const release = github . context . payload . release ;
44- console . log ( 'Updating default bundle as a result of the following release: ' +
45- `${ JSON . stringify ( release ) } .` )
46-
47- const bundleInfo = await getBundleInfoFromRelease ( release ) ;
48- return {
39+ } ;
40+ }
41+
42+ async function getNewDefaults ( currentDefaults : Defaults ) : Promise < Defaults > {
43+ const release = github . context . payload . release ;
44+ console . log ( 'Updating default bundle as a result of the following release: ' +
45+ `${ JSON . stringify ( release ) } .` )
46+
47+ const bundleInfo = await getBundleInfoFromRelease ( release ) ;
48+ return {
4949 bundleVersion : bundleInfo . bundleVersion ,
5050 cliVersion : bundleInfo . cliVersion ,
5151 priorBundleVersion : currentDefaults . bundleVersion ,
5252 priorCliVersion : currentDefaults . cliVersion
53- } ;
54- }
55-
56- async function main ( ) {
57- const previousDefaults : Defaults = JSON . parse ( fs . readFileSync ( '../../../src/defaults.json' , 'utf8' ) ) ;
58- const newDefaults = await getNewDefaults ( previousDefaults ) ;
59- fs . writeFileSync ( '../../../src/defaults.json' , JSON . stringify ( newDefaults , null , 2 ) + "\n" ) ;
60- }
61-
62- // Ideally, we'd await main() here, but that doesn't work well with `ts-node`.
63- // So instead we rely on the fact that Node won't exit until the event loop is empty.
64- main ( ) ;
53+ } ;
54+ }
55+
56+ async function main ( ) {
57+ const previousDefaults : Defaults = JSON . parse ( fs . readFileSync ( '../../../src/defaults.json' , 'utf8' ) ) ;
58+ const newDefaults = await getNewDefaults ( previousDefaults ) ;
59+ fs . writeFileSync ( '../../../src/defaults.json' , JSON . stringify ( newDefaults , null , 2 ) + "\n" ) ;
60+ }
61+
62+ // Ideally, we'd await main() here, but that doesn't work well with `ts-node`.
63+ // So instead we rely on the fact that Node won't exit until the event loop is empty.
64+ main ( ) ;
65+
0 commit comments