mirror of
https://github.com/docker/metadata-action.git
synced 2024-11-22 20:15:41 +01:00
Skip and display warning if tag does not match (#59)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
parent
e87dd9466c
commit
36ae18e02c
13
README.md
13
README.md
@ -437,6 +437,7 @@ a custom value through `value` attribute.
|
|||||||
| `v2.0.8-beta.67` | `v(.*)` | `1` | `2.0.8-beta.67` |
|
| `v2.0.8-beta.67` | `v(.*)` | `1` | `2.0.8-beta.67` |
|
||||||
| `v2.0.8-beta.67` | `v(\d.\d)` | `1` | `2.0` |
|
| `v2.0.8-beta.67` | `v(\d.\d)` | `1` | `2.0` |
|
||||||
| `20200110-RC2` | `\d+` | `0` | `20200110` |
|
| `20200110-RC2` | `\d+` | `0` | `20200110` |
|
||||||
|
| `p1/v1.2.3` | `p1-v(\d.\d.\d)` | `1` | `1.2.3` |
|
||||||
|
|
||||||
Extended attributes and default values:
|
Extended attributes and default values:
|
||||||
|
|
||||||
@ -470,11 +471,11 @@ tags: |
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
tags: |
|
tags: |
|
||||||
# minimal branch event
|
# branch event
|
||||||
type=ref,event=branch
|
type=ref,event=branch
|
||||||
# minimal tag event
|
# tag event
|
||||||
type=ref,event=tag
|
type=ref,event=tag
|
||||||
# minimal pull request event
|
# pull request event
|
||||||
type=ref,event=pr
|
type=ref,event=pr
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -495,11 +496,11 @@ Extended attributes and default values:
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
tags: |
|
tags: |
|
||||||
# event branch
|
# branch event
|
||||||
type=ref,enable=true,priority=600,prefix=,suffix=,event=
|
type=ref,enable=true,priority=600,prefix=,suffix=,event=
|
||||||
# event tag
|
# tag event
|
||||||
type=ref,enable=true,priority=600,prefix=,suffix=,event=
|
type=ref,enable=true,priority=600,prefix=,suffix=,event=
|
||||||
# event pr
|
# pull request event
|
||||||
type=ref,enable=true,priority=600,prefix=pr-,suffix=,event=
|
type=ref,enable=true,priority=600,prefix=pr-,suffix=,event=
|
||||||
```
|
```
|
||||||
|
|
||||||
|
23
__tests__/fixtures/event_tag_p1-v1.0.0.env
Normal file
23
__tests__/fixtures/event_tag_p1-v1.0.0.env
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
GITHUB_ACTION=crazy-maxghaction-dump-context
|
||||||
|
GITHUB_ACTIONS=true
|
||||||
|
GITHUB_ACTION_PATH=/home/runner/work/_actions/crazy-max/ghaction-dump-context/v1
|
||||||
|
GITHUB_ACTOR=crazy-max
|
||||||
|
GITHUB_API_URL=https://api.github.com
|
||||||
|
GITHUB_BASE_REF=
|
||||||
|
GITHUB_ENV=/home/runner/work/_temp/_runner_file_commands/set_env_6ee180c2-b331-434a-a867-89534cbefd83
|
||||||
|
GITHUB_EVENT_NAME=push
|
||||||
|
#GITHUB_EVENT_PATH=/home/runner/work/_temp/_github_workflow/event.json
|
||||||
|
GITHUB_GRAPHQL_URL=https://api.github.com/graphql
|
||||||
|
GITHUB_HEAD_REF=
|
||||||
|
GITHUB_JOB=event
|
||||||
|
GITHUB_PATH=/home/runner/work/_temp/_runner_file_commands/add_path_6ee180c2-b331-434a-a867-89534cbefd83
|
||||||
|
GITHUB_REF=refs/tags/p1/v1.0.0
|
||||||
|
GITHUB_REPOSITORY=crazy-max/test-docker-action
|
||||||
|
GITHUB_REPOSITORY_OWNER=crazy-max
|
||||||
|
GITHUB_RETENTION_DAYS=90
|
||||||
|
GITHUB_RUN_ID=325968230
|
||||||
|
GITHUB_RUN_NUMBER=4
|
||||||
|
GITHUB_SERVER_URL=https://github.com
|
||||||
|
GITHUB_SHA=90dd6032fac8bda1b6c4436a2e65de27961ed071
|
||||||
|
GITHUB_WORKFLOW=event
|
||||||
|
GITHUB_WORKSPACE=/home/runner/work/test-docker-action/test-docker-action
|
@ -837,24 +837,29 @@ describe('tag', () => {
|
|||||||
{
|
{
|
||||||
images: ['org/app', 'ghcr.io/user/app'],
|
images: ['org/app', 'ghcr.io/user/app'],
|
||||||
tags: [
|
tags: [
|
||||||
`type=match,"pattern=/^v(\\d.\\d.\\d)$/ig",group=1`,
|
`type=match,"pattern=v(.*)-beta.(.*)",group=1`,
|
||||||
|
`type=match,"pattern=v(.*)-beta.(.*)",group=2`,
|
||||||
]
|
]
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'v2.0.8-beta.67',
|
main: '2.0.8',
|
||||||
partial: [],
|
partial: ['67'],
|
||||||
latest: false
|
latest: true
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:v2.0.8-beta.67',
|
'org/app:2.0.8',
|
||||||
'ghcr.io/user/app:v2.0.8-beta.67'
|
'org/app:67',
|
||||||
|
'org/app:latest',
|
||||||
|
'ghcr.io/user/app:2.0.8',
|
||||||
|
'ghcr.io/user/app:67',
|
||||||
|
'ghcr.io/user/app:latest'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"org.opencontainers.image.title=Hello-World",
|
"org.opencontainers.image.title=Hello-World",
|
||||||
"org.opencontainers.image.description=This your first repo!",
|
"org.opencontainers.image.description=This your first repo!",
|
||||||
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.version=v2.0.8-beta.67",
|
"org.opencontainers.image.version=2.0.8",
|
||||||
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
||||||
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
|
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
|
||||||
"org.opencontainers.image.licenses=MIT"
|
"org.opencontainers.image.licenses=MIT"
|
||||||
@ -870,20 +875,17 @@ describe('tag', () => {
|
|||||||
]
|
]
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'sometag',
|
main: undefined,
|
||||||
partial: [],
|
partial: [],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[],
|
||||||
'org/app:sometag',
|
|
||||||
'ghcr.io/user/app:sometag'
|
|
||||||
],
|
|
||||||
[
|
[
|
||||||
"org.opencontainers.image.title=Hello-World",
|
"org.opencontainers.image.title=Hello-World",
|
||||||
"org.opencontainers.image.description=This your first repo!",
|
"org.opencontainers.image.description=This your first repo!",
|
||||||
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.version=sometag",
|
"org.opencontainers.image.version=",
|
||||||
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
||||||
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
|
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
|
||||||
"org.opencontainers.image.licenses=MIT"
|
"org.opencontainers.image.licenses=MIT"
|
||||||
@ -1089,6 +1091,84 @@ describe('tag', () => {
|
|||||||
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
|
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
|
||||||
"org.opencontainers.image.licenses=MIT"
|
"org.opencontainers.image.licenses=MIT"
|
||||||
]
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'tag17',
|
||||||
|
'event_tag_p1-v1.0.0.env',
|
||||||
|
{
|
||||||
|
images: ['org/app', 'ghcr.io/user/app'],
|
||||||
|
tags: [
|
||||||
|
`type=match,"pattern=/^v(\\d.\\d.\\d)$/ig",group=1`,
|
||||||
|
`type=match,pattern=\\d.\\d.\\d`,
|
||||||
|
`type=match,pattern=\\d.\\d`,
|
||||||
|
`type=ref,event=pr`,
|
||||||
|
`type=sha`
|
||||||
|
]
|
||||||
|
} as Inputs,
|
||||||
|
{
|
||||||
|
main: '1.0.0',
|
||||||
|
partial: ['1.0', 'sha-90dd603'],
|
||||||
|
latest: true
|
||||||
|
} as Version,
|
||||||
|
[
|
||||||
|
'org/app:1.0.0',
|
||||||
|
'org/app:1.0',
|
||||||
|
'org/app:sha-90dd603',
|
||||||
|
'org/app:latest',
|
||||||
|
'ghcr.io/user/app:1.0.0',
|
||||||
|
'ghcr.io/user/app:1.0',
|
||||||
|
'ghcr.io/user/app:sha-90dd603',
|
||||||
|
'ghcr.io/user/app:latest'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"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=1.0.0",
|
||||||
|
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
||||||
|
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
|
||||||
|
"org.opencontainers.image.licenses=MIT"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'tag18',
|
||||||
|
'event_tag_p1-v1.0.0.env',
|
||||||
|
{
|
||||||
|
images: ['org/app', 'ghcr.io/user/app'],
|
||||||
|
tags: [
|
||||||
|
`type=match,pattern=p1-v(\\d.\\d.\\d),group=1`,
|
||||||
|
`type=match,pattern=p1-v(\\d.\\d),group=1`,
|
||||||
|
`type=match,pattern=p1-v(\\d.\\d),group=3`,
|
||||||
|
`type=ref,event=pr`,
|
||||||
|
`type=sha`
|
||||||
|
]
|
||||||
|
} as Inputs,
|
||||||
|
{
|
||||||
|
main: '1.0.0',
|
||||||
|
partial: ['1.0', 'sha-90dd603'],
|
||||||
|
latest: true
|
||||||
|
} as Version,
|
||||||
|
[
|
||||||
|
'org/app:1.0.0',
|
||||||
|
'org/app:1.0',
|
||||||
|
'org/app:sha-90dd603',
|
||||||
|
'org/app:latest',
|
||||||
|
'ghcr.io/user/app:1.0.0',
|
||||||
|
'ghcr.io/user/app:1.0',
|
||||||
|
'ghcr.io/user/app:sha-90dd603',
|
||||||
|
'ghcr.io/user/app:latest'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"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=1.0.0",
|
||||||
|
"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);
|
])('given %p with %p event', tagsLabelsTest);
|
||||||
});
|
});
|
||||||
|
10
dist/index.js
generated
vendored
10
dist/index.js
generated
vendored
@ -518,10 +518,16 @@ class Meta {
|
|||||||
else {
|
else {
|
||||||
tmatch = vraw.match(tag.attrs['pattern']);
|
tmatch = vraw.match(tag.attrs['pattern']);
|
||||||
}
|
}
|
||||||
if (tmatch) {
|
if (!tmatch) {
|
||||||
|
core.warning(`${tag.attrs['pattern']} does not match ${vraw}.`);
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
if (typeof tmatch[tag.attrs['group']] === 'undefined') {
|
||||||
|
core.warning(`Group ${tag.attrs['group']} does not exist for ${tag.attrs['pattern']} pattern.`);
|
||||||
|
return version;
|
||||||
|
}
|
||||||
vraw = tmatch[tag.attrs['group']];
|
vraw = tmatch[tag.attrs['group']];
|
||||||
latest = true;
|
latest = true;
|
||||||
}
|
|
||||||
if (version.main == undefined) {
|
if (version.main == undefined) {
|
||||||
version.main = vraw;
|
version.main = vraw;
|
||||||
}
|
}
|
||||||
|
11
src/meta.ts
11
src/meta.ts
@ -180,10 +180,17 @@ export class Meta {
|
|||||||
} else {
|
} else {
|
||||||
tmatch = vraw.match(tag.attrs['pattern']);
|
tmatch = vraw.match(tag.attrs['pattern']);
|
||||||
}
|
}
|
||||||
if (tmatch) {
|
if (!tmatch) {
|
||||||
|
core.warning(`${tag.attrs['pattern']} does not match ${vraw}.`);
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
if (typeof tmatch[tag.attrs['group']] === 'undefined') {
|
||||||
|
core.warning(`Group ${tag.attrs['group']} does not exist for ${tag.attrs['pattern']} pattern.`);
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
|
||||||
vraw = tmatch[tag.attrs['group']];
|
vraw = tmatch[tag.attrs['group']];
|
||||||
latest = true;
|
latest = true;
|
||||||
}
|
|
||||||
|
|
||||||
if (version.main == undefined) {
|
if (version.main == undefined) {
|
||||||
version.main = vraw;
|
version.main = vraw;
|
||||||
|
Loading…
Reference in New Issue
Block a user