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