blob: 552e75ecfbd10aa316f022072360778df5dcae1e [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 {
Tim Windelschmidta16e6f92025-07-16 23:48:18 +02008 disableConcurrentBuilds(abortPrevious: true)
9 parallelsAlwaysFailFast()
Serge Bazanski3bb23212021-08-24 16:27:21 +020010 }
Serge Bazanski6feb7462021-05-18 15:49:15 +020011 stages {
Tim Windelschmidta16e6f92025-07-16 23:48:18 +020012 stage('Gazelle') {
13 agent {
14 node {
15 label ""
16 customWorkspace '/home/ci/monogon'
17 }
18 }
19 steps {
20 gerritCheck checks: ['jenkins:gazelle': 'RUNNING'], message: "Running on ${env.NODE_NAME}"
21 echo "Gerrit change: ${GERRIT_CHANGE_URL}"
22 sh "git clean -fdx -e '/bazel-*'"
23 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci mod tidy --lockfile_mode=update"
24 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci run //:tidy"
25 }
26 post {
27 always {
28 script {
29 def diff = sh script: "git status --porcelain", returnStdout: true
30 if (diff.trim() != "") {
31 sh "git diff HEAD"
32 error """
33 Unclean working directory after running gazelle.
34 Please run:
35
36 \$ bazel mod tidy --lockfile_mode=update
37 \$ bazel run //:tidy
38
39 In your git checkout and amend the resulting diff to this changelist.
40 """
41 }
42 }
43 }
44 success {
45 gerritCheck checks: ['jenkins:gazelle': 'SUCCESSFUL']
46 }
47 unsuccessful {
48 gerritCheck checks: ['jenkins:gazelle': 'FAILED']
49 }
50 }
51 }
Serge Bazanski6feb7462021-05-18 15:49:15 +020052 stage('Parallel') {
53 parallel {
Tim Windelschmidta16e6f92025-07-16 23:48:18 +020054 stage('Test - Default') {
Serge Bazanski6feb7462021-05-18 15:49:15 +020055 agent {
56 node {
57 label ""
58 customWorkspace '/home/ci/monogon'
59 }
60 }
61 steps {
Tim Windelschmidta16e6f92025-07-16 23:48:18 +020062 gerritCheck checks: ['jenkins:test_default': 'RUNNING'], message: "Running on ${env.NODE_NAME}"
Leopold Schabelda3be1b2021-10-17 22:15:10 +020063 echo "Gerrit change: ${GERRIT_CHANGE_URL}"
Serge Bazanski6feb7462021-05-18 15:49:15 +020064 sh "git clean -fdx -e '/bazel-*'"
Tim Windelschmidta16e6f92025-07-16 23:48:18 +020065
Tim Windelschmidt6c851e22024-01-11 15:23:48 +010066 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci test //..."
Tim Windelschmidta16e6f92025-07-16 23:48:18 +020067 }
68 post {
69 success {
70 gerritCheck checks: ['jenkins:test_default': 'SUCCESSFUL']
71 }
72 unsuccessful {
73 gerritCheck checks: ['jenkins:test_default': 'FAILED']
74 }
75 }
76 }
77 stage('Test - Debug') {
78 agent {
79 node {
80 label ""
81 customWorkspace '/home/ci/monogon'
82 }
83 }
84 steps {
85 gerritCheck checks: ['jenkins:test_debug': 'RUNNING'], message: "Running on ${env.NODE_NAME}"
86 echo "Gerrit change: ${GERRIT_CHANGE_URL}"
87 sh "git clean -fdx -e '/bazel-*'"
88
Tim Windelschmidt6c851e22024-01-11 15:23:48 +010089 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci test --config dbg //..."
Tim Windelschmidta16e6f92025-07-16 23:48:18 +020090 }
91 post {
92 success {
93 gerritCheck checks: ['jenkins:test_debug': 'SUCCESSFUL']
94 }
95 unsuccessful {
96 gerritCheck checks: ['jenkins:test_debug': 'FAILED']
97 }
98 }
99 }
100 stage('Test - Race') {
101 agent {
102 node {
103 label ""
104 customWorkspace '/home/ci/monogon'
105 }
106 }
107 steps {
108 gerritCheck checks: ['jenkins:test_race': 'RUNNING'], message: "Running on ${env.NODE_NAME}"
109 echo "Gerrit change: ${GERRIT_CHANGE_URL}"
110 sh "git clean -fdx -e '/bazel-*'"
111
Tim Windelschmidt3a171d12024-12-09 23:51:23 +0100112 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci test --config race //..."
Serge Bazanski6feb7462021-05-18 15:49:15 +0200113 }
114 post {
115 success {
Tim Windelschmidta16e6f92025-07-16 23:48:18 +0200116 gerritCheck checks: ['jenkins:test_race': 'SUCCESSFUL']
Serge Bazanski6feb7462021-05-18 15:49:15 +0200117 }
118 unsuccessful {
Tim Windelschmidta16e6f92025-07-16 23:48:18 +0200119 gerritCheck checks: ['jenkins:test_race': 'FAILED']
Serge Bazanski6feb7462021-05-18 15:49:15 +0200120 }
121 }
122 }
Leopold Schabelf1bdfbe2022-05-26 22:43:42 +0200123 }
Serge Bazanski6feb7462021-05-18 15:49:15 +0200124 }
125 }
Tim Windelschmidta16e6f92025-07-16 23:48:18 +0200126 post {
127 success {
128 gerritReview labels: [Verified: 1]
129 }
130 unsuccessful {
131 gerritReview labels: [Verified: -1]
132 }
133 }
134}