@@ -38,7 +38,7 @@ async function loadConfig(repoPath) {
3838 const definitionPath = path . resolve ( path . join ( containersPath , definitionId ) ) ;
3939
4040 // If a .deprecated file is found, remove the directory from staging and return
41- if ( await asyncUtils . exists ( path . join ( definitionPath , '.deprecated' ) ) ) {
41+ if ( await asyncUtils . exists ( path . join ( definitionPath , '.deprecated' ) ) ) {
4242 await asyncUtils . rimraf ( definitionPath ) ;
4343 return ;
4444 }
@@ -72,7 +72,7 @@ async function loadConfig(repoPath) {
7272 // Variants can be used as a VARAINT arg in tags, so support that too. However, these can
7373 // get overwritten in certain tag configs resulting in bad lookups, so **process them first**.
7474 const variants = definitionVariants ? [ '${VARIANT}' , '$VARIANT' ] . concat ( definitionVariants ) : [ undefined ] ;
75-
75+
7676 variants . forEach ( ( variant ) => {
7777 const blankTagList = getTagsForVersion ( definitionId , '' , 'ANY' , 'ANY' , variant ) ;
7878 blankTagList . forEach ( ( blankTag ) => {
@@ -109,9 +109,14 @@ function getConfig(property, defaultVal) {
109109 return process . env [ envVar ] || config [ property ] || defaultVal ;
110110}
111111
112+ async function getVersionFromManifest ( definitionId ) {
113+ return config . definitionVersions [ definitionId ]
114+ }
115+
112116// Loads manifest.json and adds it to config
113117async function loadDefinitionManifest ( manifestPath , definitionId ) {
114118 const buildJson = await jsonc . read ( manifestPath ) ;
119+ console . log ( `loading manifest for ${ definitionId } ` )
115120 if ( buildJson . variants ) {
116121 config . definitionVariants [ definitionId ] = buildJson . variants ;
117122 }
@@ -122,6 +127,8 @@ async function loadDefinitionManifest(manifestPath, definitionId) {
122127 config . definitionDependencies [ definitionId ] = buildJson . dependencies ;
123128 }
124129 if ( buildJson . version ) {
130+ console . log ( `version is ${ buildJson . version } ` )
131+
125132 config . definitionVersions [ definitionId ] = buildJson . version ;
126133 }
127134}
@@ -184,7 +191,7 @@ function getTagsForVersion(definitionId, version, registry, registryPath, varian
184191 // If the image states that only versioned tags are returned and the version is 'dev',
185192 // add the image name to ensure that we do not incorrectly hijack a tag from another image.
186193 if ( version === 'dev' ) {
187- version = config . definitionBuildSettings [ definitionId ] . versionedTagsOnly ? `dev-${ definitionId . replace ( / - / mg, '' ) } ` : 'dev' ;
194+ version = config . definitionBuildSettings [ definitionId ] . versionedTagsOnly ? `dev-${ definitionId . replace ( / - / mg, '' ) } ` : 'dev' ;
188195 }
189196
190197
@@ -252,18 +259,18 @@ function getTagList(definitionId, release, versionPartHandling, registry, regist
252259 }
253260
254261 let versionList , updateUnversionedTags , updateLatest ;
255- switch ( versionPartHandling ) {
262+ switch ( versionPartHandling ) {
256263 case true :
257264 case 'all-latest' :
258- updateLatest = true ;
265+ updateLatest = true ;
259266 updateUnversionedTags = true ;
260- versionList = [ version , `${ versionParts [ 0 ] } .${ versionParts [ 1 ] } ` , `${ versionParts [ 0 ] } ` ] ;
267+ versionList = [ version , `${ versionParts [ 0 ] } .${ versionParts [ 1 ] } ` , `${ versionParts [ 0 ] } ` ] ;
261268 break ;
262269 case false :
263270 case 'all' :
264271 updateLatest = false ;
265272 updateUnversionedTags = true ;
266- versionList = [ version , `${ versionParts [ 0 ] } .${ versionParts [ 1 ] } ` , `${ versionParts [ 0 ] } ` ] ;
273+ versionList = [ version , `${ versionParts [ 0 ] } .${ versionParts [ 1 ] } ` , `${ versionParts [ 0 ] } ` ] ;
267274 break ;
268275 case 'full-only' :
269276 updateLatest = false ;
@@ -278,16 +285,16 @@ function getTagList(definitionId, release, versionPartHandling, registry, regist
278285 case 'major' :
279286 updateLatest = false ;
280287 updateUnversionedTags = false ;
281- versionList = [ `${ versionParts [ 0 ] } ` ] ;
288+ versionList = [ `${ versionParts [ 0 ] } ` ] ;
282289 break ;
283290 }
284291
285292 // Normally, we also want to return a tag without a version number, but for
286293 // some definitions that exist in the same repository as others, we may
287294 // only want to return a list of tags with part of the version number in it
288- if ( updateUnversionedTags && ! config . definitionBuildSettings [ definitionId ] . versionedTagsOnly ) {
295+ if ( updateUnversionedTags && ! config . definitionBuildSettings [ definitionId ] . versionedTagsOnly ) {
289296 // This is the equivalent of latest for qualified tags- e.g. python:3 instead of python:0.35.0-3
290- versionList . push ( '' ) ;
297+ versionList . push ( '' ) ;
291298 }
292299
293300 const allVariants = getVariants ( definitionId ) ;
@@ -301,10 +308,10 @@ function getTagList(definitionId, release, versionPartHandling, registry, regist
301308 // If this variant should also be used for the the latest tag, add it. The "latest" value could be
302309 // true, false, or a specific variant. "true" assumes the first variant is the latest.
303310 const definitionLatestProperty = config . definitionBuildSettings [ definitionId ] . latest ;
304- return tagList . concat ( ( updateLatest
311+ return tagList . concat ( ( updateLatest
305312 && definitionLatestProperty
306313 && ( ! allVariants
307- || variant === definitionLatestProperty
314+ || variant === definitionLatestProperty
308315 || ( definitionLatestProperty === true && variant === firstVariant ) ) )
309316 ? getLatestTag ( definitionId , registry , registryPath )
310317 : [ ] ) ;
@@ -513,7 +520,7 @@ function getDefinitionList() {
513520function createMultiParentBucket ( variantParentMap , parentBuckets , dupeBuckets ) {
514521 // Get parent of first variant
515522 const parentId = variantParentMap [ Object . keys ( variantParentMap ) [ 0 ] ] ;
516- const firstParentBucket = parentBuckets [ parentId ] || [ parentId ] ;
523+ const firstParentBucket = parentBuckets [ parentId ] || [ parentId ] ;
517524 // Merge other parent buckets into the first parent
518525 for ( let currentVariant in variantParentMap ) {
519526 const currentParentId = variantParentMap [ currentVariant ] ;
@@ -522,11 +529,11 @@ function createMultiParentBucket(variantParentMap, parentBuckets, dupeBuckets) {
522529 // Merge buckets if not already merged
523530 if ( currentParentBucket && dupeBuckets . indexOf ( currentParentId ) < 0 ) {
524531 currentParentBucket . forEach ( ( current ) => firstParentBucket . push ( current ) ) ;
525- } else if ( firstParentBucket . indexOf ( currentParentId ) < 0 ) {
532+ } else if ( firstParentBucket . indexOf ( currentParentId ) < 0 ) {
526533 firstParentBucket . push ( currentParentId ) ;
527534 }
528535 dupeBuckets . push ( currentParentId ) ;
529- parentBuckets [ currentParentId ] = firstParentBucket ;
536+ parentBuckets [ currentParentId ] = firstParentBucket ;
530537 }
531538 }
532539 parentBuckets [ parentId ] = firstParentBucket ;
@@ -557,27 +564,27 @@ function bucketDefinition(definitionId, parentId, parentBuckets) {
557564function getParentTagForVersion ( definitionId , version , registry , registryPath , variant ) {
558565 let parentId = config . definitionBuildSettings [ definitionId ] . parent ;
559566 if ( parentId ) {
560- if ( typeof parentId !== 'string' ) {
567+ if ( typeof parentId !== 'string' ) {
561568 // Use variant to figure out correct parent, or return first parent if child has no variant
562569 parentId = variant ? parentId [ variant ] : parentId [ Object . keys ( parentId ) [ 0 ] ] ;
563570 }
564-
571+
565572 // Determine right parent variant to use (assuming there are variants)
566573 const parentVariantList = getVariants ( parentId ) ;
567574 let parentVariantId ;
568- if ( parentVariantList ) {
575+ if ( parentVariantList ) {
569576 // If a variant is specified in the parentVariant property in build, use it - otherwise default to the child image's variant
570577 let parentVariant = config . definitionBuildSettings [ definitionId ] . parentVariant || variant ;
571- if ( typeof parentVariant !== 'string' ) {
578+ if ( typeof parentVariant !== 'string' ) {
572579 // Use variant to figure out correct variant it not the same across all parents, or return first variant if child has no variant
573580 parentVariant = variant ? parentVariant [ variant ] : parentVariant [ Object . keys ( parentId ) [ 0 ] ] ;
574581 }
575582 parentVariantId = config . definitionBuildSettings [ definitionId ] . idMismatch === "true" && variant . includes ( '-' ) ? variant . split ( '-' ) [ 1 ] : variant ;
576- if ( ! parentVariantList . includes ( parentVariantId ) ) {
583+ if ( ! parentVariantList . includes ( parentVariantId ) ) {
577584 throw `Unable to determine variant for parent. Variant ${ parentVariantId } is not in ${ parentId } list: ${ parentVariantList } ` ;
578585 }
579586 }
580-
587+
581588 // Parent image version may be different than child's
582589 const parentVersion = getVersionFromRelease ( version , parentId ) ;
583590 return getTagsForVersion ( parentId , parentVersion , registry , registryPath , parentVariantId ) [ 0 ] ;
@@ -628,7 +635,7 @@ function getDefinitionFromTag(tag, registry, registryPath) {
628635 }
629636
630637 // If lookup fails, try removing a numeric first part - dev- is already handled
631- return definitionTagLookup [ `ANY/ANY/${ repo } :${ tagPart . replace ( / ^ \d + - / , '' ) } ` ] ;
638+ return definitionTagLookup [ `ANY/ANY/${ repo } :${ tagPart . replace ( / ^ \d + - / , '' ) } ` ] ;
632639}
633640
634641// Return just the major version of a release number
@@ -665,7 +672,7 @@ function getPoolKeyForPoolUrl(poolUrl) {
665672
666673function getFallbackPoolUrl ( package ) {
667674 const poolUrl = config . poolUrlFallback [ package ] ;
668- console . log ( `(*) Fallback pool URL for ${ package } is ${ poolUrl } ` ) ;
675+ console . log ( `(*) Fallback pool URL for ${ package } is ${ poolUrl } ` ) ;
669676 return poolUrl ;
670677}
671678
@@ -679,7 +686,7 @@ async function getStagingFolder(release) {
679686 path . resolve ( __dirname , '..' , '..' , '..' ) ,
680687 getConfig ( 'filesToStage' ) ,
681688 stagingFolder ) ;
682-
689+
683690 stagingFolders [ release ] = stagingFolder ;
684691 return stagingFolders [ release ] ;
685692}
@@ -691,7 +698,7 @@ function shouldFlattenDefinitionBaseImage(definitionId) {
691698function getDefaultDependencies ( dependencyType ) {
692699 const packageManagerConfig = getConfig ( 'commonDependencies' ) ;
693700 return packageManagerConfig ? packageManagerConfig [ dependencyType ] : null ;
694- }
701+ }
695702
696703function getBuildSettings ( definitionId ) {
697704 return config . definitionBuildSettings [ definitionId ] ;
@@ -721,5 +728,6 @@ module.exports = {
721728 getPoolKeyForPoolUrl : getPoolKeyForPoolUrl ,
722729 getConfig : getConfig ,
723730 shouldFlattenDefinitionBaseImage : shouldFlattenDefinitionBaseImage ,
724- getDefinitionList : getDefinitionList
731+ getDefinitionList : getDefinitionList ,
732+ getVersionFromManifest
725733} ;
0 commit comments