Итак, я нашел неидеальное решение, которое требует от вас указывать учетные данные в вашем Jenkinsfile, а не автоматически, используя учетные данные, используемые заданием для проверки.
withCredentials([usernamePassword(credentialsId: 'bitbucketcreds', passwordVariable: 'GIT_PASS', usernameVariable: 'GIT_USER')]) {
sh "git config --global credential.helper '!f() { sleep 1; echo \"username=${env.GIT_USER}\\npassword=${env.GIT_PASS}\"; }; f'"
sh 'terraform init -input=false -upgrade'
sh 'git config --global --remove-section credential'
}
Хитрость заключается в том, чтобы загружать учетные данные в переменные окружения с помощью блока withCredentials
, а затем я использовал ответ из этого вопроса , чтобы установить помощник по учетным данным для git для чтения вэти кредиты.Затем вы можете запустить terraform init
, и он будет сбрасывать ваши модули.Наконец, он очищает измененные настройки git, чтобы избежать заражения других сборок.Обратите внимание, что конфигурация --global
здесь, вероятно, не очень хорошая идея для большинства людей, но она была необходима для меня из-за причуд в наших агентах Jenkins.
Если у кого-то есть более плавный способ сделать это, мне было бы очень интересно услышать это.