web-dev-qa-db-fra.com

Comment découvrir Jenkinsfile dans des sous-dossiers

J'ai un projet avec deux dossiers, qui sont indépendants et qui ont besoin de versions distinctes dans Jenkins (en cours d'exécution v2.74)

Ma structure est 

folder
├── project1
│   └── Jenkinsfile
└── project2
    └── Jenkinsfile

Lorsque je clique sur "analyser l'organisation" dans Jenkins, il ne découvre pas les fichiers Jenkins dans les sous-répertoires.

Voici un exemple tiré du "journal d'organisation de l'analyse":

Proposing kg-pipeline
Examining my-test-project

  Checking branches...

  Getting remote branches...

    Checking branch jenkins
      ‘Jenkinsfile’ not found
    Does not meet criteria

    Checking branch master
      ‘Jenkinsfile’ not found
    Does not meet criteria

  2 branches were processed

Finished examining my-test-project

Je n'ai pas touché à la configuration du travail qui analyse l'organisation et trouve des branches avec Jenkinsfiles. Voici le paramétrage actuel du projet

 Jenkinsfile discoverability configuration

Ma question est la suivante: comment configurer Jenkins pour qu'il affiche chaque dossier individuellement? Je suis également intéressé par des liens vers des exemples de projets mis en place de cette manière.

6

Il y a une solution simple.

  1. accédez à JENKINS_URL/job/JOB_NAME/configure
  2. sous Build Configuration, sélectionnez by Jenkinsfile pour Mode
  3. sous Script Path, définissez-le sur DIR_NAME/Jenkinsfile

Par exemple, si votre fichier Jenkins se trouvait dans un répertoire src, définissez-le sur src/Jenkinsfile et Jenkins sera en mesure de trouver le fichier Jenkins maintenant.

6
Ray Kim

J'essaie actuellement de configurer la même chose - cela pourrait aider, même si ce n'est pas une réponse complète:

Selon this , vous devriez pouvoir configurer deux projets de pipeline multibranches, chacun avec le mode de configuration "by Jenkinsfile".

La prise en charge de l’utilisation de chemins personnalisés pour le fichier Jenins a été ajoutée dans JENKINS-34561

1
Martin

Vous pouvez ajouter plusieurs "Pipeline Jenkinsfile" sous Project Recognizers avec vos chemins d'accès aux fichiers Jenkins. 

0
Gunjan

Malheureusement, je ne connais pas d’approche permettant d’analyser Jenkinsfiles dans les sous-répertoires de la racine de votre projet.

Vous pourrez peut-être obtenir votre comportement souhaité en chargeant les Jenkinsfiles à partir de vos sous-répertoires dans un Jenkinsfile dans la racine du projet avec l’étape load . Cela montrera cependant les constructions des deux projets comme un pipeline .. et vous voudrez peut-être construire ces projets sur noeuds parallèles .

0
tim