Bonjour,
Je suis nouveau sur JOB DSL , j'essaie d'ajouter une librairie partagée sur un dossier dans lequel se trouvent mes jobs, le but étant que la librairie soit chargée une seule fois sur le dossier et accessible à tous les jobs y présents.
Voici l'environnement cible :
- Jenkins ver. 2.107.2
- plugin Shared Groovy Libraries 2.9
- JOB DSL 1.63
Scénario1:
J'ai utilisé le code suivant pour ajouter la librairie sur un dossier existant , sans succès :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 @NonCPS def setFolderLibraries(folderName) { def folder = Jenkins.instance.getItemByFullName(folderName, com.cloudbees.hudson.plugins.folder.Folder) steps.println "#### setFolderLibraries ####" if (folder != null) { // build GitSCMSource def gitScm = new jenkins.plugins.git.GitSCMSource() gitScm.remote = "${GITLAB_URL}" gitScm.credentialsId = "${SSH_KEY}" // build SCMSourceRetriever def scmSource = new org.jenkinsci.plugins.workflow.libs.SCMSourceRetriever() scmSource.scm = gitScm // build LibraryConfiguration def libConfig = new org.jenkinsci.plugins.workflow.libs.LibraryConfiguration() libConfig.name = "${LIB_NAME}" libConfig.implicit = true libConfig.retriever = scmSource // build FolderLibraries def folderLib = new org.jenkinsci.plugins.workflow.libs.FolderLibraries() folderLib.libraries.add(libConfig) // build folder properties folder.properties.add(folderLib) } }
J'ai l'erreur suivante à l'exécution :
unclassified new jenkins.plugins.git.GitSCMSource. Administrators can decide whether to approve or reject this signature.
[Pipeline] End of Pipeline
org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: unclassified new jenkins.plugins.git.GitSCMSource
at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onNewInstance(SandboxInterceptor.java:144)
Scénario2:
J'ai aussi utilisé le code suivant sans succès non plus :
A l'exécution , j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 folder(\'''' + envFolderName + '''\') { description(\'''' + jobCommonDescription() + '''\') properties{ libraries{ name("${LIB_NAME}") implicit(true) retriever{ scm{ remote("${GITLAB_URL}") credentialsId("${SSH_KEY}") } } } } }
ERROR: (script, line 4) No signature of method: javaposse.jobdsl.dsl.helpers.properties.FolderPropertiesContext.libraries() is applicable for argument types: (script$_run_closure1$_closure127$_closure128) values: [script$_run_closure1$_closure127$_closure128@5e6fb5c0]
Finished: FAILURE
Est-il possible d'ajouter une librairie partagée sur un floder avec JOB DSL jenkins community ?
Quelle est la meilleur approche ?
Toute aide est la bienvenue.
Merci d'avance
Partager