Ich habe folgende DSL-Struktur:
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!
}
}
Dies funktioniert jedoch nicht. Was ist die richtige Syntax dafür? Für Jenkins-Pipelines können Sie Folgendes tun:
withCredentials([[
$class: "AmazonWebServicesCredentialsBinding",
accessKeyVariable: "AWS_ACCESS_KEY_ID",
credentialsId: "your-credential-id",
secretKeyVariable: "AWS_SECRET_ACCESS_KEY"]]) {
// ACCESS AWS ENVIRONMENT VARIABLES HERE!
}
aber diese syntax funktioniert im normalen dsl job nicht groovy.
tl; dr Wie kann ich AWS-Anmeldeinformationen, die vom AmazonWebServicesCredentialsBinding-Plugin definiert wurden, in Umgebungsvariablen in Groovy Job DSL exportieren? (NICHT PIPELINE PLUGIN SYNTAX!)
Ich habe eine Lösung gefunden, um dieses Problem zu lösen:
wrappers {
credentialsBinding {
amazonWebServicesCredentialsBinding {
accessKeyVariable("AWS_ACCESS_KEY_ID")
secretKeyVariable("AWS_SECRET_ACCESS_KEY")
credentialsId("your-credentials-id")
}
}
}
Dies führt zum gewünschten Ergebnis.
Ich kann die Lösung von Miguel (auch mit installiertem aws-credentials-Plugin) nicht wiederverwenden, daher gibt es hier einen anderen Ansatz mit DSL-Konfigurationsblock
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")
}
}