5

Mam następującą strukturę DSL:Jak wczytać poświadczenia AWS w pracy DSL Jenkins?

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! 
    } 
} 

Jednak to nie działa. Jaka jest prawidłowa składnia, aby to zrobić? Rurociągów Jenkins, można zrobić:

withCredentials([[ 
$class: "AmazonWebServicesCredentialsBinding", 
accessKeyVariable: "AWS_ACCESS_KEY_ID", 
credentialsId: "your-credential-id", 
secretKeyVariable: "AWS_SECRET_ACCESS_KEY"]]) { 
    // ACCESS AWS ENVIRONMENT VARIABLES HERE! 
} 

ale składnia ta nie działa w trybie normalnej pracy DSL porywające.

tl; dr jak mogę eksportować poświadczeń AWS zdefiniowane przez wtyczkę AmazonWebServicesCredentialsBinding do zmiennych środowiskowych w Groovy DSL pracy? (! NIE PIPELINE PLUGIN SYNTAX)

Odpowiedz

4

znalazłem rozwiązanie rozwiązać ten problem:

wrappers { 
    credentialsBinding { 
    amazonWebServicesCredentialsBinding { 
     accessKeyVariable("AWS_ACCESS_KEY_ID") 
     secretKeyVariable("AWS_SECRET_ACCESS_KEY") 
     credentialsId("your-credentials-id") 
    } 
    } 
} 

doprowadzi do pożądanego rezultatu.

+0

to nie dla mnie. –

+0

Czy masz zainstalowaną wtyczkę amazonWebServicesCredentialsBinding [zainstalowaną na Jenkins] (https://wiki.jenkins.io/display/JENKINS/CloudBees+AWS+Credentials+Plugin)? Co to jest błąd? –

0

nie jestem w stanie ponownie wykorzystać rozwiązanie Miguela (nawet z zainstalowanym AWS-poświadczenia plugin), więc tutaj jest inne podejście z bloku DSL configure

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

"Nie jestem w stanie ponownie wykorzystać rozwiązania Miguela" jaki błąd pojawia się podczas korzystania z mojego rozwiązania? –

+0

Błąd to "Brak sygnatury metody". Przekopałem kod źródłowy wtyczki DSL i odkryłem, że w ogóle nie ma wzmianki o 'awscredentials', a ścieżka pakietu jest zupełnie inna dla uniwersalnych wiązań. Na pewno masz tu jakieś ulepszenia, jakieś wskazówki? – Viacheslav

+0

Czy możesz mi podać sens twojego pliku DSL? –