Compare commits

..

12 Commits

Author SHA1 Message Date
CrazyMax
3a3bb3a817 Merge pull request #122 from docker/dependabot/npm_and_yarn/actions/core-1.5.0
Bump @actions/core from 1.4.0 to 1.5.0
2021-08-19 21:21:19 +02:00
CrazyMax
6200091c0f Update generated content
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-08-19 21:19:13 +02:00
dependabot[bot]
d26b8cd003 Bump @actions/core from 1.4.0 to 1.5.0
Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/actions/toolkit/releases)
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: "@actions/core"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-19 19:11:48 +00:00
CrazyMax
03cec7cbca Merge pull request #121 from crazy-max/data-expr
Add global expression "date"
2021-08-19 20:05:40 +02:00
CrazyMax
e4f548552d Add global expression "date"
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-08-19 19:58:15 +02:00
CrazyMax
a67f45cb0f Merge pull request #119 from theo-brown/patch-1
Update README
2021-08-03 02:14:19 +02:00
Theo Brown
66b9054417 Update README (Issue #116)
Signed-off-by: Theo Brown <7982453+theo-brown@users.noreply.github.com>
2021-08-02 21:19:26 +01:00
CrazyMax
b127c18eb4 Merge pull request #117 from docker/dependabot/github_actions/codecov/codecov-action-2.0.1
Bump codecov/codecov-action from 1 to 2.0.1
2021-07-23 12:57:35 +02:00
CrazyMax
401bfc308e Use major
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-07-23 12:56:00 +02:00
dependabot[bot]
ad2fba2495 Bump codecov/codecov-action from 1 to 2.0.1
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 1 to 2.0.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v1...v2.0.1)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-19 19:12:26 +00:00
CrazyMax
8b842e721d Merge pull request #115 from crazy-max/edge-branch
Only return edge if branch matches
2021-07-15 00:34:54 +02:00
CrazyMax
4cb9252fa6 Only return edge if branch matches
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
2021-07-12 17:08:07 +02:00
7 changed files with 112 additions and 49 deletions

View File

@@ -29,6 +29,6 @@ jobs:
targets: test
-
name: Upload coverage
uses: codecov/codecov-action@v1
uses: codecov/codecov-action@v2
with:
file: ./coverage/clover.xml

View File

