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: | ||||
|     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' | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
							
								
								
									
										2
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										2
									
								
								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
 | ||||
|  |  | |||
|  | @ -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
 | ||||
|  |  | |||
|  | @ -1,3 +1,4 @@ | |||
| //go:build !ignore_autogenerated
 | ||||
| // +build !ignore_autogenerated
 | ||||
| 
 | ||||
| /* | ||||
|  |  | |||
|  | @ -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"' | ||||
|  |  | |||
|  | @ -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 | ||||
|  |  | |||
|  | @ -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"' | ||||
|  |  | |||
|  | @ -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.
 | ||||
|  |  | |||
|  | @ -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) | ||||
| 	} | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| // +build !OpenShift
 | ||||
| // +build !OpenShiftOAuth
 | ||||
| //go:build !OpenShift && !OpenShiftOAuth
 | ||||
| // +build !OpenShift,!OpenShiftOAuth
 | ||||
| 
 | ||||
| package e2e | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,3 +1,4 @@ | |||
| //go:build OpenShift
 | ||||
| // +build OpenShift
 | ||||
| 
 | ||||
| package e2e | ||||
|  |  | |||
|  | @ -1,3 +1,4 @@ | |||
| //go:build OpenShiftOAuth
 | ||||
| // +build OpenShiftOAuth
 | ||||
| 
 | ||||
| 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) | ||||
| CPUS_NUMBER = 3 | ||||
| MEMORY_AMOUNT = 4096 | ||||
| ##################### FROM OPERATOR SDK ########################
 | ||||
| 
 | ||||
| # Default bundle image tag
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue