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
This commit is contained in:
		
							parent
							
								
									424ec3fbc2
								
							
						
					
					
						commit
						e8414c09a8
					
				|  | @ -3,12 +3,15 @@ on: | ||||||
|   push: |   push: | ||||||
|     branches: |     branches: | ||||||
|       - master |       - master | ||||||
|       - security-validator |  | ||||||
|   pull_request: |   pull_request: | ||||||
|     types: [opened, synchronize, ready_for_review, reopened] |     types: [opened, synchronize, ready_for_review, reopened] | ||||||
|     branches: |     branches: | ||||||
|       - master |       - master | ||||||
|       - security-validator | 
 | ||||||
|  | env: | ||||||
|  |   MINIKUBE_CPUS_NUMBER: 2 | ||||||
|  |   MINIKUBE_MEMORY_AMOUNT: 6144 | ||||||
|  | 
 | ||||||
| jobs: | jobs: | ||||||
|   run-tests: |   run-tests: | ||||||
|     if: github.event.pull_request.draft == false |     if: github.event.pull_request.draft == false | ||||||
|  | @ -45,7 +48,10 @@ jobs: | ||||||
|           sudo apt-get install socat |           sudo apt-get install socat | ||||||
|           sudo mkdir -p $HOME/.kube $HOME/.minikube |           sudo mkdir -p $HOME/.kube $HOME/.minikube | ||||||
|           sudo chown -R $USER $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 |       - name: Jenkins Operator - e2e | ||||||
|         run: make e2e E2E_TEST_ARGS='-ginkgo.v' |         run: make e2e E2E_TEST_ARGS='-ginkgo.v' | ||||||
|  |  | ||||||
|  | @ -2,6 +2,16 @@ name: Publish nightly snapshot | ||||||
| on: | on: | ||||||
|   schedule: |   schedule: | ||||||
|     - cron: '0 2 * * *' |     - 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: | jobs: | ||||||
|   publish-image: |   publish-image: | ||||||
|     name: Publish nightly snapshot |     name: Publish nightly snapshot | ||||||
|  | @ -32,17 +42,23 @@ jobs: | ||||||
|         run: make verify |         run: make verify | ||||||
| 
 | 
 | ||||||
|       - name: Prepare environment for e2e |       - name: Prepare environment for e2e | ||||||
|  |         if: ${{ github.event.inputs.skipTests != 'true' }} | ||||||
|         run: | |         run: | | ||||||
|           sudo apt-get update |           sudo apt-get update | ||||||
|           sudo apt-get install socat |           sudo apt-get install socat | ||||||
|           sudo mkdir -p $HOME/.kube $HOME/.minikube |           sudo mkdir -p $HOME/.kube $HOME/.minikube | ||||||
|           sudo chown -R $USER $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 |       - name: Jenkins Operator - e2e | ||||||
|  |         if: ${{ github.event.inputs.skipTests != 'true' }} | ||||||
|         run: make e2e E2E_TEST_ARGS='-ginkgo.v' |         run: make e2e E2E_TEST_ARGS='-ginkgo.v' | ||||||
| 
 | 
 | ||||||
|       - name: Jenkins Operator - Helm Chart tests |       - name: Jenkins Operator - Helm Chart tests | ||||||
|  |         if: ${{ github.event.inputs.skipTests != 'true' }} | ||||||
|         run: | |         run: | | ||||||
|           git reset --hard |           git reset --hard | ||||||
|           make helm-lint |           make helm-lint | ||||||
|  |  | ||||||
							
								
								
									
										2
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										2
									
								
								Makefile
								
								
								
								
							|  | @ -334,7 +334,7 @@ endif | ||||||
| minikube-start: minikube check-minikube ## Start minikube
 | minikube-start: minikube check-minikube ## Start minikube
 | ||||||
| 	@echo "+ $@" | 	@echo "+ $@" | ||||||
| 	bin/minikube status && exit 0 || \
 | 	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 | .PHONY: crc-start | ||||||
| crc-start: check-crc ## Start CodeReady Containers Kubernetes cluster
 | crc-start: check-crc ## Start CodeReady Containers Kubernetes cluster
 | ||||||
