Feature #7397
closed
- 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.
- 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.
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
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...
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
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 ?
- Status changed from In progress to Closed
- % Done changed from 60 to 100
Also available in: Atom
PDF