From 4c2760ba7ab462bd4185726f458cdd7377c7a7e5 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Tue, 1 Dec 2020 05:50:39 +0100 Subject: [PATCH] Warn on invalid semver (#22) Co-authored-by: CrazyMax --- .github/workflows/ci.yml | 6 ++++-- __tests__/meta.test.ts | 26 ++++++++++++++++++++++++++ dist/index.js | 4 ++++ src/meta.ts | 4 ++++ 4 files changed, 38 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b0b2115..e886b69 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -83,9 +83,11 @@ jobs: tag-semver: runs-on: ubuntu-latest steps: - - name: Checkout + - + name: Checkout uses: actions/checkout@v2 - - name: Docker meta + - + name: Docker meta uses: ./ with: images: | diff --git a/__tests__/meta.test.ts b/__tests__/meta.test.ts index d465011..dfe08ad 100644 --- a/__tests__/meta.test.ts +++ b/__tests__/meta.test.ts @@ -737,6 +737,32 @@ describe('push tag', () => { "org.opencontainers.image.licenses=MIT" ] ], + [ + 'event_tag_sometag.env', + { + images: ['ghcr.io/user/app'], + tagSemver: ['{{version}}', '{{major}}.{{minor}}', '{{major}}'], + } as Inputs, + { + main: 'sometag', + partial: [], + latest: true + } as Version, + [ + 'ghcr.io/user/app:sometag', + '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=sometag", + "org.opencontainers.image.created=2020-01-10T00:30:00.000Z", + "org.opencontainers.image.revision=90dd6032fac8bda1b6c4436a2e65de27961ed071", + "org.opencontainers.image.licenses=MIT" + ] + ], ])('given %p event ', tagsLabelsTest); }); diff --git a/dist/index.js b/dist/index.js index 686da3e..85e11d3 100644 --- a/dist/index.js +++ b/dist/index.js @@ -171,6 +171,7 @@ exports.Meta = void 0; const handlebars = __webpack_require__(7492); const moment = __webpack_require__(9623); const semver = __webpack_require__(1383); +const core = __webpack_require__(2186); class Meta { constructor(inputs, context, repo) { this.inputs = inputs; @@ -198,6 +199,9 @@ class Meta { } else if (/^refs\/tags\//.test(this.context.ref)) { version.main = this.context.ref.replace(/^refs\/tags\//g, '').replace(/\//g, '-'); + if (this.inputs.tagSemver.length > 0 && !semver.valid(version.main)) { + core.warning(`${version.main} is not a valid semver. More info: https://semver.org/`); + } if (this.inputs.tagSemver.length > 0 && semver.valid(version.main)) { const sver = semver.parse(version.main, { includePrerelease: true diff --git a/src/meta.ts b/src/meta.ts index 9f838fd..f8ee02a 100644 --- a/src/meta.ts +++ b/src/meta.ts @@ -2,6 +2,7 @@ import * as handlebars from 'handlebars'; import * as moment from 'moment'; import * as semver from 'semver'; import {Inputs} from './context'; +import * as core from '@actions/core'; import {Context} from '@actions/github/lib/context'; import {ReposGetResponseData} from '@octokit/types'; @@ -46,6 +47,9 @@ export class Meta { }); } else if (/^refs\/tags\//.test(this.context.ref)) { version.main = this.context.ref.replace(/^refs\/tags\//g, '').replace(/\//g, '-'); + if (this.inputs.tagSemver.length > 0 && !semver.valid(version.main)) { + core.warning(`${version.main} is not a valid semver. More info: https://semver.org/`); + } if (this.inputs.tagSemver.length > 0 && semver.valid(version.main)) { const sver = semver.parse(version.main, { includePrerelease: true