48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
def label = "worker-${UUID.randomUUID().toString()}"
 | 
						|
 | 
						|
podTemplate(
 | 
						|
    label: label,
 | 
						|
    containers: [
 | 
						|
        containerTemplate(
 | 
						|
            name: 'gradle', 
 | 
						|
            image: 'gradle:7.6.0-jdk11', 
 | 
						|
            command: 'sleep', 
 | 
						|
            args: '30d'
 | 
						|
        )
 | 
						|
    ],
 | 
						|
    volumes: [
 | 
						|
        hostPathVolume(mountPath: '/home/gradle/.gradle', hostPath: '/tmp/jenkins/.gradle')
 | 
						|
    ]
 | 
						|
)
 | 
						|
{
 | 
						|
    node(label) {
 | 
						|
        def myRepo = checkout scm
 | 
						|
        def gitCommit = myRepo.GIT_COMMIT
 | 
						|
        def gitBranch = myRepo.GIT_BRANCH
 | 
						|
        def shortGitCommit = "${gitCommit[0..10]}"
 | 
						|
        def previousGitCommit = sh(script: "git rev-parse ${gitCommit}~", returnStdout: true)
 | 
						|
 | 
						|
        stage('Test') {
 | 
						|
            try {
 | 
						|
                container('gradle') {
 | 
						|
                sh """
 | 
						|
                    pwd
 | 
						|
                    echo "GIT_BRANCH=${gitBranch}" >> /etc/environment
 | 
						|
                    echo "GIT_COMMIT=${gitCommit}" >> /etc/environment
 | 
						|
                    gradle test
 | 
						|
                    """
 | 
						|
                }
 | 
						|
            }
 | 
						|
            catch (exc) {
 | 
						|
                println "Failed to test - ${currentBuild.fullDisplayName}"
 | 
						|
                throw(exc)
 | 
						|
            }
 | 
						|
        }
 | 
						|
        stage('Build') {
 | 
						|
            container('gradle') {
 | 
						|
                sh "gradle build"
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |