#90 Add kubernetes plugin e2e tests
This commit is contained in:
		
							parent
							
								
									9698079a02
								
							
						
					
					
						commit
						56d305eeab
					
				|  | @ -0,0 +1,31 @@ | ||||||
|  | #!/usr/bin/env groovy | ||||||
|  | 
 | ||||||
|  | pipelineJob('k8s-e2e') { | ||||||
|  |     displayName('Kubernetes Plugin E2E Test') | ||||||
|  | 
 | ||||||
|  |     logRotator { | ||||||
|  |         numToKeep(10) | ||||||
|  |         daysToKeep(30) | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     configure { project -> | ||||||
|  |         project / 'properties' / 'org.jenkinsci.plugins.workflow.job.properties.DurabilityHintJobProperty' { | ||||||
|  |             hint('PERFORMANCE_OPTIMIZED') | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     definition { | ||||||
|  |         cpsScm { | ||||||
|  |             scm { | ||||||
|  |                 git { | ||||||
|  |                     remote { | ||||||
|  |                         url('https://github.com/jenkinsci/kubernetes-operator.git') | ||||||
|  |                         credentials('jenkins-operator') | ||||||
|  |                     } | ||||||
|  |                     branches('*/master') | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             scriptPath('cicd/pipelines/k8s.jenkins') | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | #!/usr/bin/env groovy | ||||||
|  | 
 | ||||||
|  | def label = "k8s-e2e" | ||||||
|  | def home = "/home/jenkins" | ||||||
|  | def workspace = "${home}/workspace/build-jenkins-operator" | ||||||
|  | 
 | ||||||
|  | podTemplate(label: label, | ||||||
|  |         containers: [ | ||||||
|  |                 containerTemplate(name: 'alpine', image: 'alpine:3.10.2'), | ||||||
|  |         ], | ||||||
|  |         ) { | ||||||
|  |     node(label) { | ||||||
|  |         container('alpine') { | ||||||
|  |             echo "its working" | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -5,16 +5,17 @@ import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"testing" | 	"testing" | ||||||
| 
 | 
 | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" |  | ||||||
| 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | 	jenkinsclient "github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/client" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/configuration/base/resources" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/groovy" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/groovy" | ||||||
| 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" | 	"github.com/jenkinsci/kubernetes-operator/pkg/controller/jenkins/plugins" | ||||||
|  | 	"github.com/jenkinsci/kubernetes-operator/pkg/apis/jenkins/v1alpha2" | ||||||
| 
 | 
 | ||||||
| 	"github.com/bndr/gojenkins" | 	"github.com/bndr/gojenkins" | ||||||
| 	framework "github.com/operator-framework/operator-sdk/pkg/test" | 	framework "github.com/operator-framework/operator-sdk/pkg/test" | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
|  | 	"github.com/stretchr/testify/require" | ||||||
| 	corev1 "k8s.io/api/core/v1" | 	corev1 "k8s.io/api/core/v1" | ||||||
| 	"k8s.io/apimachinery/pkg/api/resource" | 	"k8s.io/apimachinery/pkg/api/resource" | ||||||
| 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | ||||||
|  | @ -96,6 +97,38 @@ func TestConfiguration(t *testing.T) { | ||||||
| 	verifyJenkinsSeedJobs(t, client, []seedJobConfig{mySeedJob}) | 	verifyJenkinsSeedJobs(t, client, []seedJobConfig{mySeedJob}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func TestPlugin(t *testing.T) { | ||||||
|  | 	t.Parallel() | ||||||
|  | 	namespace, ctx := setupTest(t) | ||||||
|  | 	// Deletes test namespace
 | ||||||
|  | 	defer ctx.Cleanup() | ||||||
|  | 
 | ||||||
|  | 	jobID := "k8s-e2e" | ||||||
|  | 
 | ||||||
|  | 	seedJobs := &[]v1alpha2.SeedJob{ | ||||||
|  | 		{ | ||||||
|  | 			ID:                    "jenkins-operator", | ||||||
|  | 			CredentialID:          "jenkins-operator", | ||||||
|  | 			JenkinsCredentialType: v1alpha2.NoJenkinsCredentialCredentialType, | ||||||
|  | 			Targets:               "cicd/jobs/k8s.jenkins", | ||||||
|  | 			Description:           "Jenkins Operator repository", | ||||||
|  | 			RepositoryBranch:      "master", | ||||||
|  | 			RepositoryURL:         "https://github.com/jenkinsci/kubernetes-operator.git", | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	jenkins := createJenkinsCR(t, "k8s-e2e", namespace, seedJobs, v1alpha2.GroovyScripts{}, v1alpha2.ConfigurationAsCode{}) | ||||||
|  | 	waitForJenkinsUserConfigurationToComplete(t, jenkins) | ||||||
|  | 
 | ||||||
|  | 	jenkinsClient := verifyJenkinsAPIConnection(t, jenkins) | ||||||
|  | 	waitForJob(t, jenkinsClient, jobID) | ||||||
|  | 	job, err := jenkinsClient.GetJob(jobID) | ||||||
|  | 
 | ||||||
|  | 	require.NoError(t, err, job) | ||||||
|  | 	i, err := job.InvokeSimple(map[string]string{}) | ||||||
|  | 	require.NoError(t, err, i) | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func createUserConfigurationSecret(t *testing.T, namespace string, stringData map[string]string) { | func createUserConfigurationSecret(t *testing.T, namespace string, stringData map[string]string) { | ||||||
| 	userConfiguration := &corev1.Secret{ | 	userConfiguration := &corev1.Secret{ | ||||||
| 		ObjectMeta: metav1.ObjectMeta{ | 		ObjectMeta: metav1.ObjectMeta{ | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue