Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
参数化凭证未设置时跳过Jenkins阶段_Jenkins_Jenkins Pipeline - Fatal编程技术网

参数化凭证未设置时跳过Jenkins阶段

参数化凭证未设置时跳过Jenkins阶段,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,我试图跳过Jenkins中一个未设置参数化凭证的阶段(在本例中为AWS帐户参数)。然而,我似乎无法做到这一点,我不知道为什么。该阶段似乎会立即启动并失败,而不会评估我的“何时”跳过条件,后续阶段不会启动。下面是一个例子: parameters { credentials(name: 'AWS_CREDS', description: 'Skips AWS build if not specified.', credentialType: 'com.cloudbees.jenkins.plug

我试图跳过Jenkins中一个未设置参数化凭证的阶段(在本例中为AWS帐户参数)。然而,我似乎无法做到这一点,我不知道为什么。该阶段似乎会立即启动并失败,而不会评估我的“何时”跳过条件,后续阶段不会启动。下面是一个例子:

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\u CREDS
环境变量,将when表达式更改为执行空字符串检查(而不是空检查),并使用
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'
    }
  }
}