doc-locale/fr-fr/integration/jenkins.md
{{< details >}}
{{< /details >}}
{{< history >}}
{{< /history >}}
Jenkins est un serveur d'automatisation open source qui prend en charge la création, le déploiement et l'automatisation de projets.
Vous devez utiliser une intégration Jenkins avec GitLab dans les cas suivants :
Cette intégration peut déclencher un build Jenkins lorsqu'une modification est poussée vers GitLab.
Vous ne pouvez pas utiliser cette intégration pour déclencher des pipelines GitLab CI/CD depuis Jenkins. Utilisez plutôt le point de terminaison de l'API des déclencheurs de pipeline dans un job Jenkins, authentifié avec un jeton de déclenchement de pipeline.
Une fois l'intégration Jenkins configurée, vous déclenchez un build dans Jenkins lorsque vous poussez du code vers votre dépôt ou créez une merge request dans GitLab. Le statut du pipeline Jenkins s'affiche sur les widgets de la merge request et sur la page d'accueil du projet GitLab.
<i class="fa-youtube-play" aria-hidden="true"></i> Pour une vue d'ensemble de l'intégration Jenkins pour GitLab, consultez Workflow GitLab avec ticket Jira et pipelines Jenkins.
Pour configurer une intégration Jenkins avec GitLab :
Créez un jeton d'accès personnel, un jeton d'accès au projet ou un jeton d'accès de groupe.
Définissez la portée du jeton d'accès personnel sur API.
Copiez la valeur du jeton d'accès personnel pour configurer le serveur Jenkins.
Installez et configurez le plugin Jenkins pour autoriser la connexion à GitLab.
gitlab-plugin et sélectionnez-le pour l'installer. Consultez la documentation Jenkins GitLab pour d'autres méthodes d'installation du plugin.Pour plus d'informations, consultez Jenkins-to-GitLab authentication.
Configurez le projet Jenkins sur lequel vous souhaitez exécuter votre build.
Si vous avez créé un projet freestyle, dans la section Post-build Actions, choisissez Publish build status to GitLab.
Si vous avez créé un projet pipeline, vous devez utiliser un script Jenkins Pipeline pour mettre à jour le statut sur GitLab.
Exemple de script Jenkins Pipeline :
pipeline {
agent any
stages {
stage('gitlab') {
steps {
echo 'Notify GitLab'
updateGitlabCommitStatus name: 'build', state: 'pending'
updateGitlabCommitStatus name: 'build', state: 'success'
}
}
}
}
Pour plus d'exemples de scripts Jenkins Pipeline, consultez le dépôt du plugin Jenkins GitLab sur GitHub.
Configurez l'intégration GitLab avec Jenkins de l'une des façons suivantes.
Vous devez utiliser cette approche pour les intégrations Jenkins si vous pouvez fournir à GitLab l'URL de votre serveur Jenkins et les informations d'authentification.
Si vous ne pouvez pas fournir à GitLab l'URL de votre serveur Jenkins et les informations d'authentification, vous pouvez configurer un webhook pour intégrer GitLab et Jenkins.
https://JENKINS_URL/project/YOUR_JOB).Connection failed. Please check your settings {#error-connection-failed-please-check-your-settings}Lors de la configuration de GitLab, vous pouvez obtenir une erreur indiquant Connection failed. Please check your settings.
Ce problème a plusieurs causes et solutions possibles :
| Cause | Solution de contournement |
|---|---|
| GitLab ne peut pas atteindre votre instance Jenkins à l'adresse indiquée. | Pour GitLab Self-Managed, effectuez un ping de l'instance Jenkins au domaine fourni sur l'instance GitLab. |
| L'instance Jenkins se trouve à une adresse locale et n'est pas incluse dans la liste d'autorisation de l'installation GitLab. | Ajoutez l'instance à la liste d'autorisation de l'installation GitLab. |
| Les identifiants de l'instance Jenkins ne disposent pas d'un accès suffisant ou sont invalides. | Accordez aux identifiants un accès suffisant ou créez des identifiants valides. |
La case Activer l'authentification pour le point de terminaison /project n'est pas cochée dans votre configuration du plugin Jenkins | Cochez la case. |
Could not connect to the CI server {#error-could-not-connect-to-the-ci-server}Vous pouvez obtenir une erreur indiquant Could not connect to the CI server dans une merge request si GitLab n'a pas reçu de mise à jour du statut du build de la part de Jenkins via l'API Commit Status.
Ce problème survient lorsque Jenkins n'est pas correctement configuré ou qu'une erreur se produit lors du signalement du statut via l'API.
Pour résoudre ce problème :
Ce problème peut survenir lorsque la requête dépasse la limite de délai d'attente du webhook, définie à 10 secondes par défaut.
Pour ce problème, vérifiez :
Les journaux du webhook d'intégration pour les échecs de requêtes.
/var/log/gitlab/gitlab-rails/production.log pour des messages tels que :
WebHook Error => Net::ReadTimeout
ou
WebHook Error => execution expired
Sur GitLab Self-Managed, vous pouvez résoudre ce problème en augmentant la valeur du délai d'attente du webhook.
Pour résoudre un problème d'intégration, vous pouvez activer les job logs dans Jenkins afin d'obtenir plus de détails sur vos builds.
Pour activer les job logs dans Jenkins :
com.dabsquared.gitlabjenkins.Pour consulter vos journaux :