DevOps ⚙️ : 5 astuces pour bien démarrer avec les Pipelines Jenkins
Vous connaissez probablement Jenkins, cet automate OpenSource qui permet de définir une chaîne de compilation, tests et déploiement automatisée ?
Jenkins est l'outil OpenSource le plus connu et utilisé aujourd'hui sur le marché. Malheureusement son IHM n'est pas tout le temps simple à appréhender, la configuration de jobs ne se fait pas de manière reproductible entre différents environnements.
Pour répondre à cette problématique, les Pipelines Jenkins ont été introduites dans la version 2 de Jenkins. Ces Pipelines permettent de décrire au sein d'un fichier Groovy l'ensemble des étapes qui seront utiles à la fabrication de votre logiciel. L'avantage avec les Pipelines est qu'il n'est plus nécessaire de configurer des jobs complexes dans Jenkins, cela se fait désormais au travers d'un fichier "JenkinsFile" présent directement dans votre code source.
Pour bien démarrer avec les Pipelines Jenkins, voici 5 ressources qui vous permettront de bien comprendre cet outil pour vos projets.
1. La présentation des Pipelines Jenkins en vidéo
Voici la vidéo de la conférence de Jean-Philippe Briend (CloudBees) qui détaille l'utilisation des Pipelines qui seront au cœur de Jenkins 3 qui sortira l'année prochaine.
Cette vidéo est une très bonne introduction de l'utilisation des Pipelines et de leur usage
2. Installation de Jenkins sur votre environnement Windows
Vous avez vu la vidéo et vous souhaitez tester Jenkins Pipelines ? [Une image Docker officielle| https://hub.docker.com/_/jenkins/] vous permettra de démarrer un serveur Jenkins très rapidement sur votre environnement Windows :
$ docker pull jenkins
$ docker run -p 8080:8080 -p 50000:50000 jenkins
Une fois l'image démarrée, vous n'aurez plus qu'à vous rendre sur l'URL suivante via votre navigateur https://localhost:8080 pour accéder à l'interface de Jenkins.
Si vous utilisez Boot2docker sous Windows, vous devrez utiliser la commande suivante pour connaitre l'IP de votre image Boot2docker afin de pouvoir vous connectez à l'interface d'administration de Jenkins :
$ boot2docker ip
3. Exemples de Pipelines Jenkins réutilisables
Des exemples de Pipelines sont mis à disposition sur l'espace GitHub Jenkins. Dans le répertoire "pipeline-examples", vous trouverez de nombreux exemples réutilisables pour votre projet :
- ansi-color-build-wrapper
- archive-build-output-artifacts
- external-workspace-manager
- get-build-cause
- gitcommit
- github-org-plugin
- ircnotify-commandline
- jobs-in-parallel
- load-from-file
- maven-and-jdk-specific-version
- parallel-from-grep
- parallel-from-list
- parallel-multiple-nodes
- push-git-repo
- slacknotify
- timestamper-wrapper
- trigger-job-on-all-nodes
- unstash-different-dir
Parmi ces exemples, vous remarquerez qu'il est possible d'intégrer facilement Slack à votre Pipeline, cela est d'autant plus facile via l'utilisation du plugin Slack pour Jenkins qui dispose de la propre instruction Jenkins Pipelines :
slackSend channel: '#jenkins-latest', color: 'good', message: 'Slack Message', teamDomain: 'beedemo', token: 'token'
4. La documentation Jenkins officielle
Une fois votre serveur démarré et un fichier JenkinsFile initialisé, voici les deux ressources très riches le sujet des Pipelines et la structuration du fichier JenkinsFile:
- La documentation officielle proposée sur le site Jenkins
- Le Cookbook réalisé par Cloudbees qui décrit aussi l'utilisation de Docker dans ces Pipelines
Vous vous posez des questions sur la syntaxe de certaines instructions ? Vous trouverez sur DZONE une Refcardz dédiée aux Jenkins Pipelines.
C'est aujourd'hui la seule ressource sur Internet la plus complète pour appréhender la DSL Groovy Jenkins Pipelines.
Elle détaille toutes les commandes standards fournies par Jenkins.
5. Le thème Jenkins Blue Ocean
Vous voilà prêt pour démarrer votre premier projet Jenkins Pipelines, n'oubliez pas d'installer le plugin Jenkins "Blue Ocean" pour bénéficier de la nouvelle interface Web Jenkins en version beta. Les développements de cette nouvelle interface ne sont pas encore terminés, mais elle offre une représentation visuelle intéressante des Pipelines réalisés.
Cette interface peut être facilement activée via la page d'administration des plugins Jenkins.
Vous voilà prêt, si vous rencontrez des difficultés, un tag "jenkins-pipeline" sur Stackoverflow vous permettra de probablement trouver des réponses à vos questions.