簡體   English   中英

未設置參數化憑證時跳過 Jenkins 階段

[英]Skip Jenkins stage when parameterized credential is unset

當未設置參數化憑據(在本例中為 AWS 帳戶參數)時,我試圖跳過 Jenkins 中的一個階段。 但是,我似乎無法這樣做,我不知道為什么。 該階段似乎立即開始並失敗而沒有評估我的“何時”跳過條件,並且以后的階段不會開始。 這是一個例子:

parameters {
  credentials(name: 'AWS_CREDS', description: 'Skips AWS build if not specified.', credentialType: 'com.cloudbees.jenkins.plugins.awscredentials.AWSCredentialsImpl', required: false)
}

stage ('Build AWS') {
  when { 
    expression { params.AWS_CREDS != null }
  }
  environment {
    AWS_CREDS = credentials("${params.AWS_CREDS}")
  }
  steps {
    sh 'Use $AWS_ACCESS_KEY_ID and $AWS_SECRET_ACCESS_KEY'
  }
}

當我輸入問題時,我偶然發現了一個解決方案,所以我想我會分享。

刪除AWS_CREDS環境變量,更改 when 表達式以執行空字符串檢查(而不是 null 檢查),並使用withCredentials綁定圍繞您的步驟。 放在一起:

stage ('Build AWS') {
  when { 
    expression { "${params.AWS_CREDS}" != "" }
  }
  steps {
    withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: "${params.AWS_CREDS}"]]) {
      sh 'Use $AWS_ACCESS_KEY_ID and $AWS_SECRET_ACCESS_KEY'
    }
  }
}

暫無
暫無

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

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