[JAVA] Projet CI pour Maven chez Github Actions

Poursuivant l'article suivant, cette fois j'utiliserai les actions Github. https://qiita.com/kasa_le/items/1ce0d9e34f29e34835cb

Github Actions

Il peut être défini / affiché à partir de l'onglet [Actions] de chaque référentiel Github.

githubactions.png

Fonctionnalité

Un outil CI dédié à Github. Bien sûr, il y a des actions officielles, mais la position de les faire avec l'open source est "probable", n'est-ce pas? L'action peut être trouvée sur le marché. https://github.com/marketplace?type=actions

Frais

Il n'y a aucune restriction d'utilisation pour les référentiels publics. Les référentiels privés sont facturés sur une base de paiement à l'utilisation, mais il existe une plage mensuelle gratuite. Je pense que cela sera utile pour la méthode de calcul d'estimation. https://qiita.com/euxn23/items/8cec3a3b8de9e3213424

Même si vous l'utilisez gratuitement, il est très pratique de pouvoir choisir Windows / Ubuntu / macOS.

Performance

Il semble que cela soit sur le point de venir, mais après tout, avec Microsoft, je suis sûr qu'il y aura des informations d'Azure Pipelines, et je pense qu'il sera certainement utilisé à l'avenir. Cependant, au contraire, il peut être intégré dans Azure Pipelines et disparaître?: Grin:

Réglage

Utilisez le fichier yml. Créez un répertoire appelé .github / wrokflows directement sous la racine du projet et placez-le sous ce répertoire.

Si vous cliquez d'abord sur l'onglet [Actions], vous pouvez choisir parmi différents modèles, et le premier commit sera effectué dans le dossier ci-dessus.

En ce qui concerne le modèle, je peux trouver deux builds Maven, mais cette fois je n'ai utilisé que le build, donc j'ai utilisé celui dans le cadre rouge.

github_actions_template.png

Voici le yml qui a finalement atteint son objectif.

./github/workflows/maven.yml


Skip to content
Search or jump to…

Pull requests
Issues
Marketplace
Explore
 
@le-kamba 
le-kamba
/
JerseySample
1
00
 Code Issues 0 Pull requests 0 Actions Projects 0 Wiki Security Insights Settings
Update maven.yml
feature/for_github_actions @le-kamba  8ba108d
 
Java CI with Maven
on: push
 
Java CI with Maven
This run
Workflow file
.github/workflows/maven.yml
# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Java CI with Maven

on:
  push:
    branches: [ feature/for_github_actions ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 11
      uses: actions/setup-java@v1
      with:
        java-version: '11.0.6'
    - name: Build and Test with Maven
      run: mvn clean install
    - name: Archive JAR
      if: always()
      uses: actions/upload-artifact@v1
      with: 
        name: repository
        path: repository/target/repository.jar
    - name: Archive WAR
      if: always()
      uses: actions/upload-artifact@v1
      with: 
        name: serverapi
        path: serverapi/target/serverapi.war
    - name: Gather test results
      if: always()
      run: |
        mvn site -DgenerateReports=false -Daggregate=true surefire-report:report-only
        mkdir -p test-results/junit/
        find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} test-results/junit/ \;
    - name: Archive test resuls xml
      if: always()
      uses: actions/upload-artifact@v1
      with: 
        name: test-results
        path: test-results/junit/
    - name: Archive test resuls html
      if: always()
      uses: actions/upload-artifact@v1
      with: 
        name: test-results-html
        path: target/site

Les étapes ne sont pas si différentes des autres outils CI, je les omettrai donc, mais uniquement les points.

** Addendum 25/03/2020 ** ~~ Avec cette méthode d'écriture, même si le test échoue, le succès de la construction sera signalé, il semble donc que vous deviez penser à d'autres méthodes. J'étais en difficulté ... ~~

** Addendum 27/03/2020 ** Il est maintenant possible d'émettre un rapport html émis par surefire lors de la détection d'une erreur de test, donc je le modifie en yml avec ce modèle.

Impressions

Je l'ai également touché sur la version Android (https://qiita.com/kasa_le/items/5feb953cd50489c30c90), et comme je le connaissais, il était plus facile à configurer que les deux précédents (AppVeyor, CircleCI). J'étais un peu accro au rapport infaillible.

Ce serait bien de voir les résultats des tests sur la page Actions. Maintenant, je ne peux pas le voir jusqu'à ce que je le télécharge et le décompresse un par un, donc c'est un problème.

Je me demande si cela sera possible en téléchargeant le craché html sur les pages Github, mais je ne l'ai pas encore étudié en détail.

Oh oui, le chemin d'Artefact ne semble pas pouvoir utiliser des expressions régulières ou des caractères génériques comme CircleCI, ce qui n'est pas pratique.

Recommended Posts

Projet CI pour Maven chez Github Actions
Projet CI pour Maven sur AppVeyor
Projet CI pour Maven dans Azure Pipelines
Créer un projet Maven
Créer un projet Web Maven
Les utilisateurs d'actions GitHub se préparent maintenant à la limite d'extraction de Docker Hub
[Circle CI] Procédure de déploiement automatique lors du transfert vers GitHub