Jenkins 파이프 라인의 개체 목록을 정렬하려고합니다. 젠킨스 서버에 난 동안Jenkins Pipelines의 정렬 목록 나열
pipeline {
agent any
stages {
stage('default'){
steps {
script {
@NonCPS
def nonCpsTest = {
def list = [
['CreationDate': '200'],
['CreationDate': '300'],
['CreationDate': '100'],
]
def rval = list.sort { it['CreationDate'] }
echo "Rval=$rval"
echo "List=$list"
}
nonCpsTest()
}
}
}
}
}
내가 로컬 끝내 쉘을 사용하여이 스크립트를 실행 (groovysh
) 결과가
groovy:000> list = [[ 'CreationDate':200 ], [ 'CreationDate':300 ], [ 'CreationDate':100 ]]
===> [[CreationDate:200], [CreationDate:300], [CreationDate:100]]
groovy:000> rval = list.sort { it['CreationDate'] }
===> [[CreationDate:100], [CreationDate:200], [CreationDate:300]]
groovy:000> list
===> [[CreationDate:100], [CreationDate:200], [CreationDate:300]]
groovy:000> list == rval
===> true
이다 : 나는 젠킨스 로컬로 또는 아래에서 코드를 실행하는 다른 결과를 얻고있다
[Pipeline] {
[Pipeline] stage
[Pipeline] { (default)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
Rval=300
[Pipeline] echo
List=[[CreationDate:200], [CreationDate:300], [CreationDate:100]]
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
다음 점점 젠킨스 어쨌든 불변의리스트를 만드는 작업 흐름, 또는 오버라이드 (override) sort
방법이며, 만약 그렇다면, 내가 작업을 수행하는 방법 Jenkins 파이프 라인 코드 내에서 정렬 된 장소 목록?
당신은'사용할 수 있어야합니다 rval', 맞죠? – Rao
"가장 높은"날짜를 가진 요소로 목록에서 가장 어린 요소를 가져 오려고합니다. Rval은 젠킨스와 콘솔에서 다른 동작을 보여주는 디버깅 목적으로 만 사용됩니다. – toske
@toske 젠킨스 서버의 출력물이이 코드 부분을 가리 킵니다.'echo "List = $ list"'정렬되지 않은 초기 목록을 표시하고 있습니다. (정렬은 입력 목록을 변형시키지 만 새로운 정렬 된 목록을 반환합니다). 'rval'은이 새로운 정렬 목록을 보유합니다. –