From e8414c09a8accf2f11b8abb82525e8f59d05b784 Mon Sep 17 00:00:00 2001 From: Szymon Fugas Date: Thu, 10 Feb 2022 18:03:08 +0100 Subject: [PATCH] chore: enable manual run of nightly builds with possibility of skipping tests (#712) * Add manual dispatch trigger for nightly build workflow, with an input parameter for optionally skipping the e2e and helm tests part of the workflow * Bump how much memory to start minikube cluster with on e2e test workflows * Log events from default namespace on tests failure, bump the limit of kubernetes events logged to 30 * Bump workflow-job plugin version used by default from 2.42 to 1145.v7f2433caa07f --- .github/workflows/auto-tests.yaml | 12 +++++++++--- .github/workflows/deploy-nightly.yaml | 18 +++++++++++++++++- Makefile | 2 +- api/v1alpha2/jenkins_types.go | 2 +- api/v1alpha2/zz_generated.deepcopy.go | 1 + chart/jenkins-operator/crds/jenkins-crd.yaml | 2 +- chart/jenkins-operator/values.yaml | 2 +- config/crd/bases/jenkins.io_jenkins.yaml | 2 +- pkg/plugins/base_plugins.go | 2 +- test/e2e/logging.go | 4 +++- test/e2e/mode_kubernetes.go | 4 ++-- test/e2e/mode_openshift.go | 1 + test/e2e/mode_openshift_oauth.go | 1 + variables.mk | 1 + 14 files changed, 41 insertions(+), 13 deletions(-) diff --git a/.github/workflows/auto-tests.yaml b/.github/workflows/auto-tests.yaml index f2638b29..ea24938b 100644 --- a/.github/workflows/auto-tests.yaml +++ b/.github/workflows/auto-tests.yaml @@ -3,12 +3,15 @@ on: push: branches: - master - - security-validator pull_request: types: [opened, synchronize, ready_for_review, reopened] branches: - master - - security-validator + +env: + MINIKUBE_CPUS_NUMBER: 2 + MINIKUBE_MEMORY_AMOUNT: 6144 + jobs: run-tests: if: github.event.pull_request.draft == false @@ -45,7 +48,10 @@ jobs: sudo apt-get install socat sudo mkdir -p $HOME/.kube $HOME/.minikube sudo chown -R $USER $HOME/.kube $HOME/.minikube - make minikube-start MINIKUBE_DRIVER='docker' CPUS_NUMBER=2 + make minikube-start \ + MINIKUBE_DRIVER='docker' \ + MEMORY_AMOUNT=${{ env.MINIKUBE_MEMORY_AMOUNT }} \ + CPUS_NUMBER=${{ env.MINIKUBE_CPUS_NUMBER }} - name: Jenkins Operator - e2e run: make e2e E2E_TEST_ARGS='-ginkgo.v' diff --git a/.github/workflows/deploy-nightly.yaml b/.github/workflows/deploy-nightly.yaml index a454f3c7..9ad4c92e 100644 --- a/.github/workflows/deploy-nightly.yaml +++ b/.github/workflows/deploy-nightly.yaml @@ -2,6 +2,16 @@ name: Publish nightly snapshot on: schedule: - cron: '0 2 * * *' + workflow_dispatch: + inputs: + skipTests: + description: "Flag for skipping the tests. If set to true (without quotation marks), the workflow will skip tests and go straight to releasing the nightly build. Use with caution!" + required: false + +env: + MINIKUBE_CPUS_NUMBER: 2 + MINIKUBE_MEMORY_AMOUNT: 6144 + jobs: publish-image: name: Publish nightly snapshot @@ -32,17 +42,23 @@ jobs: run: make verify - name: Prepare environment for e2e + if: ${{ github.event.inputs.skipTests != 'true' }} run: | sudo apt-get update sudo apt-get install socat sudo mkdir -p $HOME/.kube $HOME/.minikube sudo chown -R $USER $HOME/.kube $HOME/.minikube - make minikube-start MINIKUBE_DRIVER='docker' CPUS_NUMBER=2 + make minikube-start \ + MINIKUBE_DRIVER='docker' \ + MEMORY_AMOUNT=${{ env.MINIKUBE_MEMORY_AMOUNT }} \ + CPUS_NUMBER=${{ env.MINIKUBE_CPUS_NUMBER }} - name: Jenkins Operator - e2e + if: ${{ github.event.inputs.skipTests != 'true' }} run: make e2e E2E_TEST_ARGS='-ginkgo.v' - name: Jenkins Operator - Helm Chart tests + if: ${{ github.event.inputs.skipTests != 'true' }} run: | git reset --hard make helm-lint diff --git a/Makefile b/Makefile index e78c26be..84e653b6 100644 --- a/Makefile +++ b/Makefile @@ -334,7 +334,7 @@ endif minikube-start: minikube check-minikube ## Start minikube @echo "+ $@" bin/minikube status && exit 0 || \ - bin/minikube start --kubernetes-version $(MINIKUBE_KUBERNETES_VERSION) --dns-domain=$(CLUSTER_DOMAIN) --extra-config=kubelet.cluster-domain=$(CLUSTER_DOMAIN) --driver=$(MINIKUBE_DRIVER) --memory 4096 --cpus $(CPUS_NUMBER) + bin/minikube start --kubernetes-version $(MINIKUBE_KUBERNETES_VERSION) --dns-domain=$(CLUSTER_DOMAIN) --extra-config=kubelet.cluster-domain=$(CLUSTER_DOMAIN) --driver=$(MINIKUBE_DRIVER) --memory $(MEMORY_AMOUNT) --cpus $(CPUS_NUMBER) .PHONY: crc-start crc-start: check-crc ## Start CodeReady Containers Kubernetes cluster diff --git a/api/v1alpha2/jenkins_types.go b/api/v1alpha2/jenkins_types.go index 6134126c..28598ef6 100644 --- a/api/v1alpha2/jenkins_types.go +++ b/api/v1alpha2/jenkins_types.go @@ -349,7 +349,7 @@ type JenkinsMaster struct { // - name: kubernetes // version: "1.30.11" // - name: workflow-job - // version: "2.42" + // version: "1145.v7f2433caa07f" // - name: workflow-aggregator // version: "2.6" // - name: git diff --git a/api/v1alpha2/zz_generated.deepcopy.go b/api/v1alpha2/zz_generated.deepcopy.go index c44318c7..cfd1b305 100644 --- a/api/v1alpha2/zz_generated.deepcopy.go +++ b/api/v1alpha2/zz_generated.deepcopy.go @@ -1,3 +1,4 @@ +//go:build !ignore_autogenerated // +build !ignore_autogenerated /* diff --git a/chart/jenkins-operator/crds/jenkins-crd.yaml b/chart/jenkins-operator/crds/jenkins-crd.yaml index af8580b2..cad76ae5 100644 --- a/chart/jenkins-operator/crds/jenkins-crd.yaml +++ b/chart/jenkins-operator/crds/jenkins-crd.yaml @@ -158,7 +158,7 @@ spec: basePlugins: description: 'BasePlugins contains plugins required by operator Defaults to : - name: kubernetes version: "1.30.11" - name: - workflow-job version: "2.42" - name: workflow-aggregator version: + workflow-job version: "1145.v7f2433caa07f" - name: workflow-aggregator version: "2.6" - name: git version: "4.10.0" - name: job-dsl version: "1.78.1" - name: configuration-as-code version: "1.55" - name: kubernetes-credentials-provider version: "0.20"' diff --git a/chart/jenkins-operator/values.yaml b/chart/jenkins-operator/values.yaml index 91dcfc97..7cce7198 100644 --- a/chart/jenkins-operator/values.yaml +++ b/chart/jenkins-operator/values.yaml @@ -75,7 +75,7 @@ jenkins: # - name: kubernetes # version: 1.30.11 # - name: workflow-job - # version: "2.42" + # version: "1145.v7f2433caa07f" # - name: workflow-aggregator # version: "2.6" # - name: git diff --git a/config/crd/bases/jenkins.io_jenkins.yaml b/config/crd/bases/jenkins.io_jenkins.yaml index af8580b2..cad76ae5 100644 --- a/config/crd/bases/jenkins.io_jenkins.yaml +++ b/config/crd/bases/jenkins.io_jenkins.yaml @@ -158,7 +158,7 @@ spec: basePlugins: description: 'BasePlugins contains plugins required by operator Defaults to : - name: kubernetes version: "1.30.11" - name: - workflow-job version: "2.42" - name: workflow-aggregator version: + workflow-job version: "1145.v7f2433caa07f" - name: workflow-aggregator version: "2.6" - name: git version: "4.10.0" - name: job-dsl version: "1.78.1" - name: configuration-as-code version: "1.55" - name: kubernetes-credentials-provider version: "0.20"' diff --git a/pkg/plugins/base_plugins.go b/pkg/plugins/base_plugins.go index b6624be1..dd690837 100644 --- a/pkg/plugins/base_plugins.go +++ b/pkg/plugins/base_plugins.go @@ -7,7 +7,7 @@ const ( kubernetesCredentialsProviderPlugin = "kubernetes-credentials-provider:0.20" kubernetesPlugin = "kubernetes:1.30.11" workflowAggregatorPlugin = "workflow-aggregator:2.6" - workflowJobPlugin = "workflow-job:2.42" + workflowJobPlugin = "workflow-job:1145.v7f2433caa07f" ) // basePluginsList contains plugins to install by operator. diff --git a/test/e2e/logging.go b/test/e2e/logging.go index a2dd1696..05beff84 100644 --- a/test/e2e/logging.go +++ b/test/e2e/logging.go @@ -17,7 +17,7 @@ import ( var ( podLogTailLimit int64 = 15 - kubernetesEventsLimit int64 = 15 + kubernetesEventsLimit int64 = 30 // MUST match the labels in the deployment manifest: deploy/operator.yaml operatorPodLabels = map[string]string{ "name": "jenkins-operator", @@ -125,9 +125,11 @@ func printKubernetesPods(namespace string) { func ShowLogsIfTestHasFailed(failed bool, namespace string) { if failed { + const defaultNamespace = "default" _, _ = fmt.Fprintf(ginkgo.GinkgoWriter, "Test failed. Bellow here you can check logs:") printKubernetesEvents(namespace) + printKubernetesEvents(defaultNamespace) printKubernetesPods(namespace) printOperatorLogs(namespace) } diff --git a/test/e2e/mode_kubernetes.go b/test/e2e/mode_kubernetes.go index 9408844c..aebe3b09 100644 --- a/test/e2e/mode_kubernetes.go +++ b/test/e2e/mode_kubernetes.go @@ -1,5 +1,5 @@ -// +build !OpenShift -// +build !OpenShiftOAuth +//go:build !OpenShift && !OpenShiftOAuth +// +build !OpenShift,!OpenShiftOAuth package e2e diff --git a/test/e2e/mode_openshift.go b/test/e2e/mode_openshift.go index a2f6f584..3baa7ebf 100644 --- a/test/e2e/mode_openshift.go +++ b/test/e2e/mode_openshift.go @@ -1,3 +1,4 @@ +//go:build OpenShift // +build OpenShift package e2e diff --git a/test/e2e/mode_openshift_oauth.go b/test/e2e/mode_openshift_oauth.go index 30c31d5a..f218abef 100644 --- a/test/e2e/mode_openshift_oauth.go +++ b/test/e2e/mode_openshift_oauth.go @@ -1,3 +1,4 @@ +//go:build OpenShiftOAuth // +build OpenShiftOAuth package e2e diff --git a/variables.mk b/variables.mk index 94968b3c..9c987952 100644 --- a/variables.mk +++ b/variables.mk @@ -71,6 +71,7 @@ OPERATOR_ARGS ?= --jenkins-api-hostname=$(JENKINS_API_HOSTNAME) --jenkins-api-po PLATFORM = $(shell echo $(UNAME_S) | tr A-Z a-z) CPUS_NUMBER = 3 +MEMORY_AMOUNT = 4096 ##################### FROM OPERATOR SDK ######################## # Default bundle image tag