5

J'ai la structure DSL suivante:Comment charger les informations d'identification AWS dans Jenkins job DSL?

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 faire:

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. Comment exporter les informations d'identification AWS définies par le plug-in AmazonWebServicesCredentialsBinding dans les variables d'environnement dans Groovy job DSL?

tl; dr (Non PIPELINE PLUGIN SYNTAX)

Répondre

4

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é.

+0

cela ne fonctionne pas pour moi. –

+0

Avez-vous l'amazonWebServicesCredentialsBinding [plugin installé sur votre Jenkins] (https://wiki.jenkins.io/display/JENKINS/CloudBees+AWS+Credentials+Plugin)? Aussi, quelle est l'erreur que vous obtenez? –

0

Je ne suis pas en mesure de réutiliser la solution de Miguel, est une autre approche donc ici (même avec le plugin SSFE-références installées) 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") 
     } 
    } 
+0

"Je ne suis pas en mesure de réutiliser la solution de Miguel" Quelle est l'erreur que vous obtenez en utilisant ma solution? –

+0

L'erreur est 'Aucune signature de la méthode'. J'ai creusé dans le code source du plugin DSL et j'ai trouvé qu'il n'y a aucune mention de 'awscredentials' du tout, et le chemin du paquet est absolument différent pour les bindings universels. Certainement, vous avez quelques réglages ici, des conseils? – Viacheslav

+0

Pouvez-vous me donner un aperçu de votre fichier DSL? –