@@ -5,8 +5,8 @@
## About
GitHub Action to extract metadata (tags, labels) for Docker. This action is particularly useful if used with
[Docker Build Push](https://github.com/docker/build-push-action) action.
GitHub Action to extract metadata from Git reference and GitHub events.
This action is particularly useful if used with [Docker Build Push](https://github.com/docker/build-push-action) action to tag and label Docker images.
![Screenshot](.github/metadata-action.png)
@@ -544,11 +544,11 @@ Extended attributes and default values:
```yaml
tags: |
# branch event
type=ref,enable=true,priority=600,prefix=,suffix=,event=
type=ref,enable=true,priority=600,prefix=,suffix=,event=branch
# tag event
type=ref,enable=true,priority=600,prefix=,suffix=,event=
type=ref,enable=true,priority=600,prefix=,suffix=,event=tag
# pull request event
type=ref,enable=true,priority=600,prefix=pr-,suffix=,event=
type=ref,enable=true,priority=600,prefix=pr-,suffix=,event=pr
```
### `type=raw`
@@ -612,6 +612,7 @@ attributes are available:
| `{{branch}}` | `master` |
| `{{tag}}` | `v1.2.3` |
| `{{sha}}` | `90dd603` |
| `{{date 'YYYYMMDD'}}` | `20210326` |
```yaml
tags: |

View File

@@ -379,14 +379,12 @@ describe('push', () => {
],
} as Inputs,
{
main: 'master',
partial: ['sha-90dd603'],
main: 'sha-90dd603',
partial: [],
latest: false
} as Version,
[
'org/app:master',
'org/app:sha-90dd603',
'ghcr.io/user/app:master',
'ghcr.io/user/app:sha-90dd603'
],
[
@@ -394,7 +392,7 @@ describe('push', () => {
"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=master",
"org.opencontainers.image.version=sha-90dd603",
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses=MIT"
@@ -411,14 +409,12 @@ describe('push', () => {
],
} as Inputs,
{
main: 'my-feature-1245',
partial: ['sha-90dd603'],
main: 'sha-90dd603',
partial: [],
latest: false
} as Version,
[
'org/app:my-feature-1245',
'org/app:sha-90dd603',
'ghcr.io/user/app:my-feature-1245',
'ghcr.io/user/app:sha-90dd603'
],
[
@@ -426,7 +422,7 @@ describe('push', () => {
"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=my-feature-1245",
"org.opencontainers.image.version=sha-90dd603",
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses=MIT"
@@ -444,20 +440,17 @@ describe('push', () => {
],
} as Inputs,
{
main: 'my-feature-1245',
main: undefined,
partial: [],
latest: false
} as Version,
[
'org/app:my-feature-1245',
'ghcr.io/user/app:my-feature-1245'
],
[],
[
"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=my-feature-1245",
"org.opencontainers.image.version=",
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses=MIT"
@@ -592,16 +585,18 @@ describe('push', () => {
images: ['user/app'],
tags: [
`type=raw,value=mytag-{{branch}}`,
`type=raw,value=mytag-{{date 'YYYYMMDD'}}`,
`type=raw,value=mytag-{{tag}}`
],
} as Inputs,
{
main: 'mytag-master',
partial: ['mytag-'],
partial: ['mytag-20200110', 'mytag-'],
latest: false
} as Version,
[
'user/app:mytag-master',
'user/app:mytag-20200110',
'user/app:mytag-'
],
[
@@ -646,6 +641,37 @@ describe('push', () => {
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses=MIT"
]
],
[
'push19',
'event_push.env',
{
images: ['org/app', 'ghcr.io/user/app'],
tags: [
`type=edge,branch=master`,
`type=ref,event=branch,enable=false`,
`type=sha,format=long`
],
} as Inputs,
{
main: 'sha-90dd6032fac8bda1b6c4436a2e65de27961ed071',
partial: [],
latest: false
} as Version,
[
'org/app:sha-90dd6032fac8bda1b6c4436a2e65de27961ed071',
'ghcr.io/user/app:sha-90dd6032fac8bda1b6c4436a2e65de27961ed071'
],
[
"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=sha-90dd6032fac8bda1b6c4436a2e65de27961ed071",
"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);
});
@@ -1377,20 +1403,18 @@ describe('tag', () => {
{
images: ['org/app'],
tags: [
`type=pep440,pattern={{version}}`,
`type=pep440,pattern={{major}}.{{minor}}`,
`type=pep440,pattern={{major}}`
`type=pep440,pattern={{raw}}`,
`type=pep440,pattern={{major}}.{{minor}}`
]
} as Inputs,
{
main: '1.1.1',
partial: ['1.1', '1'],
main: 'v1.1.1',
partial: ['1.1'],
latest: true
} as Version,
[
'org/app:1.1.1',
'org/app:v1.1.1',
'org/app:1.1',
'org/app:1',
'org/app:latest'
],
[
@@ -1398,7 +1422,7 @@ describe('tag', () => {
"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.1.1",
"org.opencontainers.image.version=v1.1.1",
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
"org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071",
"org.opencontainers.image.licenses=MIT"

54
dist/index.js generated vendored
View File

@@ -629,10 +629,10 @@ class Meta {
if (tag.attrs['branch'].length == 0) {
tag.attrs['branch'] = this.repo.default_branch;
}
if (tag.attrs['branch'] === val) {
val = 'edge';
if (tag.attrs['branch'] != val) {
return version;
}
const vraw = this.setValue(val, tag);
const vraw = this.setValue('edge', tag);
return Meta.setVersion(version, vraw, this.flavor.latest == 'auto' ? false : this.flavor.latest == 'true');
}
procRaw(version, tag) {
@@ -682,6 +682,7 @@ class Meta {
}
setGlobalExp(val) {
const ctx = this.context;
const currentDate = this.date;
return handlebars.compile(val)({
branch: function () {
if (!/^refs\/heads\//.test(ctx.ref)) {
@@ -697,6 +698,9 @@ class Meta {
},
sha: function () {
return ctx.sha.substr(0, 7);
},
date: function (format) {
return moment_1.default(currentDate).utc().format(format);
}
});
}
@@ -1135,7 +1139,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
});
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;
exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;
const command_1 = __nccwpck_require__(7351);
const file_command_1 = __nccwpck_require__(717);
const utils_1 = __nccwpck_require__(5278);
@@ -1313,19 +1317,30 @@ exports.debug = debug;
/**
* Adds an error issue
* @param message error issue message. Errors will be converted to string via toString()
* @param properties optional properties to add to the annotation.
*/
function error(message) {
command_1.issue('error', message instanceof Error ? message.toString() : message);
function error(message, properties = {}) {
command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);
}
exports.error = error;
/**
* Adds an warning issue
* Adds a warning issue
* @param message warning issue message. Errors will be converted to string via toString()
* @param properties optional properties to add to the annotation.
*/
function warning(message) {
command_1.issue('warning', message instanceof Error ? message.toString() : message);
function warning(message, properties = {}) {
command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);
}
exports.warning = warning;
/**
* Adds a notice issue
* @param message notice issue message. Errors will be converted to string via toString()
* @param properties optional properties to add to the annotation.
*/
function notice(message, properties = {}) {
command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message);
}
exports.notice = notice;
/**
* Writes info to log with console.log.
* @param message info message
@@ -1459,7 +1474,7 @@ exports.issueCommand = issueCommand;
// We use any as a valid input type
/* eslint-disable @typescript-eslint/no-explicit-any */
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.toCommandValue = void 0;
exports.toCommandProperties = exports.toCommandValue = void 0;
/**
* Sanitizes an input into a string so it can be passed into issueCommand safely
* @param input input to sanitize into a string
@@ -1474,6 +1489,25 @@ function toCommandValue(input) {
return JSON.stringify(input);
}
exports.toCommandValue = toCommandValue;
/**
*
* @param annotationProperties
* @returns The command properties to send with the actual annotation command
* See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646
*/
function toCommandProperties(annotationProperties) {
if (!Object.keys(annotationProperties).length) {
return {};
}
return {
title: annotationProperties.title,
line: annotationProperties.startLine,
endLine: annotationProperties.endLine,
col: annotationProperties.startColumn,
endColumn: annotationProperties.endColumn
};
}
exports.toCommandProperties = toCommandProperties;
//# sourceMappingURL=utils.js.map
/***/ }),

View File

@@ -29,7 +29,7 @@
],
"license": "Apache-2.0",
"dependencies": {
"@actions/core": "^1.4.0",
"@actions/core": "^1.5.0",
"@actions/github": "^5.0.0",
"@renovate/pep440": "^1.0.0",
"csv-parse": "^4.16.0",

View File

@@ -265,11 +265,11 @@ export class Meta {
if (tag.attrs['branch'].length == 0) {
tag.attrs['branch'] = this.repo.default_branch;
}
if (tag.attrs['branch'] === val) {
val = 'edge';
if (tag.attrs['branch'] != val) {
return version;
}
const vraw = this.setValue(val, tag);
const vraw = this.setValue('edge', tag);
return Meta.setVersion(version, vraw, this.flavor.latest == 'auto' ? false : this.flavor.latest == 'true');
}
@@ -323,6 +323,7 @@ export class Meta {
private setGlobalExp(val): string {
const ctx = this.context;
const currentDate = this.date;
return handlebars.compile(val)({
branch: function () {
if (!/^refs\/heads\//.test(ctx.ref)) {
@@ -338,6 +339,9 @@ export class Meta {
},
sha: function () {
return ctx.sha.substr(0, 7);
},
date: function (format) {
return moment(currentDate).utc().format(format);
}
});
}

View File

@@ -2,10 +2,10 @@
# yarn lockfile v1
"@actions/core@^1.4.0":
version "1.4.0"
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.4.0.tgz#cf2e6ee317e314b03886adfeb20e448d50d6e524"
integrity sha512-CGx2ilGq5i7zSLgiiGUtBCxhRRxibJYU6Fim0Q1Wg2aQL2LTnF27zbqZOrxfvFQ55eSBW0L8uVStgtKMpa0Qlg==
"@actions/core@^1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.5.0.tgz#885b864700001a1b9a6fba247833a036e75ad9d3"
integrity sha512-eDOLH1Nq9zh+PJlYLqEMkS/jLQxhksPNmUGNBHfa4G+tQmnIhzpctxmchETtVGyBOvXgOVVpYuE40+eS4cUnwQ==
"@actions/github@^5.0.0":
version "5.0.0"