forked from TritonDataCenter/triton-cmon-agent
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Jenkinsfile
98 lines (88 loc) · 2.88 KB
/
Jenkinsfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
/*
* Copyright 2021 Joyent, Inc.
*/
@Library('[email protected]') _
pipeline {
agent {
label joyCommonLabels(image_ver: '15.4.1')
}
options {
buildDiscarder(logRotator(numToKeepStr: '90'))
timestamps()
}
parameters {
booleanParam(
name: 'TRIGGER_AGENTS_INSTALLER_BUILD',
defaultValue: true,
description:
'After a build of this agent, by default we trigger a build ' +
'of the master branch of sdc-agents-installer, so that this ' +
'agent can be tested in a Triton instance. Uncheck this to ' +
'prevent that build from being triggered.'
)
}
stages {
stage('check') {
steps{
sh('make check')
}
}
// avoid bundling devDependencies
stage('re-clean') {
steps {
sh('git clean -fdx')
}
}
stage('build image and upload') {
steps {
sh('''
set -o errexit
set -o pipefail
export ENGBLD_BITS_UPLOAD_IMGAPI=true
make print-BRANCH print-STAMP all release publish bits-upload''')
}
}
stage('agentsshar') {
// For release branch builds, we'll wait for the
// sdc-agents-installer build to run on its own.
// Otherwise if we were to trigger a release-* branch build at this
// point, we can't guarantee all agent builds have completed.
// Eventually it would be good to have a pipeline that builds all
// agents in parallel, and then the agents-installer. In that case,
// callers should explicitly set the TRIGGER_AGENTS_INSTALLER build
// to 'false'
// For normal development, it's fine to always trigger the master
// sdc-agents-installer build.
when {
not {
anyOf {
branch 'release-*'
environment name: 'TRIGGER_AGENTS_INSTALLER_BUILD', value: 'false'
}
}
}
steps {
build(
job:'joyent-org/sdc-agents-installer/master',
wait: false,
propagate: false,
parameters: [
[$class: 'StringParameterValue',
name: 'BUILDNAME',
value: env.BRANCH_NAME + ' master',
]
])
}
}
}
post {
always {
joySlackNotifications(channel: 'jenkins')
}
}
}