[DO-1652] refactoring eva create link (!87)

Co-authored-by: Rustam Tagaev <rustam.tagaev@avroid.tech>
Reviewed-on: https://git.avroid.tech/DevOps/jenkins-pipelines/pulls/87
Reviewed-by: Vasiliy Chipizhin <vasiliy.chipizhin@avroid.team>
Reviewed-by: Denis Patrakeev <denis.patrakeev@avroid.team>
This commit is contained in:
Rustam Tagaev
2025-03-03 14:52:43 +03:00
parent 64f8ae8819
commit 212b114bc7

View File

@@ -1,36 +1,21 @@
@Library('shared-lib') _ @Library('shared-lib') _
import tech.avroid.api.Eva import tech.avroid.eva.Eva
import tech.avroid.kube.PodTemplates
import tech.avroid.jenkins.Notifications
properties([ properties([
buildDiscarder(logRotator(artifactNumToKeepStr: '10', buildDiscarder(logRotator(artifactNumToKeepStr: '10', numToKeepStr: '10')),
numToKeepStr: '10')),
parameters([ parameters([
string(name: 'DATA_JSON', defaultValue: '') string(name: 'DATA_JSON', defaultValue: '')
]) ])
]) ])
podTemplate(workspaceVolume: emptyDirWorkspaceVolume(memory: false), slaveTemplates = new PodTemplates(this, env.JENKINS_DOCKER_REGISTRY, ["${env.JENKINS_K8S_HARBOR_SECRET}"])
yaml: """
apiVersion: v1 slaveTemplates.jnlp {
kind: Pod slaveTemplates.poetry {
spec: slaveTemplates.docker {
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) { node(POD_LABEL) {
try { try {
stage('Add PR link to Eva task') { stage('Add PR link to Eva task') {
@@ -40,6 +25,7 @@ podTemplate(workspaceVolume: emptyDirWorkspaceVolume(memory: false),
// Eva Api adds name with Spaces, but returnes 500 response code // Eva Api adds name with Spaces, but returnes 500 response code
String prName = dataJSON.pull_request.title.replace(' ','_') String prName = dataJSON.pull_request.title.replace(' ','_')
List prTasks = prName.findAll(taskPattern) List prTasks = prName.findAll(taskPattern)
Eva eva = new Eva(this, env.JENKINS_EVA_URL, env.JENKINS_EVA_CREDENTIALS) Eva eva = new Eva(this, env.JENKINS_EVA_URL, env.JENKINS_EVA_CREDENTIALS)
if (prTasks.isEmpty()) { if (prTasks.isEmpty()) {
@@ -47,20 +33,35 @@ podTemplate(workspaceVolume: emptyDirWorkspaceVolume(memory: false),
} }
prTasks.each { String taskCode -> prTasks.each { String taskCode ->
String taskId = eva.getTaskId(taskCode) Map task = eva.getTaskInfo(taskCode)
if (taskId) { if (task.id) {
eva.createLink(taskId, prName, prLink) eva.createLink(task.id, prName, prLink)
println "Eva task $taskCode linked with PR $prLink" println "Eva task $taskCode linked with PR $prLink"
} else { } else {
println "Eva task $taskCode doesn't exist" println "Eva task $taskCode doesn't exist"
} }
} }
} }
} } catch(err) {
catch(err) { errorMessage = err.getMessage()
echo 'ERROR: ' + err.getMessage()
println 'ERROR: ' + errorMessage
currentBuild.result = 'FAILURE' currentBuild.result = 'FAILURE'
String currentBuildUser = Jenkins.GetCurrentBuildUser(script: this)
String subject = "${currentBuild.currentResult}. Pipeline task: ${currentBuild.fullDisplayName}"
Notifications.email(
script: this,
subject: subject,
errorString: errorMessage,
recipientProviders: [],
to: "${currentBuildUser}@avroid.team"
)
}
}
} }
} }
} }