Je suis très nouveau à Jenkins. Mon référentiel est un monorepo - contient deux sous-projets, web_app
et native_app
. Je souhaite utiliser Jenkins en tant que moteur de configuration pour que chaque fois que le code soit transmis au référentiel, Jenkins vous aide à effectuer automatiquement le flux de production build-test-delivery.
J'ai créé un projet de pipeline, il semble intuitivement que je devrais créer deux Jenkinsfile
, chacun sous un dossier associé, c'est-à-dire:
web_app/
|-Jenkinsfile
native_app/
|-Jenkinsfile
Cependant, je me suis vite rendu compte que cela poserait des problèmes - je dois changer de répertoire de travail pour presque chaque étape/étape. A tenté
stage('Build') {
steps {
sh 'cd ./web_app/'
sh 'ls'
sh 'git pull'
}
}
mais ne fonctionne pas, le répertoire de travail n’est pas modifié.
Je n'ai pas trouvé de méthode efficace pour modifier l'espace de travail pour l'ensemble du pipeline et je crains que cette structure monorepo ne provoque davantage de problèmes avec Jenkins à l'avenir. Dois-je diviser ce référentiel ou existe-t-il un moyen pratique de changer de répertoire de travail?
Vous pouvez utiliser l’étape dir
pour modifier le répertoire d’un bloc d’étapes. Votre exemple de code ressemblerait à ceci:
stage('Build') {
dir('web_app') {
sh 'ls'
sh 'git pull'
}
}
dir: change le répertoire courant
Changer le répertoire actuel. Toute étape du bloc dir utilisera ce répertoire comme courant et tout chemin relatif l’utilisera comme chemin de base. Chemin
Type: chaîne