60 lines
1.5 KiB
Groovy
60 lines
1.5 KiB
Groovy
// Work in progress
|
|
|
|
node {
|
|
|
|
try{
|
|
currentBuild.result = "SUCCESS"
|
|
def workspace = pwd()
|
|
def directory = "juju4.fprobe"
|
|
|
|
stage 'Clean Workspace'
|
|
deleteDir()
|
|
|
|
stage("Download source and capture commit ID") {
|
|
sh "mkdir $directory"
|
|
dir("$directory") {
|
|
checkout scm
|
|
// Get the commit ID
|
|
sh 'git rev-parse --verify HEAD > GIT_COMMIT'
|
|
git_commit = readFile('GIT_COMMIT').take(7)
|
|
echo "Current commit ID: ${git_commit}"
|
|
}
|
|
}
|
|
|
|
dir("$directory") {
|
|
|
|
stage("Get dependencies"){
|
|
sh "sh -x get-dependencies.sh"
|
|
}
|
|
stage("Build and verify 1"){
|
|
defaultplatform = sh (
|
|
script: '''#!/bin/bash
|
|
kitchen list | awk "!/Instance/ {print \\$1; exit}"
|
|
''',
|
|
returnStdout: true
|
|
).trim()
|
|
echo "default platform: ${defaultplatform}"
|
|
|
|
sh "kitchen test ${defaultplatform}"
|
|
// must keep instance for security testing after
|
|
//sh "kitchen verify ${defaultplatform}"
|
|
}
|
|
|
|
stage("Build and verify all platforms"){
|
|
sh "kitchen test"
|
|
}
|
|
|
|
stage("Cleanup if no errors"){
|
|
sh "kitchen destroy"
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch(err) {
|
|
currentBuild.result = "FAILURE"
|
|
throw err
|
|
}
|
|
}
|