-
Notifications
You must be signed in to change notification settings - Fork 23
/
Copy pathJenkinsfile
57 lines (53 loc) · 1.37 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
pipeline {
agent {
label 'rbhe'
}
stages {
stage('SDLE Upload') {
when {
anyOf {
allOf {
expression { env.GIT_BRANCH == 'main' }
expression { common.isSdleUploadCommit() }
}
triggeredBy 'UserIdCause'
}
}
steps {
script {
parallel getStages('sdle.yaml')
}
}
}
}
post {
cleanup {
cleanWs()
}
}
}
def getStages(filename) {
def projects = readYaml file: filename
def stages = projects.collectEntries {
["${it.repo}" : generateStage(it)]
}
stages
}
def generateStage(project) {
return {
stage("${project.repo}") {
// ensure isolated workspace for each project
ws {
sh 'rm -rf artifacts/'
downloadGHArtifacts([
projectOwner: project.owner,
projectRepo: project.repo,
projectBranch: project.branch,
projectArtifacts: project.artifacts,
projectFolders: project.folders])
sdleUpload([
sdleUploadProjectId: project.sdle_project_id])
}
}
}
}