github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/integration/integration_jenkins_test.go (about) 1 //go:build integration 2 // +build integration 3 4 // can be executed with 5 // go test -v -tags integration -run TestJenkinsIntegration ./integration/... 6 7 package main 8 9 import ( 10 "context" 11 "net/http" 12 "os" 13 "testing" 14 15 "github.com/stretchr/testify/assert" 16 "github.com/stretchr/testify/require" 17 18 "github.com/SAP/jenkins-library/pkg/jenkins" 19 ) 20 21 func TestJenkinsIntegrationTriggerJob(t *testing.T) { 22 t.Skip("no Jenkins instance for testing available yet") 23 //TODO: check if testcontainers can be used 24 // init 25 ctx := context.Background() 26 // ctx = context.WithValue(ctx, "debug", true) 27 28 // os.Setenv("PIPER_INTEGRATION_JENKINS_USER_NAME", "") 29 // os.Setenv("PIPER_INTEGRATION_JENKINS_TOKEN", "") 30 // os.Setenv("PIPER_INTEGRATION_JENKINS_HOST", "") 31 // os.Setenv("PIPER_INTEGRATION_JENKINS_JOB_NAME", "") 32 33 host := os.Getenv("PIPER_INTEGRATION_JENKINS_HOST") 34 user := os.Getenv("PIPER_INTEGRATION_JENKINS_USER_NAME") 35 token := os.Getenv("PIPER_INTEGRATION_JENKINS_TOKEN") 36 jobName := os.Getenv("PIPER_INTEGRATION_JENKINS_JOB_NAME") 37 require.NotEmpty(t, host, "Jenkins host url is missing") 38 require.NotEmpty(t, user, "Jenkins user name is missing") 39 require.NotEmpty(t, token, "Jenkins token is missing") 40 require.NotEmpty(t, jobName, "Jenkins job name is missing") 41 42 jenx, err := jenkins.Instance(ctx, http.DefaultClient, host, user, token) 43 require.NotNil(t, jenx, "could not connect to Jenkins instance") 44 require.NoError(t, err) 45 // test 46 job, getJobErr := jenkins.GetJob(ctx, jenx, jobName) 47 build, triggerJobErr := jenkins.TriggerJob(ctx, jenx, job, nil) 48 // asserts 49 assert.NoError(t, getJobErr) 50 assert.NoError(t, triggerJobErr) 51 assert.NotNil(t, build) 52 assert.True(t, build.IsRunning(ctx)) 53 }