[英]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.