blob: c0162c6b1773221d0d6b941428b1ce051b95a3d7 [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-*'"
Leopoldbc93c2b2023-01-14 13:12:23 +010024 sh "JENKINS_NODE_COOKIE=dontKillMe ~/bazelisk test //..."
25 sh "JENKINS_NODE_COOKIE=dontKillMe ~/bazelisk test -c dbg //..."
Serge Bazanski6feb7462021-05-18 15:49:15 +020026 }
27 post {
28 success {
29 gerritCheck checks: ['jenkins:test': 'SUCCESSFUL']
30 }
31 unsuccessful {
32 gerritCheck checks: ['jenkins:test': 'FAILED']
33 }
34 }
35 }
36
37 stage('Gazelle') {
38 agent {
39 node {
40 label ""
41 customWorkspace '/home/ci/monogon'
42 }
43 }
44 steps {
45 gerritCheck checks: ['jenkins:gazelle': 'RUNNING'], message: "Running on ${env.NODE_NAME}"
Leopold Schabelda3be1b2021-10-17 22:15:10 +020046 echo "Gerrit change: ${GERRIT_CHANGE_URL}"
Serge Bazanski6feb7462021-05-18 15:49:15 +020047 sh "git clean -fdx -e '/bazel-*'"
Leopoldbc93c2b2023-01-14 13:12:23 +010048 sh "JENKINS_NODE_COOKIE=dontKillMe ~/bazelisk run //:gazelle-update-repos"
49 sh "JENKINS_NODE_COOKIE=dontKillMe ~/bazelisk run //:gazelle -- update"
Leopoldd6397762023-01-31 18:16:07 +010050 sh "JENKINS_NODE_COOKIE=dontKillMe ~/bazelisk run //:go -- mod tidy"
Serge Bazanski6feb7462021-05-18 15:49:15 +020051
52 script {
53 def diff = sh script: "git status --porcelain", returnStdout: true
54 if (diff.trim() != "") {
55 sh "git diff HEAD"
56 error """
Lorenz Brund13c1c62022-03-30 19:58:58 +020057 Unclean working directory after running gazelle.
Serge Bazanski6feb7462021-05-18 15:49:15 +020058 Please run:
59
Serge Bazanskiee4bfdb2022-04-06 15:30:52 +020060 \$ bazel run //:gazelle-update-repos
Serge Bazanski6feb7462021-05-18 15:49:15 +020061 \$ bazel run //:gazelle -- update
62
63 In your git checkout and amend the resulting diff to this changelist.
64 """
65 }
66 }
67 }
68 post {
69 success {
70 gerritCheck checks: ['jenkins:gazelle': 'SUCCESSFUL']
71 }
72 unsuccessful {
73 gerritCheck checks: ['jenkins:gazelle': 'FAILED']
74 }
75 }
76 }
77 }
Leopold Schabelf1bdfbe2022-05-26 22:43:42 +020078
79 post {
80 success {
81 gerritReview labels: [Verified: 1]
82 }
83 unsuccessful {
84 gerritReview labels: [Verified: -1]
85 }
86 }
Serge Bazanski6feb7462021-05-18 15:49:15 +020087 }
88 }
89}