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