blob: 5aa8082e9b3c978f518e54f8410e246f5e2911e7 [file] [log] [blame]
pipeline {
options { skipDefaultCheckout true }
agent { label 'bazel-debian' }
stages {
stage('Checkout') {
steps {
sh "git clone -b ${env.GERRIT_BRANCH} https://gerrit.googlesource.com/plugins/zookeeper-refdb"
sh "cd zookeeper-refdb && git fetch origin refs/changes/${BRANCH_NAME} && git merge FETCH_HEAD"
}
}
stage('Formatting') {
steps {
gerritCheck (checks: ['gerritforge:zookeeper-refdb-format-8b1e7fb8ce34448cc425': 'RUNNING'], url: "${env.BUILD_URL}console")
sh "find zookeeper-refdb -name '*.java' | xargs /home/jenkins/format/google-java-format-1.7 -i"
script {
def formatOut = sh (script: 'cd zookeeper-refdb && git status --porcelain', returnStdout: true)
if (formatOut.trim()) {
def files = formatOut.split('\n').collect { it.split(' ').last() }
files.each { gerritComment path:it, message: 'Needs reformatting with GJF' }
gerritCheck (checks: ['gerritforge:zookeeper-refdb-format-8b1e7fb8ce34448cc425': 'FAILED'], url: "${env.BUILD_URL}console")
} else {
gerritCheck (checks: ['gerritforge:zookeeper-refdb-format-8b1e7fb8ce34448cc425': 'SUCCESSFUL'], url: "${env.BUILD_URL}console")
}
}
}
}
stage('build') {
environment {
DOCKER_HOST = """${sh(
returnStdout: true,
script: "/sbin/ip route|awk '/default/ {print \"tcp://\"\$3\":2375\"}'"
)}"""
}
steps {
gerritCheck (checks: ['gerritforge:zookeeper-refdb-8b1e7fb8ce34448cc425': 'RUNNING'], url: "${env.BUILD_URL}console")
sh 'git clone --recursive -b $GERRIT_BRANCH https://gerrit.googlesource.com/gerrit'
sh 'cd gerrit/plugins && ln -sf ../../zookeeper-refdb . && ln -sf zookeeper-refdb/external_plugin_deps.bzl .'
dir ('gerrit') {
sh 'bazelisk build plugins/zookeeper-refdb'
sh 'bazelisk test --test_env DOCKER_HOST=$DOCKER_HOST plugins/zookeeper-refdb:zookeeper-refdb_tests'
}
}
}
}
post {
success {
gerritCheck (checks: ['gerritforge:zookeeper-refdb-8b1e7fb8ce34448cc425': 'SUCCESSFUL'], url: "${env.BUILD_URL}console")
}
unstable {
gerritCheck (checks: ['gerritforge:zookeeper-refdb-8b1e7fb8ce34448cc425': 'FAILED'], url: "${env.BUILD_URL}console")
}
failure {
gerritCheck (checks: ['gerritforge:zookeeper-refdb-8b1e7fb8ce34448cc425': 'FAILED'], url: "${env.BUILD_URL}console")
}
}
}