...
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.agenttoken.dev.tokencs', variable: 'SL_TOKEN')]) { sh ''' echo -n "$SL_TOKEN" > sltoken.txt echo "Downloading Sealights Latest 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" ''' } scriptwriteFile { shfile: 'slmaven.json', text: '''\ echo '|{ | "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": "", | "filesIncluded"includeResources": "*.class"true, | "filesExcluded"testStage": "*test-classes*Unit Tests", | "recursivesealightsJvmParams": true{}, | "includeResourcesproxy": truenull, | "testStage"logEnabled": "Unit Tests"false, | "labIdlogDestination": null"console", | "logEnabledlogLevel": false,"off" |} "logDestination": "console", '''.stripMargin().stripIndent() script { if (true) { // Define SCM details env.scmOnPremProvider = "github" env.scmOnPremBaseUrl = "logLevel": "off", "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 "logFolder": "/tmp", "sealightsJvmParams": {}, "enabled": true }' > slmaven.json echo "Updating POM with Sealights..." 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', returnStdout: true).trim() //bitbucket // env.scmOnPremVersion = sh(script: 'curl https://mygitlab.mycompany.com/api/v4/version | jq -r .version', returnStdout: true).trim() //gitlab // Prepare the JSON modifier based on SCM details env.OnPremJvmParam = "\"sealightsJvmParams\": { \"sl.scm.provider\": \"${env.scmOnPremProvider}\", \"sl.scm.baseUrl\": \"${env.scmOnPremBaseUrl}\", \"sl.scm.version\": \"${env.scmOnPremVersion}\" }," // 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" } } } } |
...