corda/.ci/dev/pr-code-checks/Jenkinsfile
2020-05-29 13:08:00 +01:00

70 lines
1.9 KiB
Groovy

@Library('corda-shared-build-pipeline-steps')
import static com.r3.build.BuildControl.killAllExistingBuildsForJob
killAllExistingBuildsForJob(env.JOB_NAME, env.BUILD_NUMBER.toInteger())
pipeline {
agent { label 'k8s' }
options {
timestamps()
timeout(time: 3, unit: 'HOURS')
}
environment {
PR_CONTEXT_STRING = "PR Code Checks"
}
stages {
stage('Detekt check') {
steps {
script {
pullRequest.createStatus(
status: 'pending',
context: "${PR_CONTEXT_STRING}",
description: "Running code checks",
targetUrl: "${env.BUILD_URL}")
}
sh "./gradlew --no-daemon clean detekt"
}
}
stage('Compilation warnings check') {
steps {
sh "./gradlew --no-daemon -Pcompilation.warningsAsErrors=true compileAll"
}
}
stage('No API change check') {
steps {
sh "./gradlew --no-daemon generateApi"
sh ".ci/check-api-changes.sh"
}
}
}
post {
success {
script {
pullRequest.createStatus(
status: 'success',
context: "${PR_CONTEXT_STRING}",
description: 'Code checks passed',
targetUrl: "${env.BUILD_URL}")
}
}
failure {
script {
pullRequest.createStatus(
status: 'failure',
context: "${PR_CONTEXT_STRING}",
description: 'Code checks failed',
targetUrl: "${env.BUILD_URL}")
}
}
cleanup {
deleteDir() /* clean up our workspace */
}
}
}