J'ai la structure DSL suivante:
freeStyleJob {
wrappers {
credentialsBinding {
[
$class:"AmazonWebServicesCredentialsBinding",
accessKeyVariable: "AWS_ACCESS_KEY_ID",
credentialsId: "your-credential-id",
secretKeyVariable: "AWS_SECRET_ACCESS_KEY"
]
}
}
steps {
// ACCESS AWS ENVIRONMENT VARIABLES HERE!
}
}
Cependant, cela ne fonctionne pas. Quelle est la syntaxe correcte pour le faire? Pour les pipelines Jenkins, vous pouvez effectuer les tâches suivantes:
withCredentials([[
$class: "AmazonWebServicesCredentialsBinding",
accessKeyVariable: "AWS_ACCESS_KEY_ID",
credentialsId: "your-credential-id",
secretKeyVariable: "AWS_SECRET_ACCESS_KEY"]]) {
// ACCESS AWS ENVIRONMENT VARIABLES HERE!
}
mais cette syntaxe ne fonctionne pas dans les tâches DSL normales.
tl; dr comment puis-je exporter les informations d'identification AWS définies par le plug-in AmazonWebServicesCredentialsBinding dans des variables d'environnement dans Groovy Job DSL? (PAS PIPELINE PLUGIN SYNTAX!!)
J'ai trouvé une solution pour résoudre ce problème:
wrappers {
credentialsBinding {
amazonWebServicesCredentialsBinding {
accessKeyVariable("AWS_ACCESS_KEY_ID")
secretKeyVariable("AWS_SECRET_ACCESS_KEY")
credentialsId("your-credentials-id")
}
}
}
Cela conduira au résultat souhaité.
Je ne suis pas en mesure de réutiliser la solution de Miguel (même avec le plugin aws-credentials installé), voici donc une autre approche avec le bloc de configuration DSL
configure { project ->
def bindings = project / 'buildWrappers' / 'org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper' / 'bindings'
bindings << 'com.cloudbees.jenkins.plugins.awscredentials.AmazonWebServicesCredentialsBinding' {
accessKeyVariable("AWS_ACCESS_KEY_ID")
secretKeyVariable("AWS_SECRET_ACCESS_KEY")
credentialsId("credentials-id")
}
}