-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathJenkinsfile
89 lines (80 loc) · 2.54 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
/*
* 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.
* Copyright 2022 MNX Cloud, Inc.
*/
@Library('[email protected]') _
pipeline {
agent {
label joyCommonLabels(image_ver: '1.6.3', pkgsrc_arch: 'i386')
}
options {
buildDiscarder(logRotator(numToKeepStr: '30'))
timestamps()
}
parameters {
string(
name: 'AGENT_PREBUILT_AGENT_BRANCH',
defaultValue: '',
description: 'The branch to use for the agents ' +
'that are included in this component.<br/>' +
'With an empty value, the build will look for ' +
'agents from the same branch name as the ' +
'component, before falling back to "master".'
)
}
stages {
stage('check') {
steps{
sh('make check')
}
}
// avoid bundling devDependencies
stage('re-clean') {
steps {
sh('git clean -fdx')
}
}
stage('build image and upload') {
steps {
joyBuildImageAndUpload()
}
}
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.
// For normal development, it's fine to always trigger the master
// sdc-agents-installer build.
when {
not {
branch 'release-*'
}
}
steps {
build(
job:'TritonDataCenter/sdc-agents-installer/master',
wait: false,
propagate: false,
parameters: [
[$class: 'StringParameterValue',
name: 'BUILDNAME',
value: env.BRANCH_NAME + ' master',
]
])
}
}
}
post {
always {
joySlackNotifications(channel: 'jenkins')
}
}
}