0
Fork 0
mirror of https://github.com/project-zot/zot.git synced 2025-02-03 23:09:41 -05:00

build: add commit hash to Config at build for proper discovery readme (#854)

* build: add commit hash to Config at build for proper discovery readme link

* fix: use tag instead of commit hash, add to release build

Signed-off-by: Catalin Hofnar <catalin.hofnar@gmail.com>
This commit is contained in:
Catalin Hofnar 2022-10-11 19:01:59 +03:00 committed by GitHub
parent 4bc7a2c824
commit f3b1913fbd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 12 additions and 6 deletions

View file

@ -153,6 +153,7 @@ jobs:
with: with:
file: 'stacker.yaml' file: 'stacker.yaml'
build-args: | build-args: |
RELEASE_TAG=${{ github.event.release.tag_name }}
COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }} COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }}
OS=${{ matrix.os }} OS=${{ matrix.os }}
ARCH=${{ matrix.arch }} ARCH=${{ matrix.arch }}
@ -198,6 +199,7 @@ jobs:
with: with:
file: 'stacker.yaml' file: 'stacker.yaml'
build-args: | build-args: |
RELEASE_TAG=${{ github.event.release.tag_name }}
COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }} COMMIT=${{ github.event.release.tag_name }}-${{ github.sha }}
OS=${{ matrix.os }} OS=${{ matrix.os }}
ARCH=${{ matrix.arch }} ARCH=${{ matrix.arch }}

View file

@ -1,6 +1,7 @@
export GO111MODULE=on export GO111MODULE=on
TOP_LEVEL=$(shell git rev-parse --show-toplevel) TOP_LEVEL=$(shell git rev-parse --show-toplevel)
COMMIT_HASH=$(shell git describe --always --tags --long) COMMIT_HASH=$(shell git describe --always --tags --long)
RELEASE_TAG=$(shell git describe --tags --abbrev=0)
GO_VERSION=$(shell go version | awk '{print $$3}') GO_VERSION=$(shell go version | awk '{print $$3}')
COMMIT ?= $(if $(shell git status --porcelain --untracked-files=no),$(COMMIT_HASH)-dirty,$(COMMIT_HASH)) COMMIT ?= $(if $(shell git status --porcelain --untracked-files=no),$(COMMIT_HASH)-dirty,$(COMMIT_HASH))
CONTAINER_RUNTIME := $(shell command -v podman 2> /dev/null || echo docker) CONTAINER_RUNTIME := $(shell command -v podman 2> /dev/null || echo docker)
@ -47,15 +48,15 @@ build-metadata:
.PHONY: binary-minimal .PHONY: binary-minimal
binary-minimal: EXTENSIONS=minimal # tag doesn't exist, but we need it to overwrite default value and indicate that we have no extension in build-metadata binary-minimal: EXTENSIONS=minimal # tag doesn't exist, but we need it to overwrite default value and indicate that we have no extension in build-metadata
binary-minimal: modcheck build-metadata binary-minimal: modcheck build-metadata
env CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zot-$(OS)-$(ARCH)-minimal -buildmode=pie -tags containers_image_openpgp -v -trimpath -ldflags "-X zotregistry.io/zot/pkg/api/config.Commit=${COMMIT} -X zotregistry.io/zot/pkg/api/config.BinaryType=minimal -X zotregistry.io/zot/pkg/api/config.GoVersion=${GO_VERSION} -s -w" ./cmd/zot env CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zot-$(OS)-$(ARCH)-minimal -buildmode=pie -tags containers_image_openpgp -v -trimpath -ldflags "-X zotregistry.io/zot/pkg/api/config.ReleaseTag=${RELEASE_TAG} -X zotregistry.io/zot/pkg/api/config.Commit=${COMMIT} -X zotregistry.io/zot/pkg/api/config.BinaryType=minimal -X zotregistry.io/zot/pkg/api/config.GoVersion=${GO_VERSION} -s -w" ./cmd/zot
.PHONY: binary .PHONY: binary
binary: modcheck create-name build-metadata binary: modcheck create-name build-metadata
env CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zot-$(OS)-$(ARCH) -buildmode=pie -tags $(EXTENSIONS),containers_image_openpgp -v -trimpath -ldflags "-X zotregistry.io/zot/pkg/api/config.Commit=${COMMIT} -X zotregistry.io/zot/pkg/api/config.BinaryType=$(extended-name) -X zotregistry.io/zot/pkg/api/config.GoVersion=${GO_VERSION} -s -w" ./cmd/zot env CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zot-$(OS)-$(ARCH) -buildmode=pie -tags $(EXTENSIONS),containers_image_openpgp -v -trimpath -ldflags "-X zotregistry.io/zot/pkg/api/config.ReleaseTag=${RELEASE_TAG} -X zotregistry.io/zot/pkg/api/config.Commit=${COMMIT} -X zotregistry.io/zot/pkg/api/config.BinaryType=$(extended-name) -X zotregistry.io/zot/pkg/api/config.GoVersion=${GO_VERSION} -s -w" ./cmd/zot
.PHONY: binary-debug .PHONY: binary-debug
binary-debug: modcheck swagger create-name build-metadata binary-debug: modcheck swagger create-name build-metadata
env CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zot-$(OS)-$(ARCH)-debug -buildmode=pie -tags $(EXTENSIONS),debug,containers_image_openpgp -v -gcflags all='-N -l' -ldflags "-X zotregistry.io/zot/pkg/api/config.Commit=${COMMIT} -X zotregistry.io/zot/pkg/api/config.BinaryType=$(extended-name) -X zotregistry.io/zot/pkg/api/config.GoVersion=${GO_VERSION}" ./cmd/zot env CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -o bin/zot-$(OS)-$(ARCH)-debug -buildmode=pie -tags $(EXTENSIONS),debug,containers_image_openpgp -v -gcflags all='-N -l' -ldflags "-X zotregistry.io/zot/pkg/api/config.ReleaseTag=${RELEASE_TAG} -X zotregistry.io/zot/pkg/api/config.Commit=${COMMIT} -X zotregistry.io/zot/pkg/api/config.BinaryType=$(extended-name) -X zotregistry.io/zot/pkg/api/config.GoVersion=${GO_VERSION}" ./cmd/zot
.PHONY: cli .PHONY: cli
cli: modcheck create-name build-metadata cli: modcheck create-name build-metadata

