Feature #7397
closed[CI] Intégration gitlab / Système de CI
100%
Description
Un gros besoin serait de pouvoir utiliser les WebHooks comme sur GitHub et de pouvoir intégrer facilement et automatiquement un système comme Jenkins ou autre.
Jenkins est la plateforme qui va devenir officielle au CC non ?
J'ai rapidement googlé et je suis tombé sur ça :: https://wiki.jenkins-ci.org/display/JENKINS/Gitlab+Hook+Plugin.
Updated by Brétel Foudil almost 11 years ago
- Status changed from New to In progress
Pas encore testé, mais je crois que c'est déjà prévu dans Jenkins:
Dans la conf d'un job Jenkins, on spécifie le Build Triggers > Trigger builds remotely (e.g., from scripts) dans lequel on spécifie un token de son choix. J'imagine que dans gitlab, un webhook devrait suffire. À noter qu'on peut filter les branches dans Jenkins.
Je ne suis pas certain qu'un plugin soit nécessaire.
Updated by Brétel Foudil almost 11 years ago
- Assigned To set to Brétel Foudil
- % Done changed from 0 to 60
Oui ça marche de base:
- côté Jenkins, dans le job, on définit Trigger builds remotely (e.g., from scripts) / Authentication Token
- côté Gitlab, on crée un WebHook avec une URL de la forme: https://USERNAME:API_TOKEN@ci.in2p3.fr/PROJECT/job/JOB/build?token=AUTH_TOKEN
Il y a un pb pour l'instant: le webhook ne marche pas parce que la quête HTTP Gitlab -> Jenkins échoue, à cause du certificat non-reconnu. À vérifier.
Updated by Brétel Foudil almost 11 years ago
Non c'est pas un pb de cert non-vérifié par Gitlab, puisqu'il n'effectue pas de vérification dans les WebHooks.
Bizarre, ça marche en curl depuis le cluster...
curl -v -k "https://USERNAME:API_TOKEN@ci.in2p3.fr/PROJECT/job/JOB/build?token=AUTH_TOKEN" ... < HTTP/1.1 201 Created
Updated by Brétel Foudil almost 11 years ago
Pour mémoire, j'ai fait un script cgi placé sur n'importe quel serveur web. Appelé depuis gitlab, il déclenche le build sur Jenkins:
#!/bin/bash # http://stackoverflow.com/questions/23497819/trigger-parameterized-build-with-curl-and-crumb # USER_ID=fbretel API_TOKEN=tructruc SERVER_URL=https://${USER_ID}:${API_TOKEN}@ci.in2p3.fr/jenkinsfarm BUILD_TOKEN=tototititata crumb=$(curl "${SERVER_URL}/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,%22:%22,//crumb)" -k) curl -H "${crumb}" "${SERVER_URL}/job/jenkinsfarm-py27/build?token=${BUILD_TOKEN}" -k
Mais ça devrait marcher sans la crumb, juste avec l'api_token...
Updated by Ferrand Rémi over 10 years ago
Salut Foudil / J.R,
Avez-vous avancé sur l'intégration gitlab / Jenkins ou gitlab / gitlab-CI ?
Pour en avoir rapidement discuté avec J.R, gitlab-CI semble bien plus intégré et plus simple d'utilisation.
D'un point de vue utilisateur, le besoin que je fait remonter est un travis-ci like mais je ne connais absolument pas Jenkins, je vous laisse donc juger de ce qui conviendra le mieux.
Merci d'avance
Updated by Brétel Foudil over 10 years ago
Salut Rémi,
En attendant qu'on regarde gitlab-ci, je te propose de te créer une instance Jenkins (goto http://ci.in2p3.fr). Tu pourras déjà expérimenter avec Jenkins et voir si ça peut répondre à ton besoin.
Qu'en dis-tu ?
Updated by Bussery Justin almost 7 years ago
- Status changed from In progress to Closed
- % Done changed from 60 to 100
Plus d'actualité