Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Continuous Delivery on premise : Gerrit, Jenkin...

Continuous Delivery on premise : Gerrit, Jenkins et Sonarqube entrent dans un bar...

Opérer une usine logicielle on premise est encore possible.

Au travers des mutations successives de notre usine, cette présentation couvrira les différents outils et méthodologies qui nous ont permis d'activer le continuous delivery.

Nous avons remplacé notre gestionnaire Git par Gerrit au détour d'une contribution à Chromium. En partant de cet outil, nous montrerons les différents plugins que nous avons orchestrés pour s'intégrer avec Jenkins, Sonaqube et Jira pour obtenir l'implémentation d'une usine logicielle couvrant:

Le contrôle de chaque modification avant application dans Git
La garantie d'un code partagé fonctionnel
Une automatisation toujours plus poussée (worflow Jira, merge de code, cherrypick, continuous deployment, nouveau projet)

Avatar for Réda Housni Alaoui

Réda Housni Alaoui

April 26, 2022
Tweet

Other Decks in Technology

Transcript

  1. Continuous Delivery on premise : Gerrit, Jenkins et Sonarqube entrent

    dans un bar... Outils et méthodologie pour l’activation du continuous delivery.
  2. Cosium 6 Objectifs • Réactivité client • Productivité des développeurs

    • Bootstrap de projet simplifié • Réglementaire
  3. Cosium 7 Caractéristiques du continuous delivery • Cycle court •

    Automatisation • Mise à disposition de livrable en continu • ≠ continuous deployment
  4. Cosium 8 Les composants • Un gestionnaire de tickets •

    Un gestionnaire de code source • Un automate de build • Un analyseur de code • Un dépôt de livrables
  5. Vue d’ensemble Il est important, dans un monde en constante

    transformation, de faire tous les dix ans une révision de sa vision du monde. - Edgar Morin
  6. En détail.. L'extrême netteté, la clarté, et la certitude ne

    s'acquièrent qu'au prix d'un immense sacrifice: la perte de la vue d'ensemble. - Albert Einstein
  7. Cosium 12 Jira • Configurations avancées (workflows, écrans, sécurité) •

    Plugin spécifique : – Envoi de notes de version – Intégration avec les éléments de l’environnement de production
  8. Cosium 14 Développeur  Jira : statut, discussions  Commit,

    push, creation PR  Itérations code review
  9. Cosium 15 Gerrit • Découvert au détour d’une contribution Chromium

    • Open Source et utilisé par Google • Développé en Java • Plugins : ITS-Jira, Autosubmit
  10. Cosium 19 Gerrit  Revue de code manuelle  Merge

    automatique conditionnel  Fermeture du ticket Jira, ajout des branches de livraison  Indication de la version de livraison du ticket Jira  Fermeture de la version de livraison  Envoi de la release note par email
  11. Cosium 20 Jenkins • Écosystème massif • Contribution • Plugin

    : sonar-gerrit, gerrit- code-review • Jenkins Shared Libraries Cosium
  12. Cosium 26 Maven - flatten-maven-plugin maven-release-plugin flatten-maven-plugin Opérations Git 1

    tag 2 commits 1 tag Calcul de la nouvelle version Extraite depuis le pom.xml Tag git précédent + 1*
  13. Cosium 28 Les difficultés rencontrées  Workflow « PR »

    spécifique Gerrit  Changement de la méthode de soumission de code vers SonarQube  Support NPM
  14. Cosium 29 Les problèmes ouverts  Popularité de Gerrit –

    Communauté réduite – Compatibilité non garantie par les outils mainstream  Jira on Premise  Race condition sur PR concurrentes sans merge conflict mais compilation / test / runtime incompatibles  Calcul de la version par un plugin Jenkins