簡體   English   中英

Jenkins Pipeline Groovy傳遞數組來運行

[英]Jenkins Pipeline Groovy pass in array to function

我正在設置這樣的數組

def tags = [
    "zookeeper",
    "postgres",
    "postgres-maps",
    "kudu-master",
    "redis-master",
    "consul",
    "dcos-bootstrap"]

我試圖把它傳遞給像這樣的函數

 run_linux("${tags}")

我的功能看起來像

def run_linux(tags) {
  def tasks = [:]

  for (i = 0; i < tags.size(); i++) {
    def tag = "${tags[i]}"
    tasks["${tag}"] = {
       stage ("${tag}"){
            sh ..
       }
    }

那么jenkins的樣子就是這個

[Pipeline] [[] stage
[Pipeline] [[] { ([)
[Pipeline] [z] stage
[Pipeline] [z] { (z)
[Pipeline] [o] stage
[Pipeline] [o] { (o)
[Pipeline] [k] stage
[Pipeline] [k] { (k)

它似乎將傳入的內容視為字符串而不是數組。

您確實將字符串傳遞給run_linux函數 - 特別是字符串"${tags}" ,其中tags通過字符串插值強制轉換為字符串。

相反,嘗試這樣調用它: run_linux(tags)

暫無
暫無

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

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