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  }