Reviewed-on: https://git.avroid.tech/DevOps/jenkins-pipelines/pulls/20 Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech> Co-committed-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech>
69 lines
2.1 KiB
Groovy
69 lines
2.1 KiB
Groovy
@Library('shared-lib') _
|
|
|
|
import tech.avroid.api.Eva
|
|
|
|
properties([
|
|
buildDiscarder(logRotator(artifactNumToKeepStr: '10',
|
|
numToKeepStr: '10')),
|
|
parameters([
|
|
string(name: 'DATA_JSON', defaultValue: '')
|
|
])
|
|
])
|
|
|
|
podTemplate(workspaceVolume: hostPathWorkspaceVolume(hostPath: "/data"),
|
|
yaml: """
|
|
apiVersion: v1
|
|
kind: Pod
|
|
spec:
|
|
containers:
|
|
- name: alpine
|
|
image: ${env.JENKINS_DOCKER_REGISTRY}/docker-hub-proxy/library/alpine:3.18.5
|
|
command:
|
|
- sleep
|
|
args:
|
|
- 99d
|
|
resources:
|
|
limits:
|
|
cpu: 100m
|
|
memory: 64Mi
|
|
requests:
|
|
cpu: 100m
|
|
memory: 64Mi
|
|
"""
|
|
) {
|
|
node(POD_LABEL) {
|
|
try {
|
|
stage('Add PR link to Eva task') {
|
|
Map dataJSON = readJSON text: params.DATA_JSON
|
|
String prLink = dataJSON.pull_request.url
|
|
String taskPattern = '[A-Z]+(-[A-Z]+)?-[0-9]+'
|
|
// Eva Api adds name with Spaces, but returnes 500 response code
|
|
String prName = dataJSON.pull_request.title.replace(' ','_')
|
|
List prTasks = prName.findAll(taskPattern)
|
|
Eva eva = new Eva(this, env.JENKINS_EVA_URL, env.JENKINS_EVA_CREDENTIALS)
|
|
|
|
if (prTasks.isEmpty()) {
|
|
prTasks = dataJSON.pull_request.body.findAll(taskPattern)
|
|
}
|
|
|
|
prTasks.each { String taskCode ->
|
|
String taskId = eva.getTaskId(taskCode)
|
|
|
|
if (taskId) {
|
|
eva.createLink(taskId, prName, prLink)
|
|
println "Eva task $taskCode linked with PR $prLink"
|
|
} else {
|
|
println "Eva task $taskCode doesn't exist"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch(err) {
|
|
echo 'ERROR: ' + err.getMessage()
|
|
currentBuild.result = 'FAILURE'
|
|
} finally {
|
|
cleanWs()
|
|
}
|
|
}
|
|
}
|