From ef12c77b875eac18a532a666106146aa6a87df24 Mon Sep 17 00:00:00 2001 From: CrazyMax <1951866+crazy-max@users.noreply.github.com> Date: Tue, 1 Dec 2020 05:38:08 +0100 Subject: [PATCH] Avoid unnecessary calls to version (#21) Co-authored-by: CrazyMax --- __tests__/meta.test.ts | 2 +- dist/index.js | 16 ++++++++-------- src/main.ts | 2 +- src/meta.ts | 16 +++++++++------- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/__tests__/meta.test.ts b/__tests__/meta.test.ts index 3d58406..d465011 100644 --- a/__tests__/meta.test.ts +++ b/__tests__/meta.test.ts @@ -44,7 +44,7 @@ const tagsLabelsTest = async (envFile: string, inputs: Inputs, exVersion: Versio const repo = await github.repo(process.env.GITHUB_TOKEN || ''); const meta = new Meta({...getInputs(), ...inputs}, context, repo); - const version = meta.version(); + const version = meta.version; console.log('version', version); expect(version).toEqual(exVersion); diff --git a/dist/index.js b/dist/index.js index 8dfd39f..686da3e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -131,7 +131,7 @@ function run() { core.info(`runId: ${context.runId}`); core.endGroup(); const meta = new meta_1.Meta(inputs, context, repo); - const version = meta.version(); + const version = meta.version; core.startGroup(`Docker image version`); core.info(version.main || ''); core.endGroup(); @@ -180,8 +180,9 @@ class Meta { this.context = context; this.repo = repo; this.date = new Date(); + this.version = this.getVersion(); } - version() { + getVersion() { const currentDate = this.date; const version = { main: undefined, @@ -247,18 +248,17 @@ class Meta { return version; } tags() { - const version = this.version(); - if (!version.main) { + if (!this.version.main) { return []; } let tags = []; for (const image of this.inputs.images) { const imageLc = image.toLowerCase(); - tags.push(`${imageLc}:${version.main}`); - for (const partial of version.partial) { + tags.push(`${imageLc}:${this.version.main}`); + for (const partial of this.version.partial) { tags.push(`${imageLc}:${partial}`); } - if (version.latest) { + if (this.version.latest) { tags.push(`${imageLc}:latest`); } if (this.context.sha && this.inputs.tagSha) { @@ -274,7 +274,7 @@ class Meta { `org.opencontainers.image.description=${this.repo.description || ''}`, `org.opencontainers.image.url=${this.repo.html_url || ''}`, `org.opencontainers.image.source=${this.repo.html_url || ''}`, - `org.opencontainers.image.version=${this.version().main || ''}`, + `org.opencontainers.image.version=${this.version.main || ''}`, `org.opencontainers.image.created=${this.date.toISOString()}`, `org.opencontainers.image.revision=${this.context.sha || ''}`, `org.opencontainers.image.licenses=${((_a = this.repo.license) === null || _a === void 0 ? void 0 : _a.spdx_id) || ''}` diff --git a/src/main.ts b/src/main.ts index 16819d6..c476072 100644 --- a/src/main.ts +++ b/src/main.ts @@ -27,7 +27,7 @@ async function run() { const meta: Meta = new Meta(inputs, context, repo); - const version: Version = meta.version(); + const version: Version = meta.version; core.startGroup(`Docker image version`); core.info(version.main || ''); core.endGroup(); diff --git a/src/meta.ts b/src/meta.ts index 9683439..9f838fd 100644 --- a/src/meta.ts +++ b/src/meta.ts @@ -12,6 +12,8 @@ export interface Version { } export class Meta { + public readonly version: Version; + private readonly inputs: Inputs; private readonly context: Context; private readonly repo: ReposGetResponseData; @@ -25,9 +27,10 @@ export class Meta { this.context = context; this.repo = repo; this.date = new Date(); + this.version = this.getVersion(); } - public version(): Version { + private getVersion(): Version { const currentDate = this.date; const version: Version = { main: undefined, @@ -89,19 +92,18 @@ export class Meta { } public tags(): Array { - const version: Version = this.version(); - if (!version.main) { + if (!this.version.main) { return []; } let tags: Array = []; for (const image of this.inputs.images) { const imageLc = image.toLowerCase(); - tags.push(`${imageLc}:${version.main}`); - for (const partial of version.partial) { + tags.push(`${imageLc}:${this.version.main}`); + for (const partial of this.version.partial) { tags.push(`${imageLc}:${partial}`); } - if (version.latest) { + if (this.version.latest) { tags.push(`${imageLc}:latest`); } if (this.context.sha && this.inputs.tagSha) { @@ -117,7 +119,7 @@ export class Meta { `org.opencontainers.image.description=${this.repo.description || ''}`, `org.opencontainers.image.url=${this.repo.html_url || ''}`, `org.opencontainers.image.source=${this.repo.html_url || ''}`, - `org.opencontainers.image.version=${this.version().main || ''}`, + `org.opencontainers.image.version=${this.version.main || ''}`, `org.opencontainers.image.created=${this.date.toISOString()}`, `org.opencontainers.image.revision=${this.context.sha || ''}`, `org.opencontainers.image.licenses=${this.repo.license?.spdx_id || ''}`