blob: 02a3a98ff3598270067300482cc3956c5b2d8b2c [file] [log] [blame]
Serge Bazanski6feb7462021-05-18 15:49:15 +02001// This is a 'Jenkinsfile'-style declarative 'Pipeline' definition. It is
2// executed by Jenkins for presubmit checks, ie. checks that run against an
3// open Gerrit change request.
4
5pipeline {
6 agent none
Serge Bazanski3bb23212021-08-24 16:27:21 +02007 options {
8 disableConcurrentBuilds()
9 }
Serge Bazanski6feb7462021-05-18 15:49:15 +020010 stages {
11 stage('Parallel') {
12 parallel {
13 stage('Test') {
14 agent {
15 node {
16 label ""
17 customWorkspace '/home/ci/monogon'
18 }
19 }
20 steps {
21 gerritCheck checks: ['jenkins:test': 'RUNNING'], message: "Running on ${env.NODE_NAME}"
Leopold Schabelda3be1b2021-10-17 22:15:10 +020022 echo "Gerrit change: ${GERRIT_CHANGE_URL}"
Serge Bazanski6feb7462021-05-18 15:49:15 +020023 sh "git clean -fdx -e '/bazel-*'"
Tim Windelschmidt4e6eae22023-04-04 22:53:28 +020024 sh "JENKINS_NODE_COOKIE=dontKillMe bazelisk test //..."
Serge Bazanski88a76b72023-07-24 13:10:33 +020025 sh "JENKINS_NODE_COOKIE=dontKillMe bazelisk build --//metropolis/cli/metroctl:buildkind=lite --platforms=@io_bazel_rules_go//go/toolchain:darwin_arm64 //metropolis/cli/metroctl"
26 sh "JENKINS_NODE_COOKIE=dontKillMe bazelisk build --//metropolis/cli/metroctl:buildkind=lite --platforms=@io_bazel_rules_go//go/toolchain:darwin_amd64 //metropolis/cli/metroctl"
Tim Windelschmidt4e6eae22023-04-04 22:53:28 +020027 sh "JENKINS_NODE_COOKIE=dontKillMe bazelisk test -c dbg //..."
Serge Bazanski6feb7462021-05-18 15:49:15 +020028 }
29 post {
30 success {
31 gerritCheck checks: ['jenkins:test': 'SUCCESSFUL']
32 }
33 unsuccessful {
34 gerritCheck checks: ['jenkins:test': 'FAILED']
35 }
36 }
37 }
38
39 stage('Gazelle') {
40 agent {
41 node {
42 label ""
43 customWorkspace '/home/ci/monogon'
44 }
45 }
46 steps {
47 gerritCheck checks: ['jenkins:gazelle': 'RUNNING'], message: "Running on ${env.NODE_NAME}"
Leopold Schabelda3be1b2021-10-17 22:15:10 +020048 echo "Gerrit change: ${GERRIT_CHANGE_URL}"
Serge Bazanski6feb7462021-05-18 15:49:15 +020049 sh "git clean -fdx -e '/bazel-*'"
Tim Windelschmidt4e6eae22023-04-04 22:53:28 +020050 sh "JENKINS_NODE_COOKIE=dontKillMe bazelisk run //:gazelle-update-repos"
51 sh "JENKINS_NODE_COOKIE=dontKillMe bazelisk run //:gazelle -- update"
52 sh "JENKINS_NODE_COOKIE=dontKillMe bazelisk run //:go -- mod tidy"
Serge Bazanski6feb7462021-05-18 15:49:15 +020053
54 script {
55 def diff = sh script: "git status --porcelain", returnStdout: true
56 if (diff.trim() != "") {
57 sh "git diff HEAD"
58 error """
Lorenz Brund13c1c62022-03-30 19:58:58 +020059 Unclean working directory after running gazelle.
Serge Bazanski6feb7462021-05-18 15:49:15 +020060 Please run:
61
Serge Bazanskiee4bfdb2022-04-06 15:30:52 +020062 \$ bazel run //:gazelle-update-repos
Serge Bazanski6feb7462021-05-18 15:49:15 +020063 \$ bazel run //:gazelle -- update
64
65 In your git checkout and amend the resulting diff to this changelist.
66 """
67 }
68 }
69 }
70 post {
71 success {
72 gerritCheck checks: ['jenkins:gazelle': 'SUCCESSFUL']
73 }
74 unsuccessful {
75 gerritCheck checks: ['jenkins:gazelle': 'FAILED']
76 }
77 }
78 }
79 }
Leopold Schabelf1bdfbe2022-05-26 22:43:42 +020080
81 post {
82 success {
83 gerritReview labels: [Verified: 1]
84 }
85 unsuccessful {
86 gerritReview labels: [Verified: -1]
87 }
88 }
Serge Bazanski6feb7462021-05-18 15:49:15 +020089 }
90 }
91}