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.
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
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.
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:
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.
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.
Étape de configuration du JDK 11
J'utilise l'action officielle setup-java
. Cependant, il semble que la version Zulu d'OpenJDK sera adoptée ici (Zulu est fondamentalement facturé, mais y est-il lié car il était gratuit lorsqu'il était utilisé depuis Azure?). Certaines personnes ont créé la version AdoptOpenJDK, c'est donc une bonne idée de la rechercher sur le marché et de l'utiliser.
Étape «Collecter les résultats du test»
mvn site -DgenerateReports=false -Daggregate=true surefire-report:report-only
Comme vous ne pouvez pas voir le rapport de test JUnit sur la page (bien que vous puissiez dire si le test a échoué en fonction du succès ou de l'échec de Workflow), même si vous téléchargez le xml, il est difficile pour l'œil humain de le comprendre, utilisez donc surefire-report pour le publier. J'essaye également de sauvegarder la version html.
---Daggregate = true
est une option pour agréger les résultats des sous-modules.
--site -DgenerateReports = false
affiche uniquement les fichiers CSS et les fichiers image.
――Après mkdir
, il s'agit d'une étape pour créer un dossier et copier tout cela dans Artifact afin que le rapport de résultat Junit au format xml puisse être téléchargé collectivement dans Artifact. (Comme décrit ci-dessous
Lors du téléchargement vers Artifact, les expressions régulières et les caractères génériques ne peuvent pas être utilisés, ils sont donc combinés dans un seul répertoire)
** 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.
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