From 3a052c1b055313767fbc59033cdd88c5e26b791e Mon Sep 17 00:00:00 2001 From: Leonardo Grasso Date: Tue, 31 Mar 2020 15:25:00 +0200 Subject: [PATCH] build: use goreleaser to build and publis images Signed-off-by: Leonardo Grasso --- .goreleaser.yml | 23 +++++++++++++++++++++++ Makefile | 33 --------------------------------- release.md | 16 +++------------- 3 files changed, 26 insertions(+), 46 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index 5d4b2db..77158ca 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -14,6 +14,29 @@ builds: - CGO_ENABLED=0 binary: falco-exporter +dockers: + - + goos: linux + goarch: amd64 + skip_push: false + dockerfile: build/Dockerfile + image_templates: + - "falcosecurity/falco-exporter:latest" + - "falcosecurity/falco-exporter:{{ .Version }}" + - "falcosecurity/falco-exporter:{{ .Major }}.{{ .Minor }}" + build_flag_templates: + - "--pull" + - "--label=org.opencontainers.image.created={{.Date}}" + - "--label=org.opencontainers.image.name={{.ProjectName}}" + - "--label=org.opencontainers.image.revision={{.FullCommit}}" + - "--label=org.opencontainers.image.version={{.Version}}" + extra_files: + - cmd + - pkg + - go.mod + - go.sum + - Makefile + snapshot: name_template: 'master' diff --git a/Makefile b/Makefile index b297694..92c5cf6 100644 --- a/Makefile +++ b/Makefile @@ -1,47 +1,14 @@ SHELL=/bin/bash -o pipefail -DOCKER ?= docker GO ?= go HELM ?= helm -COMMIT_NO := $(shell git rev-parse HEAD 2> /dev/null || true) -GIT_COMMIT := $(if $(shell git status --porcelain --untracked-files=no),${COMMIT_NO}-dirty,${COMMIT_NO}) -GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null) -GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g") - -IMAGE_NAME_BUILDER_BASE ?= docker.io/falcosecurity/falco-exporter - -IMAGE_NAME_BUILDER_BASE_BRANCH := $(IMAGE_NAME_BUILDER_BASE):$(GIT_BRANCH_CLEAN) -IMAGE_NAME_BUILDER_BASE_COMMIT := $(IMAGE_NAME_BUILDER_BASE):$(GIT_COMMIT) -IMAGE_NAME_BUILDER_BASE_LATEST := $(IMAGE_NAME_BUILDER_BASE):latest - TEST_FLAGS ?= -v -race -export GO111MODULE=on - .PHONY: falco-exporter falco-exporter: $(GO) build ./cmd/falco-exporter -.PHONY: image/build -image/build: - $(DOCKER) build \ - -t "$(IMAGE_NAME_BUILDER_BASE_BRANCH)" \ - -f build/Dockerfile . - $(DOCKER) tag $(IMAGE_NAME_BUILDER_BASE_BRANCH) $(IMAGE_NAME_BUILDER_BASE_COMMIT) - $(DOCKER) tag "$(IMAGE_NAME_BUILDER_BASE_BRANCH)" $(IMAGE_NAME_BUILDER_BASE_COMMIT) - - -.PHONY: image/push -image/push: - $(DOCKER) push $(IMAGE_NAME_BUILDER_BASE_BRANCH) - $(DOCKER) push $(IMAGE_NAME_BUILDER_BASE_COMMIT) - -.PHONY: image/latest -image/latest: - $(DOCKER) tag $(IMAGE_NAME_BUILDER_BASE_COMMIT) $(IMAGE_NAME_BUILDER_BASE_LATEST) - $(DOCKER) push $(IMAGE_NAME_BUILDER_BASE_LATEST) - .PHONY: deploy/k8s/templates deploy/k8s/templates: rm -rf deploy/k8s/templates/* diff --git a/release.md b/release.md index 404da3a..2a2e752 100644 --- a/release.md +++ b/release.md @@ -1,8 +1,6 @@ # Release Process -Currently, our release process is partially automated. We use: -- the [goreleaser](https://github.com/goreleaser/goreleaser) tool for artifacts -- the provided `Makefile` for the container image +Currently, our release process is partially automated. We use the [goreleaser](https://github.com/goreleaser/goreleaser) tool for artifacts. When we release we do the following process: @@ -27,15 +25,7 @@ export GITHUB_TOKEN= goreleaser --rm-dist ``` -Finally, build and publish the container image - -``` -make image/build -make image/push -make image/latest -``` - ## TODO -- [ ] Setup goreleaser [on a CI system](https://goreleaser.com/ci/), ie., CircleCI -- [ ] Build and publish images using a CI system, ie., CircleCI \ No newline at end of file +- [x] Setup goreleaser to build and publish images +- [ ] Setup goreleaser [on a CI system](https://goreleaser.com/ci/), ie., CircleCI \ No newline at end of file