From 8119f592ac2f1a98d7561cc8851bf4b1ea274d25 Mon Sep 17 00:00:00 2001 From: Alexey Palazhchenko Date: Mon, 18 Mar 2024 20:58:57 +0400 Subject: [PATCH 1/2] Add Docker tags for major releases --- extract-docker-tag/main.go | 13 ++++++ extract-docker-tag/main_test.go | 73 +++++++++++++++++++-------------- 2 files changed, 55 insertions(+), 31 deletions(-) diff --git a/extract-docker-tag/main.go b/extract-docker-tag/main.go index 102d0a1..7494cf8 100644 --- a/extract-docker-tag/main.go +++ b/extract-docker-tag/main.go @@ -212,19 +212,32 @@ func extract(action *githubactions.Action) (*result, error) { } if prerelease == "" { + res.developmentImages = append(res.developmentImages, fmt.Sprintf("ghcr.io/%s/%s-dev:%s", owner, name, major)) + res.productionImages = append(res.productionImages, fmt.Sprintf("ghcr.io/%s/%s:%s", owner, name, major)) + res.developmentImages = append(res.developmentImages, fmt.Sprintf("ghcr.io/%s/%s-dev:latest", owner, name)) res.productionImages = append(res.productionImages, fmt.Sprintf("ghcr.io/%s/%s:latest", owner, name)) // all-in-one only for FerretDB if name == "ferretdb" { + res.allInOneImages = append(res.allInOneImages, fmt.Sprintf("ghcr.io/%s/all-in-one:%s", owner, major)) + res.allInOneImages = append(res.allInOneImages, fmt.Sprintf("ghcr.io/%s/all-in-one:latest", owner)) // no forks, no other repos for Quay.io and Docker Hub if owner == "ferretdb" { + res.allInOneImages = append(res.allInOneImages, fmt.Sprintf("quay.io/ferretdb/all-in-one:%s", major)) + res.developmentImages = append(res.developmentImages, fmt.Sprintf("quay.io/ferretdb/ferretdb-dev:%s", major)) + res.productionImages = append(res.productionImages, fmt.Sprintf("quay.io/ferretdb/ferretdb:%s", major)) + res.allInOneImages = append(res.allInOneImages, "quay.io/ferretdb/all-in-one:latest") res.developmentImages = append(res.developmentImages, "quay.io/ferretdb/ferretdb-dev:latest") res.productionImages = append(res.productionImages, "quay.io/ferretdb/ferretdb:latest") + res.allInOneImages = append(res.allInOneImages, fmt.Sprintf("ferretdb/all-in-one:%s", major)) + res.developmentImages = append(res.developmentImages, fmt.Sprintf("ferretdb/ferretdb-dev:%s", major)) + res.productionImages = append(res.productionImages, fmt.Sprintf("ferretdb/ferretdb:%s", major)) + res.allInOneImages = append(res.allInOneImages, "ferretdb/all-in-one:latest") res.developmentImages = append(res.developmentImages, "ferretdb/ferretdb-dev:latest") res.productionImages = append(res.productionImages, "ferretdb/ferretdb:latest") diff --git a/extract-docker-tag/main_test.go b/extract-docker-tag/main_test.go index 28aaeb9..290fdbd 100644 --- a/extract-docker-tag/main_test.go +++ b/extract-docker-tag/main_test.go @@ -146,7 +146,7 @@ func TestExtractFerretDB(t *testing.T) { "GITHUB_BASE_REF": "", "GITHUB_EVENT_NAME": "push", "GITHUB_HEAD_REF": "", - "GITHUB_REF_NAME": "releases/1.2", + "GITHUB_REF_NAME": "releases/2.1", "GITHUB_REF_TYPE": "branch", "GITHUB_REPOSITORY": "FerretDB/FerretDB", }) @@ -157,14 +157,14 @@ func TestExtractFerretDB(t *testing.T) { expected := &result{ allInOneImages: []string{ - "ferretdb/all-in-one:releases-1.2", - "ghcr.io/ferretdb/all-in-one:releases-1.2", - "quay.io/ferretdb/all-in-one:releases-1.2", + "ferretdb/all-in-one:releases-2.1", + "ghcr.io/ferretdb/all-in-one:releases-2.1", + "quay.io/ferretdb/all-in-one:releases-2.1", }, developmentImages: []string{ - "ferretdb/ferretdb-dev:releases-1.2", - "ghcr.io/ferretdb/ferretdb-dev:releases-1.2", - "quay.io/ferretdb/ferretdb-dev:releases-1.2", + "ferretdb/ferretdb-dev:releases-2.1", + "ghcr.io/ferretdb/ferretdb-dev:releases-2.1", + "quay.io/ferretdb/ferretdb-dev:releases-2.1", }, } assert.Equal(t, expected, actual) @@ -175,7 +175,7 @@ func TestExtractFerretDB(t *testing.T) { "GITHUB_BASE_REF": "", "GITHUB_EVENT_NAME": "push", "GITHUB_HEAD_REF": "", - "GITHUB_REF_NAME": "v0.1.0-beta", + "GITHUB_REF_NAME": "v2.1.0-beta", "GITHUB_REF_TYPE": "tag", "GITHUB_REPOSITORY": "FerretDB/FerretDB", }) @@ -186,19 +186,19 @@ func TestExtractFerretDB(t *testing.T) { expected := &result{ allInOneImages: []string{ - "ferretdb/all-in-one:0.1.0-beta", - "ghcr.io/ferretdb/all-in-one:0.1.0-beta", - "quay.io/ferretdb/all-in-one:0.1.0-beta", + "ferretdb/all-in-one:2.1.0-beta", + "ghcr.io/ferretdb/all-in-one:2.1.0-beta", + "quay.io/ferretdb/all-in-one:2.1.0-beta", }, developmentImages: []string{ - "ferretdb/ferretdb-dev:0.1.0-beta", - "ghcr.io/ferretdb/ferretdb-dev:0.1.0-beta", - "quay.io/ferretdb/ferretdb-dev:0.1.0-beta", + "ferretdb/ferretdb-dev:2.1.0-beta", + "ghcr.io/ferretdb/ferretdb-dev:2.1.0-beta", + "quay.io/ferretdb/ferretdb-dev:2.1.0-beta", }, productionImages: []string{ - "ferretdb/ferretdb:0.1.0-beta", - "ghcr.io/ferretdb/ferretdb:0.1.0-beta", - "quay.io/ferretdb/ferretdb:0.1.0-beta", + "ferretdb/ferretdb:2.1.0-beta", + "ghcr.io/ferretdb/ferretdb:2.1.0-beta", + "quay.io/ferretdb/ferretdb:2.1.0-beta", }, } assert.Equal(t, expected, actual) @@ -209,7 +209,7 @@ func TestExtractFerretDB(t *testing.T) { "GITHUB_BASE_REF": "", "GITHUB_EVENT_NAME": "push", "GITHUB_HEAD_REF": "", - "GITHUB_REF_NAME": "v0.1.0", + "GITHUB_REF_NAME": "v2.1.0", "GITHUB_REF_TYPE": "tag", "GITHUB_REPOSITORY": "FerretDB/FerretDB", }) @@ -220,27 +220,36 @@ func TestExtractFerretDB(t *testing.T) { expected := &result{ allInOneImages: []string{ - "ferretdb/all-in-one:0.1.0", + "ferretdb/all-in-one:2", + "ferretdb/all-in-one:2.1.0", "ferretdb/all-in-one:latest", - "ghcr.io/ferretdb/all-in-one:0.1.0", + "ghcr.io/ferretdb/all-in-one:2", + "ghcr.io/ferretdb/all-in-one:2.1.0", "ghcr.io/ferretdb/all-in-one:latest", - "quay.io/ferretdb/all-in-one:0.1.0", + "quay.io/ferretdb/all-in-one:2", + "quay.io/ferretdb/all-in-one:2.1.0", "quay.io/ferretdb/all-in-one:latest", }, developmentImages: []string{ - "ferretdb/ferretdb-dev:0.1.0", + "ferretdb/ferretdb-dev:2", + "ferretdb/ferretdb-dev:2.1.0", "ferretdb/ferretdb-dev:latest", - "ghcr.io/ferretdb/ferretdb-dev:0.1.0", + "ghcr.io/ferretdb/ferretdb-dev:2", + "ghcr.io/ferretdb/ferretdb-dev:2.1.0", "ghcr.io/ferretdb/ferretdb-dev:latest", - "quay.io/ferretdb/ferretdb-dev:0.1.0", + "quay.io/ferretdb/ferretdb-dev:2", + "quay.io/ferretdb/ferretdb-dev:2.1.0", "quay.io/ferretdb/ferretdb-dev:latest", }, productionImages: []string{ - "ferretdb/ferretdb:0.1.0", + "ferretdb/ferretdb:2", + "ferretdb/ferretdb:2.1.0", "ferretdb/ferretdb:latest", - "ghcr.io/ferretdb/ferretdb:0.1.0", + "ghcr.io/ferretdb/ferretdb:2", + "ghcr.io/ferretdb/ferretdb:2.1.0", "ghcr.io/ferretdb/ferretdb:latest", - "quay.io/ferretdb/ferretdb:0.1.0", + "quay.io/ferretdb/ferretdb:2", + "quay.io/ferretdb/ferretdb:2.1.0", "quay.io/ferretdb/ferretdb:latest", }, } @@ -252,7 +261,7 @@ func TestExtractFerretDB(t *testing.T) { "GITHUB_BASE_REF": "", "GITHUB_EVENT_NAME": "push", "GITHUB_HEAD_REF": "", - "GITHUB_REF_NAME": "0.1.0", // no leading v + "GITHUB_REF_NAME": "2.1.0", // no leading v "GITHUB_REF_TYPE": "tag", "GITHUB_REPOSITORY": "FerretDB/FerretDB", }) @@ -371,7 +380,7 @@ func TestExtractOther(t *testing.T) { "GITHUB_BASE_REF": "", "GITHUB_EVENT_NAME": "push", "GITHUB_HEAD_REF": "", - "GITHUB_REF_NAME": "v0.1.0", + "GITHUB_REF_NAME": "v2.1.0", "GITHUB_REF_TYPE": "tag", "GITHUB_REPOSITORY": "FerretDB/some-repo", }) @@ -382,11 +391,13 @@ func TestExtractOther(t *testing.T) { expected := &result{ developmentImages: []string{ - "ghcr.io/ferretdb/some-repo-dev:0.1.0", + "ghcr.io/ferretdb/some-repo-dev:2", + "ghcr.io/ferretdb/some-repo-dev:2.1.0", "ghcr.io/ferretdb/some-repo-dev:latest", }, productionImages: []string{ - "ghcr.io/ferretdb/some-repo:0.1.0", + "ghcr.io/ferretdb/some-repo:2", + "ghcr.io/ferretdb/some-repo:2.1.0", "ghcr.io/ferretdb/some-repo:latest", }, } From 9b2639a1e7d104b0cce4a29144f80e593f868222 Mon Sep 17 00:00:00 2001 From: Alexey Palazhchenko Date: Mon, 18 Mar 2024 21:04:38 +0400 Subject: [PATCH 2/2] Lint --- .golangci-new.yml | 1 + extract-docker-tag/main.go | 1 + 2 files changed, 2 insertions(+) diff --git a/.golangci-new.yml b/.golangci-new.yml index 435c431..4099f50 100644 --- a/.golangci-new.yml +++ b/.golangci-new.yml @@ -93,6 +93,7 @@ linters: - nonamedreturns - nosprintfhostport - paralleltest + - perfsprint - prealloc - predeclared - promlinter diff --git a/extract-docker-tag/main.go b/extract-docker-tag/main.go index 7494cf8..65220fc 100644 --- a/extract-docker-tag/main.go +++ b/extract-docker-tag/main.go @@ -225,6 +225,7 @@ func extract(action *githubactions.Action) (*result, error) { res.allInOneImages = append(res.allInOneImages, fmt.Sprintf("ghcr.io/%s/all-in-one:latest", owner)) // no forks, no other repos for Quay.io and Docker Hub + //nolint:lll // for readibility if owner == "ferretdb" { res.allInOneImages = append(res.allInOneImages, fmt.Sprintf("quay.io/ferretdb/all-in-one:%s", major)) res.developmentImages = append(res.developmentImages, fmt.Sprintf("quay.io/ferretdb/ferretdb-dev:%s", major))