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:
Szymon Fugas 2022-02-10 18:03:08 +01:00 committed by GitHub
parent 424ec3fbc2
commit e8414c09a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 41 additions and 13 deletions

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,3 +1,4 @@
//go:build !ignore_autogenerated
// +build !ignore_autogenerated
/*

View File

@ -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"'

View File

@ -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

View File

@ -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"'

View File

@ -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.

View File

@ -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)
}

View File

@ -1,5 +1,5 @@
// +build !OpenShift
// +build !OpenShiftOAuth
//go:build !OpenShift && !OpenShiftOAuth
// +build !OpenShift,!OpenShiftOAuth
package e2e

View File

@ -1,3 +1,4 @@
//go:build OpenShift
// +build OpenShift
package e2e

View File

@ -1,3 +1,4 @@
//go:build OpenShiftOAuth
// +build OpenShiftOAuth
package e2e

View File

@ -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