Introduction
Ce guide explique comment crĂ©er un workflow qui effectue une intĂ©gration continue (CI) pour votre projet Java Ă lâaide de lâoutil de gestion de projet logiciel Maven. Le workflow que vous crĂ©ez vous permet de voir Ă quel moment les commits de demande de tirage (pull request) entraĂźnent des Ă©checs de build ou de test dans votre branche par dĂ©faut. Cette approche peut vous aider Ă garantir lâintĂ©gritĂ© de votre code. Vous pouvez Ă©tendre votre workflow CI pour mettre en cache des fichiers et charger des artefacts Ă partir dâune exĂ©cution de workflow.
Les exĂ©cuteurs hĂ©bergĂ©s dans GitHub ont un cache dâoutils oĂč sont prĂ©installĂ©s des logiciels, notamment les Java Development Kits (JDK) et Maven. Pour obtenir la liste des logiciels et des versions prĂ©installĂ©es de JDK et de Maven, consultez « ExĂ©cuteurs hĂ©bergĂ©s par GitHub ».
Prérequis
Vous devez ĂȘtre familiarisĂ© avec YAML et la syntaxe GitHub Actions. Pour plus dâinformations, consultez lâarticle suivant :
Il est recommandĂ© dâavoir une comprĂ©hension de base de Java et du framework Maven. Pour plus dâinformations, consultez Maven Getting Started Guide dans la documentation Maven.
Utilisation dâun modĂšle de workflow Maven
Pour démarrer rapidement, ajoutez un modÚle de workflow au répertoire .github/workflows
de votre référentiel.
GitHub fournit un modĂšle de workflow pour Maven qui devrait fonctionner pour la plupart des projets Java avec Maven. Les sections suivantes de ce guide donnent des exemples de la maniĂšre dont vous pouvez personnaliser ce modĂšle de workflow.
-
Sur GitHub, accédez à la page principale du référentiel.
-
Sous le nom de votre dépÎt, cliquez sur Actions.
-
Si vous disposez dĂ©jĂ dâun workflow dans votre dĂ©pĂŽt, cliquez sur Nouveau workflow.
-
La page « Choisir un workflow » présente une sélection de modÚles de workflow recommandés. Recherchez « Java avec Maven ».
-
Dans le flux de travail « Java avec Maven », cliquez sur Configurer.
-
Modifiez le workflow en fonction des besoins. Par exemple, changez la version de Java.
-
Cliquez sur Valider les changements.
Le fichier de workflow maven.yml
est ajoutĂ© Ă lâannuaire .github/workflows
de votre référentiel.
SpĂ©cification de la version et de lâarchitecture de Java
Le modĂšle de workflow configure le PATH
pour quâil contienne OpenJDK 8 pour la plateforme x64. Si vous souhaitez utiliser une autre version de Java ou cibler une architecture diffĂ©rente (x64
ou x86
), vous pouvez utiliser lâaction setup-java
pour choisir un autre environnement dâexĂ©cution Java.
Par exemple, pour utiliser la version 11 du JDK fourni par Adoptium pour la plateforme x64, vous pouvez utiliser lâaction setup-java
et configurer les paramĂštres java-version
, distribution
et architecture
sur '11'
, 'temurin'
et x64
.
steps: - uses: actions/checkout@v4 - name: Set up JDK 11 for x64 uses: actions/setup-java@v4 with: java-version: '11' distribution: 'temurin' architecture: x64
steps:
- uses: actions/checkout@v4
- name: Set up JDK 11 for x64
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
architecture: x64
Pour plus dâinformations, consultez lâaction setup-java
.
Génération et test de votre code
Vous pouvez utiliser les mĂȘmes commandes que celles que vous utilisez localement pour gĂ©nĂ©rer et tester votre code.
Le modÚle de workflow exécutera la cible package
par défaut. Dans la configuration Maven par défaut, cette commande télécharge les dépendances, génÚre les classes, exécute les tests et empaquettent les classes dans un format distribuable, par exemple, dans un fichier JAR.
Si vous utilisez différentes commandes pour générer votre projet ou si vous souhaitez utiliser une autre cible, vous pouvez les spécifier. Par exemple, vous pouvez exécuter le verify
qui est configuré dans un pom-ci.xml
fichier.
steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - name: Run the Maven verify phase run: mvn --batch-mode --update-snapshots verify
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Run the Maven verify phase
run: mvn --batch-mode --update-snapshots verify
Mise en cache des dépendances
Vous pouvez mettre en cache vos dĂ©pendances pour accĂ©lĂ©rer vos exĂ©cutions de workflow. Une fois lâexĂ©cution rĂ©ussie, votre dĂ©pĂŽt Maven local est stockĂ© dans un cache. Dans les prochaines exĂ©cutions de workflows, le cache sera restaurĂ© afin que les dĂ©pendances nâaient pas besoin dâĂȘtre tĂ©lĂ©chargĂ©es Ă partir des dĂ©pĂŽts Maven distants. Vous pouvez mettre en cache les dĂ©pendances Ă lâaide de lâaction setup-java
ou utiliser lâaction cache
pour une configuration personnalisée et plus avancée.
steps: - uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' cache: maven - name: Build with Maven run: mvn --batch-mode --update-snapshots verify
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Build with Maven
run: mvn --batch-mode --update-snapshots verify
Ce workflow enregistre le contenu de votre dépÎt Maven local, qui est situé dans le répertoire .m2
du rĂ©pertoire de base de lâexĂ©cuteur. La clĂ© du cache sera le contenu hachĂ© de pom.xml
, changez pour pom.xml
invalidera le cache.
Empaquetage des donnĂ©es de workflow en tant quâartefacts
Une fois que votre build a Ă©tĂ© gĂ©nĂ©rĂ©e et que vos tests ont rĂ©ussi, vous pouvez charger les packages Java rĂ©sultants en tant quâartefacts de build. Cela stockera les packages gĂ©nĂ©rĂ©s dans le cadre de lâexĂ©cution du workflow et vous permettra de les tĂ©lĂ©charger. Les artefacts peuvent vous aider Ă tester et Ă dĂ©boguer des demandes de tirage dans votre environnement local avant quâelles ne soient fusionnĂ©es. Pour plus dâinformations, consultez « Stocker et partager des donnĂ©es avec les artefacts de workflow ».
Maven crée généralement des fichiers de sortie comme les fichiers JAR, EAR ou WAR dans le répertoire target
. Pour charger ces fichiers en tant quâartefacts, vous pouvez les copier dans un nouveau rĂ©pertoire qui contient les artefacts Ă charger. Par exemple, vous pouvez crĂ©er un rĂ©pertoire appelĂ© staging
. Vous pouvez ensuite charger le contenu de ce rĂ©pertoire Ă lâaide de lâaction upload-artifact
.
steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - run: mvn --batch-mode --update-snapshots verify - run: mkdir staging && cp target/*.jar staging - uses: actions/upload-artifact@v4 with: name: Package path: staging
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- run: mvn --batch-mode --update-snapshots verify
- run: mkdir staging && cp target/*.jar staging
- uses: actions/upload-artifact@v4
with:
name: Package
path: staging