|  |  | ||||||
|  | @ -349,7 +349,7 @@ type JenkinsMaster struct { | ||||||
| 	// - name: kubernetes
 | 	// - name: kubernetes
 | ||||||
| 	// version: "1.30.11"
 | 	// version: "1.30.11"
 | ||||||
| 	// - name: workflow-job
 | 	// - name: workflow-job
 | ||||||
| 	// version: "2.42"
 | 	// version: "1145.v7f2433caa07f"
 | ||||||
| 	// - name: workflow-aggregator
 | 	// - name: workflow-aggregator
 | ||||||
| 	// version: "2.6"
 | 	// version: "2.6"
 | ||||||
| 	// - name: git
 | 	// - name: git
 | ||||||
|  |  | ||||||
|  | @ -1,3 +1,4 @@ | ||||||
|  | //go:build !ignore_autogenerated
 | ||||||
| // +build !ignore_autogenerated
 | // +build !ignore_autogenerated
 | ||||||
| 
 | 
 | ||||||
| /* | /* | ||||||
|  |  | ||||||
|  | @ -158,7 +158,7 @@ spec: | ||||||
|                   basePlugins: |                   basePlugins: | ||||||
|                     description: 'BasePlugins contains plugins required by operator |                     description: 'BasePlugins contains plugins required by operator | ||||||
|                       Defaults to : - name: kubernetes version: "1.30.11" - name: |                       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: |                       "2.6" - name: git version: "4.10.0" - name: job-dsl version: | ||||||
|                       "1.78.1" - name: configuration-as-code version: "1.55" - name: |                       "1.78.1" - name: configuration-as-code version: "1.55" - name: | ||||||
|                       kubernetes-credentials-provider version: "0.20"' |                       kubernetes-credentials-provider version: "0.20"' | ||||||
|  |  | ||||||
|  | @ -75,7 +75,7 @@ jenkins: | ||||||
|   # - name: kubernetes |   # - name: kubernetes | ||||||
|   #   version: 1.30.11 |   #   version: 1.30.11 | ||||||
|   # - name: workflow-job |   # - name: workflow-job | ||||||
|   #   version: "2.42" |   #   version: "1145.v7f2433caa07f" | ||||||
|   # - name: workflow-aggregator |   # - name: workflow-aggregator | ||||||
|   #   version: "2.6" |   #   version: "2.6" | ||||||
|   # - name: git |   # - name: git | ||||||
|  |  | ||||||
|  | @ -158,7 +158,7 @@ spec: | ||||||
|                   basePlugins: |                   basePlugins: | ||||||
|                     description: 'BasePlugins contains plugins required by operator |                     description: 'BasePlugins contains plugins required by operator | ||||||
|                       Defaults to : - name: kubernetes version: "1.30.11" - name: |                       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: |                       "2.6" - name: git version: "4.10.0" - name: job-dsl version: | ||||||
|                       "1.78.1" - name: configuration-as-code version: "1.55" - name: |                       "1.78.1" - name: configuration-as-code version: "1.55" - name: | ||||||
|                       kubernetes-credentials-provider version: "0.20"' |                       kubernetes-credentials-provider version: "0.20"' | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ const ( | ||||||
| 	kubernetesCredentialsProviderPlugin = "kubernetes-credentials-provider:0.20" | 	kubernetesCredentialsProviderPlugin = "kubernetes-credentials-provider:0.20" | ||||||
| 	kubernetesPlugin                    = "kubernetes:1.30.11" | 	kubernetesPlugin                    = "kubernetes:1.30.11" | ||||||
| 	workflowAggregatorPlugin            = "workflow-aggregator:2.6" | 	workflowAggregatorPlugin            = "workflow-aggregator:2.6" | ||||||
| 	workflowJobPlugin                   = "workflow-job:2.42" | 	workflowJobPlugin                   = "workflow-job:1145.v7f2433caa07f" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // basePluginsList contains plugins to install by operator.
 | // basePluginsList contains plugins to install by operator.
 | ||||||
|  |  | ||||||
|  | @ -17,7 +17,7 @@ import ( | ||||||
| 
 | 
 | ||||||
| var ( | var ( | ||||||
| 	podLogTailLimit       int64 = 15 | 	podLogTailLimit       int64 = 15 | ||||||
| 	kubernetesEventsLimit int64 = 15 | 	kubernetesEventsLimit int64 = 30 | ||||||
| 	// MUST match the labels in the deployment manifest: deploy/operator.yaml
 | 	// MUST match the labels in the deployment manifest: deploy/operator.yaml
 | ||||||
| 	operatorPodLabels = map[string]string{ | 	operatorPodLabels = map[string]string{ | ||||||
| 		"name": "jenkins-operator", | 		"name": "jenkins-operator", | ||||||
|  | @ -125,9 +125,11 @@ func printKubernetesPods(namespace string) { | ||||||
| 
 | 
 | ||||||
| func ShowLogsIfTestHasFailed(failed bool, namespace string) { | func ShowLogsIfTestHasFailed(failed bool, namespace string) { | ||||||
| 	if failed { | 	if failed { | ||||||
|  | 		const defaultNamespace = "default" | ||||||
| 		_, _ = fmt.Fprintf(ginkgo.GinkgoWriter, "Test failed. Bellow here you can check logs:") | 		_, _ = fmt.Fprintf(ginkgo.GinkgoWriter, "Test failed. Bellow here you can check logs:") | ||||||
| 
 | 
 | ||||||
| 		printKubernetesEvents(namespace) | 		printKubernetesEvents(namespace) | ||||||
|  | 		printKubernetesEvents(defaultNamespace) | ||||||
| 		printKubernetesPods(namespace) | 		printKubernetesPods(namespace) | ||||||
| 		printOperatorLogs(namespace) | 		printOperatorLogs(namespace) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | @ -1,5 +1,5 @@ | ||||||
| // +build !OpenShift
 | //go:build !OpenShift && !OpenShiftOAuth
 | ||||||
| // +build !OpenShiftOAuth
 | // +build !OpenShift,!OpenShiftOAuth
 | ||||||
| 
 | 
 | ||||||
| package e2e | package e2e | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,3 +1,4 @@ | ||||||
|  | //go:build OpenShift
 | ||||||
| // +build OpenShift
 | // +build OpenShift
 | ||||||
| 
 | 
 | ||||||
| package e2e | package e2e | ||||||
|  |  | ||||||
|  | @ -1,3 +1,4 @@ | ||||||
|  | //go:build OpenShiftOAuth
 | ||||||
| // +build OpenShiftOAuth
 | // +build OpenShiftOAuth
 | ||||||
| 
 | 
 | ||||||
| package e2e | package e2e | ||||||
|  |  | ||||||
|  | @ -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) | PLATFORM = $(shell echo $(UNAME_S) | tr A-Z a-z) | ||||||
| CPUS_NUMBER = 3 | CPUS_NUMBER = 3 | ||||||
|  | MEMORY_AMOUNT = 4096 | ||||||
| ##################### FROM OPERATOR SDK ########################
 | ##################### FROM OPERATOR SDK ########################
 | ||||||
| 
 | 
 | ||||||
| # Default bundle image tag
 | # Default bundle image tag
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue