13
0
Fork 0
mirror of https://github.com/docker/metadata-action.git synced 2026-06-28 23:00:43 +00:00
This commit is contained in:
Runye Zhang 2026-05-26 16:19:33 +00:00 committed by GitHub
commit af5e2e7faa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 255 additions and 29 deletions

View file

@ -3923,6 +3923,227 @@ describe('raw', () => {
],
undefined
],
[
'raw11',
'event_push_dev.env',
{
images: ['user/app'],
tags: [
`type=raw,value=.t/'[e]-=`
],
flavor: [
`latest=false`
]
} as Inputs,
{
main: 't-e---',
partial: [],
latest: false
} as Version,
[
'user/app:t-e---'
],
[
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.description=This your first repo!",
"org.opencontainers.image.licenses=MIT",
"org.opencontainers.image.revision=860c1904a1ce19322e91ac35af1ab07466440c37",
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
"org.opencontainers.image.title=Hello-World",
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
"org.opencontainers.image.version=t-e---"
],
undefined
],
[
'raw12',
'event_push_dev.env',
{
images: ['user/app'],
tags: [
`type=raw,value=-foobar`
],
flavor: [
`latest=false`
]
} as Inputs,
{
main: 'foobar',
partial: [],
latest: false
} as Version,
[
'user/app:foobar'
],
[
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.description=This your first repo!",
"org.opencontainers.image.licenses=MIT",
"org.opencontainers.image.revision=860c1904a1ce19322e91ac35af1ab07466440c37",
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
"org.opencontainers.image.title=Hello-World",
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
"org.opencontainers.image.version=foobar"
],
undefined
],
[
'raw13',
'event_push_dev.env',
{
images: ['user/app'],
tags: [
`type=raw,value=...---foo.bar`
],
flavor: [
`latest=false`
]
} as Inputs,
{
main: 'foo.bar',
partial: [],
latest: false
} as Version,
[
'user/app:foo.bar'
],
[
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.description=This your first repo!",
"org.opencontainers.image.licenses=MIT",
"org.opencontainers.image.revision=860c1904a1ce19322e91ac35af1ab07466440c37",
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
"org.opencontainers.image.title=Hello-World",
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
"org.opencontainers.image.version=foo.bar"
],
undefined
],
[
'raw14',
'event_push_dev.env',
{
images: ['user/app'],
tags: [
`type=raw,value= `
],
flavor: [
`latest=false`
]
} as Inputs,
{
main: undefined,
partial: [],
latest: false
} as Version,
[],
[
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.description=This your first repo!",
"org.opencontainers.image.licenses=MIT",
"org.opencontainers.image.revision=860c1904a1ce19322e91ac35af1ab07466440c37",
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
"org.opencontainers.image.title=Hello-World",
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
"org.opencontainers.image.version="
],
undefined
],
[
'raw15',
'event_push_dev.env',
{
images: ['user/app'],
tags: [
`type=raw,value=.-`
],
flavor: [
`latest=false`
]
} as Inputs,
{
main: undefined,
partial: [],
latest: false
} as Version,
[],
[
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.description=This your first repo!",
"org.opencontainers.image.licenses=MIT",
"org.opencontainers.image.revision=860c1904a1ce19322e91ac35af1ab07466440c37",
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
"org.opencontainers.image.title=Hello-World",
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
"org.opencontainers.image.version="
],
undefined
],
[
'raw16',
'event_push_dev.env',
{
images: ['user/app'],
tags: [
`type=raw,value=_leading_underscore`
],
flavor: [
`latest=false`
]
} as Inputs,
{
main: '_leading_underscore',
partial: [],
latest: false
} as Version,
[
'user/app:_leading_underscore'
],
[
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.description=This your first repo!",
"org.opencontainers.image.licenses=MIT",
"org.opencontainers.image.revision=860c1904a1ce19322e91ac35af1ab07466440c37",
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
"org.opencontainers.image.title=Hello-World",
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
"org.opencontainers.image.version=_leading_underscore"
],
undefined
],
[
'raw17',
'event_push_dev.env',
{
images: ['user/app'],
tags: [
`type=raw,value=.-,priority=300`,
`type=raw,value=foobar,priority=200`
],
flavor: [
`latest=false`
]
} as Inputs,
{
main: 'foobar',
partial: [],
latest: false
} as Version,
[
'user/app:foobar'
],
[
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.description=This your first repo!",
"org.opencontainers.image.licenses=MIT",
"org.opencontainers.image.revision=860c1904a1ce19322e91ac35af1ab07466440c37",
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
"org.opencontainers.image.title=Hello-World",
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
"org.opencontainers.image.version=foobar"
],
undefined
],
])('given %o with %o event', tagsLabelsTest);
});

48
dist/index.cjs generated vendored

File diff suppressed because one or more lines are too long

6
dist/index.cjs.map generated vendored

File diff suppressed because one or more lines are too long

View file

@ -358,7 +358,12 @@ export class Meta {
if (val.length == 0) {
return version;
}
val = Meta.sanitizeTag(val);
const sanitized = Meta.sanitizeTag(val);
if (sanitized.length == 0) {
core.warning(`Skipping tag "${val}": sanitization resulted in an empty string.`);
return version;
}
val = sanitized;
if (version.main == undefined) {
version.main = val;
} else if (val !== version.main) {
@ -656,7 +661,7 @@ export class Meta {
}
private static sanitizeTag(tag: string): string {
return tag.replace(/[^a-zA-Z0-9._-]+/g, '-');
return tag.replace(/[^a-zA-Z0-9._-]+/g, '-').replace(/^[^a-zA-Z0-9_]+/, '');
}
private static shortSha(sha: string): string {