| // This is a 'Jenkinsfile'-style declarative 'Pipeline' definition. It is | 
 | // executed by Jenkins for presubmit checks, ie. checks that run against an | 
 | // open Gerrit change request. | 
 |  | 
 | pipeline { | 
 |     agent none | 
 |     stages { | 
 |         stage('Parallel') { | 
 |             parallel { | 
 |                 stage('Test') { | 
 |                     agent { | 
 |                         node { | 
 |                             label "" | 
 |                             customWorkspace '/home/ci/monogon' | 
 |                         } | 
 |                     } | 
 |                     steps { | 
 |                         gerritCheck checks: ['jenkins:test': 'RUNNING'], message: "Running on ${env.NODE_NAME}" | 
 |                         sh "git clean -fdx -e '/bazel-*'" | 
 |                         sh "bazel test //..." | 
 |                         sh "bazel test -c dbg //..." | 
 |                     } | 
 |                     post { | 
 |                         success { | 
 |                             gerritCheck checks: ['jenkins:test': 'SUCCESSFUL'] | 
 |                         } | 
 |                         unsuccessful { | 
 |                             gerritCheck checks: ['jenkins:test': 'FAILED'] | 
 |                         } | 
 |                     } | 
 |                 } | 
 |  | 
 |                 stage('Gazelle') { | 
 |                     agent { | 
 |                         node { | 
 |                             label "" | 
 |                             customWorkspace '/home/ci/monogon' | 
 |                         } | 
 |                     } | 
 |                     steps { | 
 |                         gerritCheck checks: ['jenkins:gazelle': 'RUNNING'], message: "Running on ${env.NODE_NAME}" | 
 |                         sh "git clean -fdx -e '/bazel-*'" | 
 |                         sh "bazel run //:fietsje" | 
 |                         sh "bazel run //:gazelle -- update" | 
 |  | 
 |                         script { | 
 |                             def diff = sh script: "git status --porcelain", returnStdout: true | 
 |                             if (diff.trim() != "") { | 
 |                                 sh "git diff HEAD" | 
 |                                 error """ | 
 |                                     Unclean working directory after running gazelle and Fietsje. | 
 |                                     Please run: | 
 |  | 
 |                                        \$ bazel run //:fietsje | 
 |                                        \$ bazel run //:gazelle -- update | 
 |  | 
 |                                     In your git checkout and amend the resulting diff to this changelist. | 
 |                                 """ | 
 |                             } | 
 |                         } | 
 |                     } | 
 |                     post { | 
 |                         success { | 
 |                             gerritCheck checks: ['jenkins:gazelle': 'SUCCESSFUL'] | 
 |                         } | 
 |                         unsuccessful { | 
 |                             gerritCheck checks: ['jenkins:gazelle': 'FAILED'] | 
 |                         } | 
 |                     } | 
 |                 } | 
 |             } | 
 |         } | 
 |     } | 
 | } |