blob: 861e9671471fe7756ba3aed15953c71ca2adb571 [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 Windelschmidtd7f59932024-07-24 23:37:03 +020054 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci run //:go -- mod tidy"
Tim Windelschmidt6c851e22024-01-11 15:23:48 +010055 sh "JENKINS_NODE_COOKIE=dontKillMe tools/bazel --bazelrc=.bazelrc.ci run //:gazelle -- update"
Serge Bazanski6feb7462021-05-18 15:49:15 +020056 }
57 post {
Jan Schär5d1bf6a2024-11-12 13:34:40 +010058 always {
59 script {
60 def diff = sh script: "git status --porcelain", returnStdout: true
61 if (diff.trim() != "") {
62 sh "git diff HEAD"
63 error """
64 Unclean working directory after running gazelle.
65 Please run:
66
67 \$ bazel mod tidy --lockfile_mode=update
68 \$ bazel run //:go -- mod tidy
69 \$ bazel run //:gazelle -- update
70
71 In your git checkout and amend the resulting diff to this changelist.
72 """
73 }
74 }
75 }
Serge Bazanski6feb7462021-05-18 15:49:15 +020076 success {
77 gerritCheck checks: ['jenkins:gazelle': 'SUCCESSFUL']
78 }
79 unsuccessful {
80 gerritCheck checks: ['jenkins:gazelle': 'FAILED']
81 }
82 }
83 }
84 }
Leopold Schabelf1bdfbe2022-05-26 22:43:42 +020085
86 post {
87 success {
88 gerritReview labels: [Verified: 1]
89 }
90 unsuccessful {
91 gerritReview labels: [Verified: -1]
92 }
93 }
Serge Bazanski6feb7462021-05-18 15:49:15 +020094 }
95 }
96}