Note
Les exécuteurs hébergés sur GitHub ne sont pas pris en charge sur GitHub Enterprise Server. Vous pouvez voir plus d’informations sur le support futur planifié dans la GitHub public roadmap.
Introduction
Ce guide explique comment créer un workflow qui effectue une intégration continue (CI) pour votre projet Java à l’aide du système de génération Ant. 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 d’intégration continue pour 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 Ant. Pour obtenir la liste des logiciels et des versions préinstallées de JDK et d’ANT, consultez « Utilisation des 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 les pages suivantes :
Il est recommandé d’avoir une compréhension de base de Java et du framework Ant. Pour plus d’informations, consultez le manuel Apache Ant.
Utilisation d’exécuteurs auto-hébergés sur GitHub Enterprise Server
Quand vous utilisez des actions de configuration (comme actions/setup-LANGUAGE
) sur GitHub Enterprise Server avec des exécuteurs auto-hébergés, vous pouvez être amené à configurer le cache des outils sur les exécuteurs qui n’ont pas accès à Internet. Pour plus d’informations, consultez « Configuration du cache d’outils sur les exécuteurs auto-hébergés sans accès à Internet ».
Utilisation d’un modèle de workflow Ant
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 Ant qui devrait fonctionner pour la plupart des projets Java avec Ant. 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 Ant ».
-
Dans le flux de travail « Java avec Ant », cliquez sur Configurer.
Si vous ne trouvez pas le modèle de workflow « Java avec Ant », copiez le code de workflow suivant dans un nouveau fichier appelé
ant.yml
dans le répertoire.github/workflows
de votre référentiel.YAML name: Java CI on: push: branches: [ $default-branch ] pull_request: branches: [ $default-branch ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up JDK 11 uses: actions/setup-java@v4 with: java-version: '11' distribution: 'temurin' - name: Build with Ant run: ant -noinput -buildfile build.xml
name: Java CI on: push: branches: [ $default-branch ] pull_request: branches: [ $default-branch ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up JDK 11 uses: actions/setup-java@v4 with: java-version: '11' distribution: 'temurin' - name: Build with Ant run: ant -noinput -buildfile build.xml
-
Modifiez le workflow en fonction des besoins. Par exemple, changez la version de Java.
-
Cliquez sur Valider les changements.
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 par défaut spécifiée dans votre fichier build.xml. Votre cible par défaut est généralement définie pour générer des classes, exécuter des tests et empaqueter les classes dans leur format distribuable, par exemple sous forme de fichier JAR.
Si vous utilisez différentes commandes pour générer votre projet ou si vous souhaitez exécuter une autre cible, vous pouvez les spécifier. Par exemple, vous pouvez exécuter la cible jar
qui est configurée dans un fichier _build-ci.xml_
.
steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' - name: Run the Ant jar target run: ant -noinput -buildfile build-ci.xml jar
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Run the Ant jar target
run: ant -noinput -buildfile build-ci.xml jar
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 « Stockage et partage des données d’un workflow ».
Ant crée généralement des fichiers de sortie comme les fichiers JAR, EAR ou WAR dans le répertoire build/jar
. Vous pouvez 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: ant -noinput -buildfile build.xml - uses: actions/upload-artifact@v3 with: name: Package path: build/jar
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- run: ant -noinput -buildfile build.xml
- uses: actions/upload-artifact@v3
with:
name: Package
path: build/jar