簡體   English   中英

如何在 groovy 中迭代數組參數

[英]How to iterate an array parameter in groovy

假設我們有多個環境,如 dev1、dev2、dev3、qat1、qat2、stg、prod,並且我在 Jenkins 管道中配置了多選參數。 我已將所選參數保存在數組中

env = [ dev1, dev3, qat2] 

如何在下面的 function 中一個接一個地迭代這些參數

def DockerPush() {

def artifactory_repo_dev1 = "artifactory.dev1.com"
def artifactory_repo_dev3 = "artifactory.dev3.com"
def artifactory_repo_qat2 = "artifactory.qat2.com"


//Docker Tag
sh "docker tag " + "docker-example" + " " + "artifactory_repo_$env" + ":" + version


//Docker Push to Artifactory
    sh "docker push " + "artifactory_repo_$env" + ":" + "${version}"  
}

這樣我就不會有任何重復的代碼。 目前我正在使用單個 select 參數和 if else 語句用於所有選定的環境,這使我的代碼大約有 500 行。 我想通過使用 for 循環來最小化代碼並一一迭代選定的參數。

不要使用本地變量來完成這樣的任務(注意,這可以像你想要的那樣工作,但恕我直言,這是令人費解的方式)。

而是使用 map 來存儲環境密鑰和 url 之間的關系。

例如

def chosenEnv = 'env1'
def envToUrl = [env1: "some.url.for.env1.com"]
def url = envToUrl[chosenEnv]

如果您的網址與環境名稱直接相關,您甚至可以生成 map:

def envToUrl = ["env1"].collectEntries{ [it, "some.url.for.${it}.com"] }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM