Skip to content

Instantly share code, notes, and snippets.

@chmouel
Created February 8, 2023 10:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chmouel/00dfc68e9f84e66f3ecfa81620003e06 to your computer and use it in GitHub Desktop.
Save chmouel/00dfc68e9f84e66f3ecfa81620003e06 to your computer and use it in GitHub Desktop.
diff --git a/.ko.yaml b/.ko.yaml
index 4afab0e5..a4c14718 100644
--- a/.ko.yaml
+++ b/.ko.yaml
@@ -1 +1,20 @@
-defaultBaseImage: gcr.io/distroless/base-debian11:nonroot
+defaultBaseImage: quay.io/chmouel/ubi9-nonroot
+
+builds:
+- id: controller
+ main: ./cmd/pipelines-as-code-controller
+ flags:
+ - -cover
+ - -coverpkg=github.com/openshift-pipelines/pipelines-as-code/cmd/pipelines-as-code-controller,github.com/openshift-pipelines/pipelines-as-code/pkg/acl,github.com/openshift-pipelines/pipelines-as-code/pkg/action,github.com/openshift-pipelines/pipelines-as-code/pkg/adapter,github.com/openshift-pipelines/pipelines-as-code/pkg/apis/pipelinesascode,github.com/openshift-pipelines/pipelines-as-code/pkg/apis/pipelinesascode/keys,github.com/openshift-pipelines/pipelines-as-code/pkg/apis/pipelinesascode/v1alpha1,github.com/openshift-pipelines/pipelines-as-code/pkg/cli,github.com/openshift-pipelines/pipelines-as-code/pkg/consoleui,github.com/openshift-pipelines/pipelines-as-code/pkg/events,github.com/openshift-pipelines/pipelines-as-code/pkg/formatting,github.com/openshift-pipelines/pipelines-as-code/pkg/generated/clientset/versioned,github.com/openshift-pipelines/pipelines-as-code/pkg/generated/clientset/versioned/scheme,github.com/openshift-pipelines/pipelines-as-code/pkg/generated/clientset/versioned/typed/pipelinesascode/v1alpha1,github.com/openshift-pipelines/pipelines-as-code/pkg/hub,github.com/openshift-pipelines/pipelines-as-code/pkg/kubeinteraction,github.com/openshift-pipelines/pipelines-as-code/pkg/kubeinteraction/status,github.com/openshift-pipelines/pipelines-as-code/pkg/matcher,github.com/openshift-pipelines/pipelines-as-code/pkg/params,github.com/openshift-pipelines/pipelines-as-code/pkg/params/clients,github.com/openshift-pipelines/pipelines-as-code/pkg/params/info,github.com/openshift-pipelines/pipelines-as-code/pkg/params/settings,github.com/openshift-pipelines/pipelines-as-code/pkg/params/version,github.com/openshift-pipelines/pipelines-as-code/pkg/pipelineascode,github.com/openshift-pipelines/pipelines-as-code/pkg/provider,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/bitbucketcloud,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/bitbucketcloud/types,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/bitbucketserver,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/bitbucketserver/types,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/gitea,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/github,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/gitlab,github.com/openshift-pipelines/pipelines-as-code/pkg/random,github.com/openshift-pipelines/pipelines-as-code/pkg/resolve,github.com/openshift-pipelines/pipelines-as-code/pkg/secrets,github.com/openshift-pipelines/pipelines-as-code/pkg/secrets/types,github.com/openshift-pipelines/pipelines-as-code/pkg/sort,github.com/openshift-pipelines/pipelines-as-code/pkg/templates
+
+- id: watcher
+ main: ./cmd/pipelines-as-code-watcher
+ flags:
+ - -cover
+ - -coverpkg=github.com/openshift-pipelines/pipelines-as-code/cmd/pipelines-as-code-controller,github.com/openshift-pipelines/pipelines-as-code/pkg/acl,github.com/openshift-pipelines/pipelines-as-code/pkg/action,github.com/openshift-pipelines/pipelines-as-code/pkg/adapter,github.com/openshift-pipelines/pipelines-as-code/pkg/apis/pipelinesascode,github.com/openshift-pipelines/pipelines-as-code/pkg/apis/pipelinesascode/keys,github.com/openshift-pipelines/pipelines-as-code/pkg/apis/pipelinesascode/v1alpha1,github.com/openshift-pipelines/pipelines-as-code/pkg/cli,github.com/openshift-pipelines/pipelines-as-code/pkg/consoleui,github.com/openshift-pipelines/pipelines-as-code/pkg/events,github.com/openshift-pipelines/pipelines-as-code/pkg/formatting,github.com/openshift-pipelines/pipelines-as-code/pkg/generated/clientset/versioned,github.com/openshift-pipelines/pipelines-as-code/pkg/generated/clientset/versioned/scheme,github.com/openshift-pipelines/pipelines-as-code/pkg/generated/clientset/versioned/typed/pipelinesascode/v1alpha1,github.com/openshift-pipelines/pipelines-as-code/pkg/hub,github.com/openshift-pipelines/pipelines-as-code/pkg/kubeinteraction,github.com/openshift-pipelines/pipelines-as-code/pkg/kubeinteraction/status,github.com/openshift-pipelines/pipelines-as-code/pkg/matcher,github.com/openshift-pipelines/pipelines-as-code/pkg/params,github.com/openshift-pipelines/pipelines-as-code/pkg/params/clients,github.com/openshift-pipelines/pipelines-as-code/pkg/params/info,github.com/openshift-pipelines/pipelines-as-code/pkg/params/settings,github.com/openshift-pipelines/pipelines-as-code/pkg/params/version,github.com/openshift-pipelines/pipelines-as-code/pkg/pipelineascode,github.com/openshift-pipelines/pipelines-as-code/pkg/provider,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/bitbucketcloud,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/bitbucketcloud/types,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/bitbucketserver,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/bitbucketserver/types,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/gitea,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/github,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/gitlab,github.com/openshift-pipelines/pipelines-as-code/pkg/random,github.com/openshift-pipelines/pipelines-as-code/pkg/resolve,github.com/openshift-pipelines/pipelines-as-code/pkg/secrets,github.com/openshift-pipelines/pipelines-as-code/pkg/secrets/types,github.com/openshift-pipelines/pipelines-as-code/pkg/sort,github.com/openshift-pipelines/pipelines-as-code/pkg/templates
+
+- id: webhook
+ main: ./cmd/pipelines-as-code-webhook
+ flags:
+ - -cover
+ - -coverpkg=github.com/openshift-pipelines/pipelines-as-code/cmd/pipelines-as-code-controller,github.com/openshift-pipelines/pipelines-as-code/pkg/acl,github.com/openshift-pipelines/pipelines-as-code/pkg/action,github.com/openshift-pipelines/pipelines-as-code/pkg/adapter,github.com/openshift-pipelines/pipelines-as-code/pkg/apis/pipelinesascode,github.com/openshift-pipelines/pipelines-as-code/pkg/apis/pipelinesascode/keys,github.com/openshift-pipelines/pipelines-as-code/pkg/apis/pipelinesascode/v1alpha1,github.com/openshift-pipelines/pipelines-as-code/pkg/cli,github.com/openshift-pipelines/pipelines-as-code/pkg/consoleui,github.com/openshift-pipelines/pipelines-as-code/pkg/events,github.com/openshift-pipelines/pipelines-as-code/pkg/formatting,github.com/openshift-pipelines/pipelines-as-code/pkg/generated/clientset/versioned,github.com/openshift-pipelines/pipelines-as-code/pkg/generated/clientset/versioned/scheme,github.com/openshift-pipelines/pipelines-as-code/pkg/generated/clientset/versioned/typed/pipelinesascode/v1alpha1,github.com/openshift-pipelines/pipelines-as-code/pkg/hub,github.com/openshift-pipelines/pipelines-as-code/pkg/kubeinteraction,github.com/openshift-pipelines/pipelines-as-code/pkg/kubeinteraction/status,github.com/openshift-pipelines/pipelines-as-code/pkg/matcher,github.com/openshift-pipelines/pipelines-as-code/pkg/params,github.com/openshift-pipelines/pipelines-as-code/pkg/params/clients,github.com/openshift-pipelines/pipelines-as-code/pkg/params/info,github.com/openshift-pipelines/pipelines-as-code/pkg/params/settings,github.com/openshift-pipelines/pipelines-as-code/pkg/params/version,github.com/openshift-pipelines/pipelines-as-code/pkg/pipelineascode,github.com/openshift-pipelines/pipelines-as-code/pkg/provider,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/bitbucketcloud,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/bitbucketcloud/types,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/bitbucketserver,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/bitbucketserver/types,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/gitea,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/github,github.com/openshift-pipelines/pipelines-as-code/pkg/provider/gitlab,github.com/openshift-pipelines/pipelines-as-code/pkg/random,github.com/openshift-pipelines/pipelines-as-code/pkg/resolve,github.com/openshift-pipelines/pipelines-as-code/pkg/secrets,github.com/openshift-pipelines/pipelines-as-code/pkg/secrets/types,github.com/openshift-pipelines/pipelines-as-code/pkg/sort,github.com/openshift-pipelines/pipelines-as-code/pkg/templates
diff --git a/Makefile b/Makefile
index 8a7338bc..5b5ddfad 100644
--- a/Makefile
+++ b/Makefile
@@ -3,6 +3,7 @@ GOLANGCI_LINT=golangci-lint
GOFUMPT=gofumpt
TKN_BINARY_NAME := tkn
LDFLAGS=
+GO_EXTRA_FLAGS +=
OUTPUT_DIR=bin
GO = go
TIMEOUT_UNIT = 20m
@@ -18,8 +19,7 @@ MD_FILES := $(shell find . -type f -regex ".*md" -not -regex '^./vendor/.*' -n
ifeq ($(PAC_VERSION),)
PAC_VERSION="$(shell git describe --tags --exact-match 2>/dev/null || echo nightly-`date +'%Y%m%d'`-`git rev-parse --short HEAD`)"
endif
-FLAGS += -ldflags "-X github.com/openshift-pipelines/pipelines-as-code/pkg/params/version.Version=$(PAC_VERSION) $(LDFLAGS) -X github.com/openshift-pipelines/pipelines-as-code/pkg/params/settings.TknBinaryName=$(TKN_BINARY_NAME)"
-
+FLAGS += $(GO_EXTRA_FLAGS) -ldflags "-X github.com/openshift-pipelines/pipelines-as-code/pkg/params/version.Version=$(PAC_VERSION) $(LDFLAGS) -X github.com/openshift-pipelines/pipelines-as-code/pkg/params/settings.TknBinaryName=$(TKN_BINARY_NAME)"
all: $(OUTPUT_DIR)/pipelines-as-code-controller $(OUTPUT_DIR)/tkn-pac test
diff --git a/hack/gather-coverage.sh b/hack/gather-coverage.sh
new file mode 100644
index 00000000..7baed542
--- /dev/null
+++ b/hack/gather-coverage.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env bash
+set -euxfo pipefail
+
+COMPONENTS=(controller watcher webhook)
+
+rm -rf /tmp/cover;
+for i in "${COMPONENTS[@]}";do
+ pod=$(kubectl get pod -n pipelines-as-code -l app.kubernetes.io/component=${i} -o jsonpath="{.items[0].metadata.name}" || true)
+ [[ -z ${pod} ]] && continue
+ mkdir -p /tmp/cover/${i}
+ oc rsync ${pod}:/tmp/cover /tmp/cover/${i}
+done
+
+cd /tmp/cover
+mkdir merged
+go tool covdata merge -i controller/cover,watcher/cover,webhook/cover -o merged/
+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment