宣言的なjenkinsパイプラインには次のステップがあります。libraryResourceを使用して、resources/
フォルダーからスクリプトを作成します。このスクリプトには、私のautobuild
ユーザーと一部のadmintest
ユーザーの資格情報が含まれています。
stage('Build1') {
steps {
node{
def script = libraryResource 'tests/test.sh'
writeFile file: 'script.sh', text: script
sh 'chmod +x script.sh'
withCredentials([usernamePassword(credentialsId: xxx, usernameVariable: 'AUTOBUILD_USER', passwordVariable: 'AUTOBUILD_PASSWD')]){
sh './script.sh "
}
}
}
これは正常に機能します。 autobuild
ユーザーを使用できます。現在、admintest
ユーザーのクレデンシャルも含めることができる最適な方法を探しています。 2番目のwithCredentials
部分で「ネスト」する必要がありますか、それともusernamePassword
「配列」を再度追加できますか?
もちろん、1つのwithCredentials
ブロックを使用して、複数の資格情報を異なる変数に割り当てることができます。
withCredentials([
usernamePassword(credentialsId: credsId1, usernameVariable: 'USER1', passwordVariable: 'PASS1'),
usernamePassword(credentialsId: credsId2, usernameVariable: 'USER2', passwordVariable: 'PASS2')
]){
//...
}
また、これを$ classで使用できます
withCredentials([[
$class: 'AmazonWebServicesCredentialsBinding',
credentialsId: 'awsID',
accessKeyVariable: 'AWS_ACCESS_KEY_ID',
secretKeyVariable: 'AWS_SECRET_ACCESS_KEY'],
[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'myID',
usernameVariable: 'USR',
passwordVariable: 'PWD']])