J'explore les pipelines Jenkins 2.0. Jusqu'à présent, mon dossier est assez simple.
node {
stage "checkout"
git([url:"https://github.com/luxengine/math.git"])
stage "build"
echo "Building from pipeline"
}
Je n'arrive pas à trouver le moyen de définir le répertoire dans lequel git va se connecter. Je ne trouve pas non plus de documentation sur ce sujet. J'ai trouvé https://jenkinsci.github.io/job-dsl-plugin/ mais cela ne semble pas correspondre à ce que je vois dans d'autres tutoriels.
On dirait que vous essayez de configurer Pipeline job (anciennement appelé Workflow). Ce type de travail est très distinct de Job DSL .
Le travail de Pipeline a pour but de:
Orchestre des activités de longue durée pouvant couvrir plusieurs esclaves de construction. Convient à la construction de pipelines (anciennement appelés flux de travaux) et/ou à l'organisation d'activités complexes qui ne s'intègrent pas facilement dans un type de travail de type libre.
Où comme Job DSL:
... permet la création programmatique de projets à l'aide d'un DSL. Pousser la création de tâches dans un script vous permet d'automatiser et de normaliser votre installation Jenkins, contrairement à tout ce qui était possible auparavant.
Si vous souhaitez extraire votre code dans un répertoire spécifique, remplacez l'étape git
par l'étape plus générale de SCM checkout
. Final Pipeline configuration devrait ressembler à ceci:
node {
stage "checkout"
//git([url:"https://github.com/luxengine/math.git"])
checkout([$class: 'GitSCM',
branches: [[name: '*/master']],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'RelativeTargetDirectory',
relativeTargetDir: 'checkout-directory']],
submoduleCfg: [],
userRemoteConfigs: [[url: 'https://github.com/luxengine/math.git']]])
stage "build"
echo "Building from pipeline"
}
En tant que référence future pour Jenkins 2.0 et Pipeline DSL, veuillez utiliser le générateur intégré Snippet ou la documentation .
Cela peut être fait en utilisant la directive de dir:
def exists = fileExists '<your target dir>'
if (!exists){
new File('<your target dir>').mkdir()
}
dir ('<your target dir>') {
git url: '<your git repo address>'
}
Commencez par préciser que vous utilisez Jenkins Job DSL.
Vous pouvez faire ceci comme ceci:
scm {
git {
wipeOutWorkspace(true)
shallowClone(true);
remote {
url("xxxx....")
relativeTargetDir('checkout-folder')
}
}
}
Cette adresse ci-dessus vous donne simplement la possibilité de taper en haut à gauche par exemple 'scm' et montrera dans quelles relations 'scm' peut être utilisé. Ensuite, vous pouvez sélectionner 'scm-freestylejob' et ensuite cliquer sur le bouton '***' pour voir les détails.
Le point de départ général de Jenkins Job DSL est ici:
Vous pouvez bien sûr demander ici sur SO ou sur le forum Google:
Vous utilisez le Pipeline Plugin , pas le Job DSL Plugin . Dans le plug-in Pipeline, si vous souhaitez définir quelque chose pour lequel il n'existe pas encore de fonction dans la syntaxe Pipeline, vous pouvez le définir vous-même .