...
Code Block | ||
---|---|---|
| ||
pipeline { agent any tools { jdk '1.8' } stages { stage('Git') { steps { // Wipe out workspace cleanWs() // Get some code from a GitHub repository git 'https://github.com/marcsealights/java-gps-calorie-calculator.git' } } stage ("Adding Sealights") { steps { withCredentials([string(credentialsId: 'sl.token.dev.cs', variable: 'SL_TOKEN')]) { sh ''' echo -n "$SL_TOKEN" > sltoken.txt echo "Downloading Sealights Agent..." wget -nv https://agents.sealights.co/sealights-java/sealights-java-latest.zip unzip -oq sealights-java-latest.zip echo "Local agent version is now:" `cat sealights-java-version.txt` "\n" ''' } writeFile file: 'slmaven.json', text: '''\ |{ |{ | "executionType": "full", | "tokenFile": "sltoken.txt", | "createBuildSessionId": true, | "appName": "${env.JOB_NAME}", | "branchName": "${env.BRANCH_NAME}", | "buildName": "${env.BUILD_NUMBER}", | "packagesIncluded": "*info.puzz.*", //Specific to your app | "packagesExcluded": "", | "includeResources": true, | "testStage": "Unit Tests", | "sealightsJvmParams": { | "sl.scm.provider": "github", | "sl.scm.baseUrl": "https://github.com/marcsealights/java-gps-calorie-calculator/blob/", | "sl.scm.version": "GITHUBVERSION_VAR" | }, | "proxy": null, | "logEnabled": false, | "logDestination": "console", | "logLevel": "off" |} '''.stripMargin().stripIndent() script{ sh''' #export gitlabVersion=`curl https://mygitlab.mycompany.com/api/v4/version}, | "proxy": null, | "logEnabled": false, | "logDestination": "console", | "logLevel": "off" |} '''.stripMargin().stripIndent() script { if (true) { // Define SCM details env.scmOnPremProvider = "github" env.scmOnPremBaseUrl = "https://github.com/marcsealights/java-gps-calorie-calculator/blob/" env.scmOnPremVersion = '2.19.0' // Adjust as necessary // Dynamically set SCM version if needed // env.scmOnPremVersion = sh(script: 'curl -sI https://github.mycompany.com/api/v3 | grep Version | awk \'{print $2}\' | tr -d \'\\r\'', returnStdout: true).trim() //github // env.scmOnPremVersion = sh(script: 'curl -s https://mybitbucket.mycompany.com/rest/api/1.0/application-properties | jq -r .version`version', returnStdout: true).trim() //bitbucket export githubVersion='2.19.0' // env.scmOnPremVersion = sh(script: 'curl https://mygitlab.mycompany.com/api/v4/version | jq -r .version', returnStdout: true).trim() //gitlab sed -i "s~GITHUBVERSION_VAR~$githubVersion~" slmaven.json // Prepare the JSON modifier based on SCM details echo "Updating POM with Sealights..." env.OnPremJvmParam = "\"sealightsJvmParams\": { \"sl.scm.provider\": \"${env.scmOnPremProvider}\", \"sl.scm.baseUrl\": \"${env.scmOnPremBaseUrl}\", \"sl.scm.version\": \"${env.scmOnPremVersion}\" }," java// -jar sl-build-scanner.jar -pom -configfile slmaven.json -workspacepath . ''' Update slmaven.json by replacing the empty sealightsJvmParams object with OnPremJvmParam content sh """ sed -i '/"sealightsJvmParams": {},/c\\ ${env.OnPremJvmParam} ' slmaven.json """ } } script { // Attempt to update POM with Sealights configuration sh 'java -jar sl-build-scanner.jar -pom -configfile slmaven.json -workspacepath .' } } } stage('Build') { steps { // Run Maven with regular command sh "mvn clean package" } } } } |
...