La construction des applications modernes et dites cloud natives passent obligatoirement par la case CI/CD. Les pipelines de type GitHub Action d’applications permettent de standardiser les processus de constructions, de tests, de versionning ainsi que de déploiement des applications. L’avantage des pipelines de constructions est le rapide feedback aux développeurs des erreurs dans la chaîne de traitement. Ainsi, il est facile de modifier un élément de configuration pour voir le résultat. Les applications modernes nécessitent de pouvoir migrer des socles techniques de manière transparente.

Compiler en Quarkus/Java 11 et 17 avec GitHub Action les Matrix

L’idée dans ce post est de montrer très simplement un exemple de double compilation Java 11 et Java 17. Ces versions de Java sont des versions LTS1 c’est-à-dire qu’elles disposent d’un support long terme .

Regardons rapidement le pipeline GitHub Action2 avec la possibilité de compiler sur deux versions de Java différentes. Comme toutes les GitHub Action le fichier doit se trouver dans le répertoires .github/workflows de votre projet.


name: eaas-ci-matrix

on: [push]

jobs:
  build:
    strategy:                        (1)
      matrix:
        version: [11, 17]
    runs-on: ubuntu-latest
    steps:
      - name: Checkout source
        uses: actions/checkout@v3
      - name: Set up JDK {{ "${{ matrix.version " }}}}
        uses: actions/setup-java@v3
        with:
          java-version: {{ "${{ matrix.version " }}}}
          distribution: 'adopt'
      - name: Build with Maven {{ "${{ matrix.version " }}}}
        run: mvn --batch-mode --update-snapshots verify

Pour cela il faut simplement rajouter la section (1) dans la GitHub Action afin de configurer la matrice des versions de java avec lesquelles on souhaite compiler.

Suite à une modification (push) dans le repository, la GitHub Action va être déclenchée.

GitHub Action va automatiquement créer autant de sous-pipeline que la matrice va prévoir.

Compilation Java 11 Voici l’exemple d’une compilation en Java 11

Compilation Java 17 et une compilation en Java 17

Conclusion

Avec cet exemple très simple, nous voyons qu’il est possible d’ajouter rapidement des matrices de configuration afin de tester plusieurs cas en parallèle via les GitHub Action. Cette feature incluse dans GitHub facilite et permet d’accélérer les montées de version par exemple. On pourra utiliser cette feature pour changer de socle, de brique tech, de librairie, de framework en toute sérénité.

Footnotes