diff --git a/__tests__/meta.test.ts b/__tests__/meta.test.ts index 4428db20..2439173a 100644 --- a/__tests__/meta.test.ts +++ b/__tests__/meta.test.ts @@ -1578,6 +1578,72 @@ describe('pr', () => { "org.opencontainers.image.licenses=MIT" ] ], + [ + 'pr05', + 'event_pull_request.env', + { + images: ['org/app', 'ghcr.io/user/app'], + tags: [ + `type=ref,event=pr` + ], + flavor: [ + `prefix=glo-`, + `suffix=-bal` + ] + } as Inputs, + { + main: 'pr-2-bal', + partial: [], + latest: false + } as Version, + [ + 'org/app:pr-2-bal', + 'ghcr.io/user/app:pr-2-bal' + ], + [ + "org.opencontainers.image.title=Hello-World", + "org.opencontainers.image.description=This your first repo!", + "org.opencontainers.image.url=https://github.com/octocat/Hello-World", + "org.opencontainers.image.source=https://github.com/octocat/Hello-World", + "org.opencontainers.image.version=pr-2-bal", + "org.opencontainers.image.created=2020-01-10T00:30:00.000Z", + "org.opencontainers.image.revision=1e9249f05bfc090e0688b8fb9c1b347586add504", + "org.opencontainers.image.licenses=MIT" + ] + ], + [ + 'pr06', + 'event_pull_request.env', + { + images: ['org/app', 'ghcr.io/user/app'], + tags: [ + `type=ref,event=pr,prefix=` + ], + flavor: [ + `prefix=glo-`, + `suffix=-bal` + ] + } as Inputs, + { + main: 'glo-2-bal', + partial: [], + latest: false + } as Version, + [ + 'org/app:glo-2-bal', + 'ghcr.io/user/app:glo-2-bal' + ], + [ + "org.opencontainers.image.title=Hello-World", + "org.opencontainers.image.description=This your first repo!", + "org.opencontainers.image.url=https://github.com/octocat/Hello-World", + "org.opencontainers.image.source=https://github.com/octocat/Hello-World", + "org.opencontainers.image.version=glo-2-bal", + "org.opencontainers.image.created=2020-01-10T00:30:00.000Z", + "org.opencontainers.image.revision=1e9249f05bfc090e0688b8fb9c1b347586add504", + "org.opencontainers.image.licenses=MIT" + ] + ] ])('given %p with %p event', tagsLabelsTest); }); @@ -1758,6 +1824,39 @@ describe('schedule', () => { "org.opencontainers.image.licenses=MIT" ] ], + [ + 'schedule07', + 'event_schedule.env', + { + images: ['org/app', 'ghcr.io/user/app'], + tags: [ + `type=schedule`, + ], + flavor: [ + `prefix=glo-`, + `suffix=-bal` + ] + } as Inputs, + { + main: 'glo-nightly-bal', + partial: [], + latest: false + } as Version, + [ + 'org/app:glo-nightly-bal', + 'ghcr.io/user/app:glo-nightly-bal' + ], + [ + "org.opencontainers.image.title=Hello-World", + "org.opencontainers.image.description=This your first repo!", + "org.opencontainers.image.url=https://github.com/octocat/Hello-World", + "org.opencontainers.image.source=https://github.com/octocat/Hello-World", + "org.opencontainers.image.version=glo-nightly-bal", + "org.opencontainers.image.created=2020-01-10T00:30:00.000Z", + "org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071", + "org.opencontainers.image.licenses=MIT" + ] + ], ])('given %p with %p event', tagsLabelsTest); }); diff --git a/dist/index.js b/dist/index.js index f6bc0ac5..da2f1b0e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -439,11 +439,11 @@ class Meta { return version; } const currentDate = this.date; - const vraw = handlebars.compile(tag.attrs['pattern'])({ + const vraw = this.setFlavor(handlebars.compile(tag.attrs['pattern'])({ date: function (format) { return moment_1.default(currentDate).utc().format(format); } - }); + }), tag); if (version.main == undefined) { version.main = vraw; } @@ -475,24 +475,18 @@ class Meta { includePrerelease: true }); if (semver.prerelease(vraw)) { - vraw = handlebars.compile('{{version}}')(sver); - if (version.main == undefined) { - version.main = vraw; - } - else if (vraw !== version.main) { - version.partial.push(vraw); - } + vraw = this.setFlavor(handlebars.compile('{{version}}')(sver), tag); } else { - vraw = handlebars.compile(tag.attrs['pattern'])(sver); - if (version.main == undefined) { - version.main = vraw; - } - else if (vraw !== version.main) { - version.partial.push(vraw); - } + vraw = this.setFlavor(handlebars.compile(tag.attrs['pattern'])(sver), tag); latest = true; } + if (version.main == undefined) { + version.main = vraw; + } + else if (vraw !== version.main) { + version.partial.push(vraw); + } if (version.latest == undefined) { version.latest = this.flavor.latest == 'auto' ? latest : this.flavor.latest == 'true'; } @@ -526,7 +520,7 @@ class Meta { core.warning(`Group ${tag.attrs['group']} does not exist for ${tag.attrs['pattern']} pattern.`); return version; } - vraw = tmatch[tag.attrs['group']]; + vraw = this.setFlavor(tmatch[tag.attrs['group']], tag); latest = true; if (version.main == undefined) { version.main = vraw; diff --git a/src/meta.ts b/src/meta.ts index 8a2189ed..ca6b633e 100644 --- a/src/meta.ts +++ b/src/meta.ts @@ -99,11 +99,14 @@ export class Meta { } const currentDate = this.date; - const vraw = handlebars.compile(tag.attrs['pattern'])({ - date: function (format) { - return moment(currentDate).utc().format(format); - } - }); + const vraw = this.setFlavor( + handlebars.compile(tag.attrs['pattern'])({ + date: function (format) { + return moment(currentDate).utc().format(format); + } + }), + tag + ); if (version.main == undefined) { version.main = vraw; @@ -138,21 +141,16 @@ export class Meta { includePrerelease: true }); if (semver.prerelease(vraw)) { - vraw = handlebars.compile('{{version}}')(sver); - if (version.main == undefined) { - version.main = vraw; - } else if (vraw !== version.main) { - version.partial.push(vraw); - } + vraw = this.setFlavor(handlebars.compile('{{version}}')(sver), tag); } else { - vraw = handlebars.compile(tag.attrs['pattern'])(sver); - if (version.main == undefined) { - version.main = vraw; - } else if (vraw !== version.main) { - version.partial.push(vraw); - } + vraw = this.setFlavor(handlebars.compile(tag.attrs['pattern'])(sver), tag); latest = true; } + if (version.main == undefined) { + version.main = vraw; + } else if (vraw !== version.main) { + version.partial.push(vraw); + } if (version.latest == undefined) { version.latest = this.flavor.latest == 'auto' ? latest : this.flavor.latest == 'true'; } @@ -189,7 +187,7 @@ export class Meta { return version; } - vraw = tmatch[tag.attrs['group']]; + vraw = this.setFlavor(tmatch[tag.attrs['group']], tag); latest = true; if (version.main == undefined) {