mirror of
https://gitea.com/docker/metadata-action.git
synced 2024-11-24 13:09:33 +01:00
Merge pull request #467 from crazy-max/increase-short-sha-size
increase short commit hash length to 12 for uniqueness
This commit is contained in:
commit
9b90a2e882
6 changed files with 138 additions and 72 deletions
30
.github/workflows/ci.yml
vendored
30
.github/workflows/ci.yml
vendored
|
@ -549,3 +549,33 @@ jobs:
|
||||||
cwd://${{ steps.docker_meta.outputs.bake-file-labels }}
|
cwd://${{ steps.docker_meta.outputs.bake-file-labels }}
|
||||||
targets: |
|
targets: |
|
||||||
release
|
release
|
||||||
|
|
||||||
|
sha-short:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
short-length:
|
||||||
|
- ''
|
||||||
|
- 16
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
-
|
||||||
|
name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
with:
|
||||||
|
version: ${{ env.BUILDX_VERSION }}
|
||||||
|
driver: docker
|
||||||
|
-
|
||||||
|
name: Docker meta
|
||||||
|
uses: ./
|
||||||
|
with:
|
||||||
|
images: |
|
||||||
|
${{ env.DOCKER_IMAGE }}
|
||||||
|
ghcr.io/name/app
|
||||||
|
tags: |
|
||||||
|
type=sha
|
||||||
|
env:
|
||||||
|
DOCKER_METADATA_SHORT_SHA_LENGTH: ${{ matrix.short-length }}
|
||||||
|
|
30
README.md
30
README.md
|
@ -360,10 +360,11 @@ So it can be used with our [Docker Build Push action](https://github.com/docker/
|
||||||
|
|
||||||
### environment variables
|
### environment variables
|
||||||
|
|
||||||
| Name | Type | Description |
|
| Name | Type | Description |
|
||||||
|--------------------------------------|--------|------------------------------------------------------------------------------------------------------------|
|
|--------------------------------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `DOCKER_METADATA_PR_HEAD_SHA` | Bool | If `true`, set associated head SHA instead of commit SHA that triggered the workflow on pull request event |
|
| `DOCKER_METADATA_PR_HEAD_SHA` | Bool | If `true`, set associated head SHA instead of commit SHA that triggered the workflow on pull request event |
|
||||||
| `DOCKER_METADATA_ANNOTATIONS_LEVELS` | String | Comma separated list of annotations levels to set for annotations output separated (default `manifest`) |
|
| `DOCKER_METADATA_SHORT_SHA_LENGTH` | Number | Specifies the length of the [short commit SHA](#typesha) to ensure uniqueness. Default is `12`, but can be increased for larger repositories. |
|
||||||
|
| `DOCKER_METADATA_ANNOTATIONS_LEVELS` | String | Comma separated list of annotations levels to set for annotations output separated (default `manifest`) |
|
||||||
|
|
||||||
## `context` input
|
## `context` input
|
||||||
|
|
||||||
|
@ -722,7 +723,26 @@ tags: |
|
||||||
type=sha,format=long
|
type=sha,format=long
|
||||||
```
|
```
|
||||||
|
|
||||||
Output Git short commit (or long if specified) as Docker tag like `sha-ad132f5`.
|
Output Git short commit (or long if specified) as Docker tag like
|
||||||
|
`sha-860c1904a1ce`.
|
||||||
|
|
||||||
|
By default, the length of the short commit SHA is `12` characters. You can
|
||||||
|
increase this length for larger repositories by setting the
|
||||||
|
[`DOCKER_METADATA_SHORT_SHA_LENGTH` environment variable](#environment-variables):
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
-
|
||||||
|
name: Docker meta
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v5
|
||||||
|
with:
|
||||||
|
images: |
|
||||||
|
name/app
|
||||||
|
tags: |
|
||||||
|
type=sha
|
||||||
|
env:
|
||||||
|
DOCKER_METADATA_SHORT_SHA_LENGTH: 16
|
||||||
|
```
|
||||||
|
|
||||||
Extended attributes and default values:
|
Extended attributes and default values:
|
||||||
|
|
||||||
|
|
|
@ -310,14 +310,14 @@ describe('push', () => {
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'dev',
|
main: 'dev',
|
||||||
partial: ['sha-860c190'],
|
partial: ['sha-860c1904a1ce'],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:dev',
|
'org/app:dev',
|
||||||
'org/app:sha-860c190',
|
'org/app:sha-860c1904a1ce',
|
||||||
'ghcr.io/user/app:dev',
|
'ghcr.io/user/app:dev',
|
||||||
'ghcr.io/user/app:sha-860c190'
|
'ghcr.io/user/app:sha-860c1904a1ce'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
||||||
|
@ -343,14 +343,14 @@ describe('push', () => {
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'edge',
|
main: 'edge',
|
||||||
partial: ['sha-2665741'],
|
partial: ['sha-266574110acf'],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:edge',
|
'org/app:edge',
|
||||||
'org/app:sha-2665741',
|
'org/app:sha-266574110acf',
|
||||||
'ghcr.io/user/app:edge',
|
'ghcr.io/user/app:edge',
|
||||||
'ghcr.io/user/app:sha-2665741'
|
'ghcr.io/user/app:sha-266574110acf'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
||||||
|
@ -376,14 +376,14 @@ describe('push', () => {
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'edge',
|
main: 'edge',
|
||||||
partial: ['sha-860c190'],
|
partial: ['sha-860c1904a1ce'],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:edge',
|
'org/app:edge',
|
||||||
'org/app:sha-860c190',
|
'org/app:sha-860c1904a1ce',
|
||||||
'ghcr.io/user/app:edge',
|
'ghcr.io/user/app:edge',
|
||||||
'ghcr.io/user/app:sha-860c190'
|
'ghcr.io/user/app:sha-860c1904a1ce'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
||||||
|
@ -408,13 +408,13 @@ describe('push', () => {
|
||||||
],
|
],
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'sha-2665741',
|
main: 'sha-266574110acf',
|
||||||
partial: [],
|
partial: [],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:sha-2665741',
|
'org/app:sha-266574110acf',
|
||||||
'ghcr.io/user/app:sha-2665741'
|
'ghcr.io/user/app:sha-266574110acf'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
||||||
|
@ -424,7 +424,7 @@ describe('push', () => {
|
||||||
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.title=Hello-World",
|
"org.opencontainers.image.title=Hello-World",
|
||||||
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.version=sha-2665741"
|
"org.opencontainers.image.version=sha-266574110acf"
|
||||||
],
|
],
|
||||||
undefined
|
undefined
|
||||||
],
|
],
|
||||||
|
@ -439,13 +439,13 @@ describe('push', () => {
|
||||||
],
|
],
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'sha-983315b',
|
main: 'sha-983315b5e8d4',
|
||||||
partial: [],
|
partial: [],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:sha-983315b',
|
'org/app:sha-983315b5e8d4',
|
||||||
'ghcr.io/user/app:sha-983315b'
|
'ghcr.io/user/app:sha-983315b5e8d4'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
||||||
|
@ -455,7 +455,7 @@ describe('push', () => {
|
||||||
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.title=Hello-World",
|
"org.opencontainers.image.title=Hello-World",
|
||||||
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.version=sha-983315b"
|
"org.opencontainers.image.version=sha-983315b5e8d4"
|
||||||
],
|
],
|
||||||
undefined
|
undefined
|
||||||
],
|
],
|
||||||
|
@ -1341,17 +1341,17 @@ describe('tag', () => {
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: '1.0.0',
|
main: '1.0.0',
|
||||||
partial: ['1.0', 'sha-860c190'],
|
partial: ['1.0', 'sha-860c1904a1ce'],
|
||||||
latest: true
|
latest: true
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:1.0.0',
|
'org/app:1.0.0',
|
||||||
'org/app:1.0',
|
'org/app:1.0',
|
||||||
'org/app:sha-860c190',
|
'org/app:sha-860c1904a1ce',
|
||||||
'org/app:latest',
|
'org/app:latest',
|
||||||
'ghcr.io/user/app:1.0.0',
|
'ghcr.io/user/app:1.0.0',
|
||||||
'ghcr.io/user/app:1.0',
|
'ghcr.io/user/app:1.0',
|
||||||
'ghcr.io/user/app:sha-860c190',
|
'ghcr.io/user/app:sha-860c1904a1ce',
|
||||||
'ghcr.io/user/app:latest'
|
'ghcr.io/user/app:latest'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -1381,17 +1381,17 @@ describe('tag', () => {
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: '1.0.0',
|
main: '1.0.0',
|
||||||
partial: ['1.0', 'sha-860c190'],
|
partial: ['1.0', 'sha-860c1904a1ce'],
|
||||||
latest: true
|
latest: true
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:1.0.0',
|
'org/app:1.0.0',
|
||||||
'org/app:1.0',
|
'org/app:1.0',
|
||||||
'org/app:sha-860c190',
|
'org/app:sha-860c1904a1ce',
|
||||||
'org/app:latest',
|
'org/app:latest',
|
||||||
'ghcr.io/user/app:1.0.0',
|
'ghcr.io/user/app:1.0.0',
|
||||||
'ghcr.io/user/app:1.0',
|
'ghcr.io/user/app:1.0',
|
||||||
'ghcr.io/user/app:sha-860c190',
|
'ghcr.io/user/app:sha-860c1904a1ce',
|
||||||
'ghcr.io/user/app:latest'
|
'ghcr.io/user/app:latest'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -1423,17 +1423,17 @@ describe('tag', () => {
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: '1.0.0-dev',
|
main: '1.0.0-dev',
|
||||||
partial: ['1.0', 'sha-860c190-dev'],
|
partial: ['1.0', 'sha-860c1904a1ce-dev'],
|
||||||
latest: true
|
latest: true
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:1.0.0-dev',
|
'org/app:1.0.0-dev',
|
||||||
'org/app:1.0',
|
'org/app:1.0',
|
||||||
'org/app:sha-860c190-dev',
|
'org/app:sha-860c1904a1ce-dev',
|
||||||
'org/app:latest',
|
'org/app:latest',
|
||||||
'ghcr.io/user/app:1.0.0-dev',
|
'ghcr.io/user/app:1.0.0-dev',
|
||||||
'ghcr.io/user/app:1.0',
|
'ghcr.io/user/app:1.0',
|
||||||
'ghcr.io/user/app:sha-860c190-dev',
|
'ghcr.io/user/app:sha-860c1904a1ce-dev',
|
||||||
'ghcr.io/user/app:latest'
|
'ghcr.io/user/app:latest'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -1460,16 +1460,16 @@ describe('tag', () => {
|
||||||
]
|
]
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'v1.1.1-860c190-foo',
|
main: 'v1.1.1-860c1904a1ce-foo',
|
||||||
partial: [
|
partial: [
|
||||||
'master-foo'
|
'master-foo'
|
||||||
],
|
],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:v1.1.1-860c190-foo',
|
'org/app:v1.1.1-860c1904a1ce-foo',
|
||||||
'org/app:master-foo',
|
'org/app:master-foo',
|
||||||
'ghcr.io/user/app:v1.1.1-860c190-foo',
|
'ghcr.io/user/app:v1.1.1-860c1904a1ce-foo',
|
||||||
'ghcr.io/user/app:master-foo'
|
'ghcr.io/user/app:master-foo'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -1480,7 +1480,7 @@ describe('tag', () => {
|
||||||
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.title=Hello-World",
|
"org.opencontainers.image.title=Hello-World",
|
||||||
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.version=v1.1.1-860c190-foo"
|
"org.opencontainers.image.version=v1.1.1-860c1904a1ce-foo"
|
||||||
],
|
],
|
||||||
undefined
|
undefined
|
||||||
],
|
],
|
||||||
|
@ -2334,14 +2334,14 @@ describe('pr', () => {
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'pr-15',
|
main: 'pr-15',
|
||||||
partial: ['sha-a9c8c58'],
|
partial: ['sha-a9c8c5828b91'],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:pr-15',
|
'org/app:pr-15',
|
||||||
'org/app:sha-a9c8c58',
|
'org/app:sha-a9c8c5828b91',
|
||||||
'ghcr.io/user/app:pr-15',
|
'ghcr.io/user/app:pr-15',
|
||||||
'ghcr.io/user/app:sha-a9c8c58'
|
'ghcr.io/user/app:sha-a9c8c5828b91'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
||||||
|
@ -2366,14 +2366,14 @@ describe('pr', () => {
|
||||||
]
|
]
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'sha-a9c8c58',
|
main: 'sha-a9c8c5828b91',
|
||||||
partial: ['pr-15'],
|
partial: ['pr-15'],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:sha-a9c8c58',
|
'org/app:sha-a9c8c5828b91',
|
||||||
'org/app:pr-15',
|
'org/app:pr-15',
|
||||||
'ghcr.io/user/app:sha-a9c8c58',
|
'ghcr.io/user/app:sha-a9c8c5828b91',
|
||||||
'ghcr.io/user/app:pr-15'
|
'ghcr.io/user/app:pr-15'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -2384,7 +2384,7 @@ describe('pr', () => {
|
||||||
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.title=Hello-World",
|
"org.opencontainers.image.title=Hello-World",
|
||||||
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.version=sha-a9c8c58"
|
"org.opencontainers.image.version=sha-a9c8c5828b91"
|
||||||
],
|
],
|
||||||
undefined
|
undefined
|
||||||
],
|
],
|
||||||
|
@ -2467,14 +2467,14 @@ describe('pr', () => {
|
||||||
]
|
]
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'sha-2665741',
|
main: 'sha-266574110acf',
|
||||||
partial: ['pr-15'],
|
partial: ['pr-15'],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:sha-2665741',
|
'org/app:sha-266574110acf',
|
||||||
'org/app:pr-15',
|
'org/app:pr-15',
|
||||||
'ghcr.io/user/app:sha-2665741',
|
'ghcr.io/user/app:sha-266574110acf',
|
||||||
'ghcr.io/user/app:pr-15'
|
'ghcr.io/user/app:pr-15'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -2485,7 +2485,7 @@ describe('pr', () => {
|
||||||
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.title=Hello-World",
|
"org.opencontainers.image.title=Hello-World",
|
||||||
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.version=sha-2665741"
|
"org.opencontainers.image.version=sha-266574110acf"
|
||||||
],
|
],
|
||||||
undefined
|
undefined
|
||||||
],
|
],
|
||||||
|
@ -2539,14 +2539,14 @@ describe('pr', () => {
|
||||||
{
|
{
|
||||||
main: 'pr-15',
|
main: 'pr-15',
|
||||||
partial: [
|
partial: [
|
||||||
'sha-2665741',
|
'sha-266574110acf',
|
||||||
'sha-266574110acf203503badf966df2ea24b5d732d7'
|
'sha-266574110acf203503badf966df2ea24b5d732d7'
|
||||||
],
|
],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:pr-15',
|
'org/app:pr-15',
|
||||||
'org/app:sha-2665741',
|
'org/app:sha-266574110acf',
|
||||||
'org/app:sha-266574110acf203503badf966df2ea24b5d732d7'
|
'org/app:sha-266574110acf203503badf966df2ea24b5d732d7'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -2691,14 +2691,14 @@ describe('pr-head-sha', () => {
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'pr-15',
|
main: 'pr-15',
|
||||||
partial: ['sha-3370e22'],
|
partial: ['sha-3370e228f220'],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:pr-15',
|
'org/app:pr-15',
|
||||||
'org/app:sha-3370e22',
|
'org/app:sha-3370e228f220',
|
||||||
'ghcr.io/user/app:pr-15',
|
'ghcr.io/user/app:pr-15',
|
||||||
'ghcr.io/user/app:sha-3370e22'
|
'ghcr.io/user/app:sha-3370e228f220'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
||||||
|
@ -2722,14 +2722,14 @@ describe('pr-head-sha', () => {
|
||||||
]
|
]
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'sha-3370e22',
|
main: 'sha-3370e228f220',
|
||||||
partial: ['pr-15'],
|
partial: ['pr-15'],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:sha-3370e22',
|
'org/app:sha-3370e228f220',
|
||||||
'org/app:pr-15',
|
'org/app:pr-15',
|
||||||
'ghcr.io/user/app:sha-3370e22',
|
'ghcr.io/user/app:sha-3370e228f220',
|
||||||
'ghcr.io/user/app:pr-15'
|
'ghcr.io/user/app:pr-15'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -2740,7 +2740,7 @@ describe('pr-head-sha', () => {
|
||||||
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.title=Hello-World",
|
"org.opencontainers.image.title=Hello-World",
|
||||||
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.version=sha-3370e22"
|
"org.opencontainers.image.version=sha-3370e228f220"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -2820,14 +2820,14 @@ describe('pr-head-sha', () => {
|
||||||
]
|
]
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'sha-3370e22',
|
main: 'sha-3370e228f220',
|
||||||
partial: ['pr-15'],
|
partial: ['pr-15'],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:sha-3370e22',
|
'org/app:sha-3370e228f220',
|
||||||
'org/app:pr-15',
|
'org/app:pr-15',
|
||||||
'ghcr.io/user/app:sha-3370e22',
|
'ghcr.io/user/app:sha-3370e228f220',
|
||||||
'ghcr.io/user/app:pr-15'
|
'ghcr.io/user/app:pr-15'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -2838,7 +2838,7 @@ describe('pr-head-sha', () => {
|
||||||
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.title=Hello-World",
|
"org.opencontainers.image.title=Hello-World",
|
||||||
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.version=sha-3370e22"
|
"org.opencontainers.image.version=sha-3370e228f220"
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -2890,14 +2890,14 @@ describe('pr-head-sha', () => {
|
||||||
{
|
{
|
||||||
main: 'pr-15',
|
main: 'pr-15',
|
||||||
partial: [
|
partial: [
|
||||||
'sha-3370e22',
|
'sha-3370e228f220',
|
||||||
'sha-3370e228f2209994d57af4427fe64e71bb79ac96'
|
'sha-3370e228f2209994d57af4427fe64e71bb79ac96'
|
||||||
],
|
],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:pr-15',
|
'org/app:pr-15',
|
||||||
'org/app:sha-3370e22',
|
'org/app:sha-3370e228f220',
|
||||||
'org/app:sha-3370e228f2209994d57af4427fe64e71bb79ac96'
|
'org/app:sha-3370e228f2209994d57af4427fe64e71bb79ac96'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
|
@ -3121,14 +3121,14 @@ describe('schedule', () => {
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'nightly',
|
main: 'nightly',
|
||||||
partial: ['sha-860c190'],
|
partial: ['sha-860c1904a1ce'],
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:nightly',
|
'org/app:nightly',
|
||||||
'org/app:sha-860c190',
|
'org/app:sha-860c1904a1ce',
|
||||||
'ghcr.io/user/app:nightly',
|
'ghcr.io/user/app:nightly',
|
||||||
'ghcr.io/user/app:sha-860c190'
|
'ghcr.io/user/app:sha-860c1904a1ce'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
"org.opencontainers.image.created=2020-01-10T00:30:00.000Z",
|
||||||
|
@ -3154,7 +3154,7 @@ describe('schedule', () => {
|
||||||
]
|
]
|
||||||
} as Inputs,
|
} as Inputs,
|
||||||
{
|
{
|
||||||
main: 'sha-860c190',
|
main: 'sha-860c1904a1ce',
|
||||||
partial: [
|
partial: [
|
||||||
'nightly',
|
'nightly',
|
||||||
'defbranch'
|
'defbranch'
|
||||||
|
@ -3162,10 +3162,10 @@ describe('schedule', () => {
|
||||||
latest: false
|
latest: false
|
||||||
} as Version,
|
} as Version,
|
||||||
[
|
[
|
||||||
'org/app:sha-860c190',
|
'org/app:sha-860c1904a1ce',
|
||||||
'org/app:nightly',
|
'org/app:nightly',
|
||||||
'org/app:defbranch',
|
'org/app:defbranch',
|
||||||
'ghcr.io/user/app:sha-860c190',
|
'ghcr.io/user/app:sha-860c1904a1ce',
|
||||||
'ghcr.io/user/app:nightly',
|
'ghcr.io/user/app:nightly',
|
||||||
'ghcr.io/user/app:defbranch'
|
'ghcr.io/user/app:defbranch'
|
||||||
],
|
],
|
||||||
|
@ -3177,7 +3177,7 @@ describe('schedule', () => {
|
||||||
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.source=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.title=Hello-World",
|
"org.opencontainers.image.title=Hello-World",
|
||||||
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
"org.opencontainers.image.url=https://github.com/octocat/Hello-World",
|
||||||
"org.opencontainers.image.version=sha-860c190"
|
"org.opencontainers.image.version=sha-860c1904a1ce"
|
||||||
],
|
],
|
||||||
undefined
|
undefined
|
||||||
],
|
],
|
||||||
|
|
2
dist/index.js
generated
vendored
2
dist/index.js
generated
vendored
File diff suppressed because one or more lines are too long
2
dist/index.js.map
generated
vendored
2
dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
20
src/meta.ts
20
src/meta.ts
|
@ -14,6 +14,8 @@ import * as icl from './image';
|
||||||
import * as tcl from './tag';
|
import * as tcl from './tag';
|
||||||
import * as fcl from './flavor';
|
import * as fcl from './flavor';
|
||||||
|
|
||||||
|
const defaultShortShaLength = 12;
|
||||||
|
|
||||||
export interface Version {
|
export interface Version {
|
||||||
main: string | undefined;
|
main: string | undefined;
|
||||||
partial: string[];
|
partial: string[];
|
||||||
|
@ -307,7 +309,7 @@ export class Meta {
|
||||||
|
|
||||||
let val = this.context.sha;
|
let val = this.context.sha;
|
||||||
if (tag.attrs['format'] === tcl.ShaFormat.Short) {
|
if (tag.attrs['format'] === tcl.ShaFormat.Short) {
|
||||||
val = this.context.sha.substring(0, 7);
|
val = Meta.shortSha(this.context.sha);
|
||||||
}
|
}
|
||||||
|
|
||||||
const vraw = this.setValue(val, tag);
|
const vraw = this.setValue(val, tag);
|
||||||
|
@ -373,7 +375,7 @@ export class Meta {
|
||||||
return context.ref.replace(/^refs\/tags\//g, '');
|
return context.ref.replace(/^refs\/tags\//g, '');
|
||||||
},
|
},
|
||||||
sha: function () {
|
sha: function () {
|
||||||
return context.sha.substring(0, 7);
|
return Meta.shortSha(context.sha);
|
||||||
},
|
},
|
||||||
base_ref: function () {
|
base_ref: function () {
|
||||||
if (/^refs\/tags\//.test(context.ref) && context.payload?.base_ref != undefined) {
|
if (/^refs\/tags\//.test(context.ref) && context.payload?.base_ref != undefined) {
|
||||||
|
@ -593,4 +595,18 @@ export class Meta {
|
||||||
private static sanitizeTag(tag: string): string {
|
private static sanitizeTag(tag: string): string {
|
||||||
return tag.replace(/[^a-zA-Z0-9._-]+/g, '-');
|
return tag.replace(/[^a-zA-Z0-9._-]+/g, '-');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static shortSha(sha: string): string {
|
||||||
|
let shortShaLength = defaultShortShaLength;
|
||||||
|
if (process.env.DOCKER_METADATA_SHORT_SHA_LENGTH) {
|
||||||
|
if (isNaN(Number(process.env.DOCKER_METADATA_SHORT_SHA_LENGTH))) {
|
||||||
|
throw new Error(`DOCKER_METADATA_SHORT_SHA_LENGTH is not a valid number: ${process.env.DOCKER_METADATA_SHORT_SHA_LENGTH}`);
|
||||||
|
}
|
||||||
|
shortShaLength = Number(process.env.DOCKER_METADATA_SHORT_SHA_LENGTH);
|
||||||
|
}
|
||||||
|
if (shortShaLength >= sha.length) {
|
||||||
|
return sha;
|
||||||
|
}
|
||||||
|
return sha.substring(0, shortShaLength);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue