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
script { echo "Local agent version is now:" sh '''`cat sealights-java-version.txt` "\n"
'''
echo '{ }
"tokenFile": "sltoken.txt",
"createBuildSessionId": true, writeFile file: 'slmaven.json', text: '''\
"appName": "${env.JOB_NAME}", |{
| "branchNameexecutionType": "masterfull",
| "buildNametokenFile": "${env.BUILD_NUMBER}sltoken.txt",
| "packagesIncludedcreateBuildSessionId": "*info.puzz.*"true,
| "packagesExcludedappName": "${env.JOB_NAME}",
| "filesIncludedbranchName": "*.class${env.BRANCH_NAME}",
| "filesExcludedbuildName": "*test-classes*${env.BUILD_NUMBER}",
| "recursivepackagesIncluded": true"*info.puzz.*", //Specific to your app
"includeResources": true,
"testStage | "packagesExcluded": "Unit Tests",
| "labIdincludeResources": nulltrue,
| "executionTypetestStage": "fullUnit Tests",
| "logEnabledsealightsJvmParams": true{},
| "logDestinationproxy": "console"null,
| "logLevellogEnabled": "error"false,
| "logFolderlogDestination": "/tmpconsole",
| "sealightsJvmParamslogLevel": {},"off"
|}
"enabled": true '''.stripMargin().stripIndent()
script {
if (true) {
// Define SCM }' > slmaven.json
set +x
echo "Downloading Sealights Latest Agent..."
wget -nv https://agents.sealights.co/sealights-java/sealights-java-latest.zip
unzip -o sealights-java-latest.zip
echo "Local agent version is now:" `cat sealights-java-version.txt`
echo
echo "Updating POM with Sealights..."
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', 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"
}
}
}
} |