![](/img/trans.png)
[英]how to call parameters from groovy map script to Jenkins Pipeline
[英]Sort map by value in Groovy jenkins pipeline script
如何在 Jekins 管道脚本中按值对Map
进行自定义排序?
此代码在 Jenkins 管道脚本中不太适用:
Map m =[ james :"silly boy",
janny :"Crazy girl",
jimmy :"funny man",
georges:"massive fella" ]
Map sorted = m.sort { a, b -> a.value <=> b.value }
map 仍未排序。
我决定用更好的名称和标签创建一个单独的问题,因为很多人都在努力在这里找到答案: Groovy custom sort a map by value
为此,您必须使用@NonCPS
注释创建一个单独的方法:
@NonCPS
def getSorted(def toBeSorted){
toBeSorted.sort(){ a, b -> b.value <=> a.value }
}
然后从管道脚本中调用它。
Map unsortedMap =[ james :"silly boy",
janny :"Crazy girl",
jimmy :"funny man",
georges:"massive fella" ]
def sortedMap = getSorted(unsortedMap)
pipeline {
agent {
kubernetes {
inheritFrom 'seunggabi-batch'
defaultContainer 'seunggabi-batch'
}
}
environment {
COUNTRY = "kr"
ENV = "prod"
CLASS = "seunggabi.batch.job.SparkSubmitJob"
}
stages {
stage('Run Job') {
steps {
script {
ARGS = sorted(params).collect { /$it.value/ } join ","
}
sh "/app/static/sh/emr.sh 1 20 ${COUNTRY} ${ENV} ${CLASS} \"${ARGS}\""
}
}
}
}
@NonCPS
def sorted(def m){
m.sort { /$it.key/ }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.