View file

@ -14,6 +14,7 @@ import (
var ( var (
Commit string //nolint: gochecknoglobals Commit string //nolint: gochecknoglobals
ReleaseTag string //nolint: gochecknoglobals
BinaryType string //nolint: gochecknoglobals BinaryType string //nolint: gochecknoglobals
GoVersion string //nolint: gochecknoglobals GoVersion string //nolint: gochecknoglobals
) )
@ -125,6 +126,7 @@ type Config struct {
DistSpecVersion string `json:"distSpecVersion" mapstructure:"distSpecVersion"` DistSpecVersion string `json:"distSpecVersion" mapstructure:"distSpecVersion"`
GoVersion string GoVersion string
Commit string Commit string
ReleaseTag string
BinaryType string BinaryType string
AccessControl *AccessControlConfig AccessControl *AccessControlConfig
Storage GlobalStorageConfig Storage GlobalStorageConfig
@ -138,6 +140,7 @@ func New() *Config {
DistSpecVersion: distspec.Version, DistSpecVersion: distspec.Version,
GoVersion: GoVersion, GoVersion: GoVersion,
Commit: Commit, Commit: Commit,
ReleaseTag: ReleaseTag,
BinaryType: BinaryType, BinaryType: BinaryType,
Storage: GlobalStorageConfig{GC: true, GCDelay: storage.DefaultGCDelay, Dedupe: true}, Storage: GlobalStorageConfig{GC: true, GCDelay: storage.DefaultGCDelay, Dedupe: true},
HTTP: HTTPConfig{Address: "127.0.0.1", Port: "8080", Auth: &AuthConfig{FailDelay: 0}}, HTTP: HTTPConfig{Address: "127.0.0.1", Port: "8080", Auth: &AuthConfig{FailDelay: 0}},

View file

@ -103,8 +103,8 @@ func GetExtensions(config *config.Config) distext.ExtensionList {
if config.Extensions != nil && config.Extensions.Search != nil { if config.Extensions != nil && config.Extensions.Search != nil {
endpoints := []string{constants.ExtSearchPrefix} endpoints := []string{constants.ExtSearchPrefix}
searchExt := getExtension("_zot", searchExt := getExtension("_zot",
"https://github.com/project-zot/zot/tree/main/pkg/extensions/_zot.md", "https://github.com/project-zot/zot/blob/"+config.ReleaseTag+"/pkg/extensions/_zot.md",
"zot registry extension", "zot registry extensions",
endpoints) endpoints)
extensions = append(extensions, searchExt) extensions = append(extensions, searchExt)

View file

@ -13,7 +13,7 @@ build:
cd /go/src/github.com/project-zot cd /go/src/github.com/project-zot
git clone /zotcopy zot git clone /zotcopy zot
cd /go/src/github.com/project-zot/zot cd /go/src/github.com/project-zot/zot
make COMMIT=${{COMMIT}} OS=${{OS}} ARCH=${{ARCH}} clean binary${{EXT:}} make COMMIT=${{COMMIT}} OS=${{OS}} ARCH=${{ARCH}} RELEASE_TAG=&{{RELEASE_TAG}} clean binary${{EXT:}}
cat > config.json << EOF cat > config.json << EOF
{ {
"storage":{ "storage":{