Add e2e tests for the Helm Chart (#334)
This commit is contained in:
parent
cab7d0900c
commit
185f0533e4
|
|
@ -51,6 +51,13 @@ jobs:
|
|||
- sudo apt-get install socat
|
||||
- travis_wait 10 make travis-prepare
|
||||
- travis_wait 45 make build e2e
|
||||
- stage: e2e
|
||||
name: "Jenkins Operator Helm Chart - e2e"
|
||||
script:
|
||||
- sudo apt-get update
|
||||
- sudo apt-get install socat
|
||||
- travis_wait 10 make travis-prepare
|
||||
- travis_wait 45 make e2e BUILDTAGS=Helm E2E_TEST_SELECTOR='^.*Helm.*$'
|
||||
|
||||
cache:
|
||||
directories:
|
||||
|
|
|
|||
1
Makefile
1
Makefile
|
|
@ -487,6 +487,7 @@ else
|
|||
curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$(MINIKUBE_KUBERNETES_VERSION)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
|
||||
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v$(MINIKUBE_VERSION)/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
|
||||
curl -Lo operator-sdk https://github.com/operator-framework/operator-sdk/releases/download/v$(OPERATOR_SDK_VERSION)/operator-sdk-v$(OPERATOR_SDK_VERSION)-x86_64-linux-gnu && chmod +x operator-sdk && sudo mv operator-sdk /usr/local/bin/
|
||||
curl -Lo helm.tar.gz https://get.helm.sh/helm-v$(HELM_VERSION)-linux-amd64.tar.gz && tar xzfv helm.tar.gz && sudo mv linux-amd64/helm /usr/local/bin/
|
||||
mkdir -p $(HOME)/.kube $(HOME)/.minikube
|
||||
touch $(KUBECONFIG)
|
||||
sudo minikube start --vm-driver=none --kubernetes-version=$(MINIKUBE_KUBERNETES_VERSION)
|
||||
|
|
|
|||
|
|
@ -9,4 +9,5 @@ NAMESPACE=default
|
|||
API_VERSION=v1alpha2
|
||||
ALL_IN_ONE_DEPLOY_FILE_PREFIX=all-in-one
|
||||
GEN_CRD_API=gen-crd-api-reference-docs
|
||||
IMAGE_PULL_MODE=local
|
||||
IMAGE_PULL_MODE=local
|
||||
HELM_VERSION=3.1.2
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
// +build Helm
|
||||
|
||||
package e2e
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os/exec"
|
||||
"testing"
|
||||
|
||||
"github.com/jenkinsci/kubernetes-operator/pkg/apis"
|
||||
"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2"
|
||||
|
||||
framework "github.com/operator-framework/operator-sdk/pkg/test"
|
||||
"github.com/stretchr/testify/require"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
func TestLintHelmChart(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
cmd := exec.Command("helm", "lint", "./chart/jenkins-operator")
|
||||
output, err := cmd.CombinedOutput()
|
||||
require.NoError(t, err, string(output))
|
||||
}
|
||||
|
||||
func TestDeployHelmChart(t *testing.T) {
|
||||
// Given
|
||||
t.Parallel()
|
||||
ctx := framework.NewTestCtx(t)
|
||||
defer ctx.Cleanup()
|
||||
|
||||
namespace, err := ctx.GetNamespace()
|
||||
require.NoError(t, err)
|
||||
|
||||
jenkinsServiceList := &v1alpha2.JenkinsList{
|
||||
TypeMeta: metav1.TypeMeta{
|
||||
Kind: v1alpha2.Kind,
|
||||
APIVersion: v1alpha2.SchemeGroupVersion.String(),
|
||||
},
|
||||
}
|
||||
err = framework.AddToFrameworkScheme(apis.AddToScheme, jenkinsServiceList)
|
||||
require.NoError(t, err)
|
||||
|
||||
jenkins := &v1alpha2.Jenkins{
|
||||
TypeMeta: v1alpha2.JenkinsTypeMeta(),
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "jenkins",
|
||||
Namespace: namespace,
|
||||
},
|
||||
}
|
||||
|
||||
cmd := exec.Command("helm", "install", "helm", "./chart/jenkins-operator", "--namespace", namespace, "--debug",
|
||||
"--set-string", fmt.Sprintf("jenkins.namespace=%s", namespace))
|
||||
output, err := cmd.CombinedOutput()
|
||||
require.NoError(t, err, string(output))
|
||||
|
||||
// Then
|
||||
waitForJenkinsBaseConfigurationToComplete(t, jenkins)
|
||||
waitForJenkinsUserConfigurationToComplete(t, jenkins)
|
||||
}
|
||||
Loading…
Reference in New Issue