blob: c6581338e980592beb6c70d5161786c3b49c0aa3 [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 Windelschmidt6c851e22024-01-11 15:23:48 +010024 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci test //..."
25 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci build --//metropolis/cli/metroctl:buildkind=lite --platforms=@io_bazel_rules_go//go/toolchain:darwin_arm64 //metropolis/cli/metroctl"
26 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci build --//metropolis/cli/metroctl:buildkind=lite --platforms=@io_bazel_rules_go//go/toolchain:darwin_amd64 //metropolis/cli/metroctl"
Timon Stampfli742fde72024-12-15 16:39:31 +010027 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci build --//metropolis/cli/metroctl:buildkind=lite --platforms=@io_bazel_rules_go//go/toolchain:windows_arm64 //metropolis/cli/metroctl"
28 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci build --//metropolis/cli/metroctl:buildkind=lite --platforms=@io_bazel_rules_go//go/toolchain:windows_amd64 //metropolis/cli/metroctl"
Tim Windelschmidt6c851e22024-01-11 15:23:48 +010029 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci test --config dbg //..."
Tim Windelschmidt3a171d12024-12-09 23:51:23 +010030 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci test --config race //..."
Serge Bazanski6feb7462021-05-18 15:49:15 +020031 }
32 post {
33 success {
34 gerritCheck checks: ['jenkins:test': 'SUCCESSFUL']
35 }
36 unsuccessful {
37 gerritCheck checks: ['jenkins:test': 'FAILED']
38 }
39 }
40 }
41
42 stage('Gazelle') {
43 agent {
44 node {
45 label ""
46 customWorkspace '/home/ci/monogon'
47 }
48 }
49 steps {
50 gerritCheck checks: ['jenkins:gazelle': 'RUNNING'], message: "Running on ${env.NODE_NAME}"
Leopold Schabelda3be1b2021-10-17 22:15:10 +020051 echo "Gerrit change: ${GERRIT_CHANGE_URL}"
Serge Bazanski6feb7462021-05-18 15:49:15 +020052 sh "git clean -fdx -e '/bazel-*'"
Jan Schär5d1bf6a2024-11-12 13:34:40 +010053 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci mod tidy --lockfile_mode=update"
Tim Windelschmidt156248b2025-01-10 00:27:45 +010054 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci run //:tidy"
Serge Bazanski6feb7462021-05-18 15:49:15 +020055 }
56 post {
Jan Schär5d1bf6a2024-11-12 13:34:40 +010057 always {
58 script {
59 def diff = sh script: "git status --porcelain", returnStdout: true
60 if (diff.trim() != "") {
61 sh "git diff HEAD"
62 error """
63 Unclean working directory after running gazelle.
64 Please run:
65
66 \$ bazel mod tidy --lockfile_mode=update
Tim Windelschmidt156248b2025-01-10 00:27:45 +010067 \$ bazel run //:tidy
Jan Schär5d1bf6a2024-11-12 13:34:40 +010068
69 In your git checkout and amend the resulting diff to this changelist.
70 """
71 }
72 }
73 }
Serge Bazanski6feb7462021-05-18 15:49:15 +020074 success {
75 gerritCheck checks: ['jenkins:gazelle': 'SUCCESSFUL']
76 }
77 unsuccessful {
78 gerritCheck checks: ['jenkins:gazelle': 'FAILED']
79 }
80 }
81 }
82 }
Leopold Schabelf1bdfbe2022-05-26 22:43:42 +020083
84 post {
85 success {
86 gerritReview labels: [Verified: 1]
87 }
88 unsuccessful {
89 gerritReview labels: [Verified: -1]
90 }
91 }
Serge Bazanski6feb7462021-05-18 15:49:15 +020092 }
93 }
94}