Ausgehend vom folgenden Artikel werde ich dieses Mal Github-Aktionen verwenden. https://qiita.com/kasa_le/items/1ce0d9e34f29e34835cb
Github Actions
Es kann auf der Registerkarte [Aktionen] jedes Github-Repositorys festgelegt / angezeigt werden.
Ein CI-Tool für Github. Natürlich gibt es offizielle Aktionen, aber die Haltung, sie mit Open Source zu machen, ist "wahrscheinlich", nicht wahr? Action finden Sie auf dem Marktplatz. https://github.com/marketplace?type=actions
Es gibt keine Nutzungsbeschränkungen für öffentliche Repositorys. Private Repositories werden nach dem Umlageverfahren abgerechnet, es gibt jedoch eine kostenlose monatliche Spanne. Ich denke, dies wird für die Schätzungsberechnungsmethode hilfreich sein. https://qiita.com/euxn23/items/8cec3a3b8de9e3213424
Selbst wenn Sie es kostenlos verwenden, ist es sehr praktisch, Windows / Ubuntu / macOS auswählen zu können.
Es scheint, als würde es bald kommen, aber mit Microsoft wird es sicher einige Erkenntnisse aus Azure Pipelines geben, und ich denke, dass es definitiv in Zukunft verwendet wird. Im Gegenteil, es kann in Azure Pipelines integriert werden und verschwinden ?: Grin:
Verwenden Sie die Datei "yml". Erstellen Sie ein Verzeichnis mit dem Namen ".github / wrokflows" direkt unter dem Stammverzeichnis des Projekts und platzieren Sie es unter diesem Verzeichnis.
Wenn Sie zuerst auf die Registerkarte [Aktionen] klicken, können Sie aus verschiedenen Vorlagen auswählen. Das erste Festschreiben erfolgt im obigen Ordner.
Was die Vorlage betrifft, kann ich zwei Maven-Builds finden, aber dieses Mal habe ich nur den Build verwendet, also habe ich den im roten Rahmen verwendet.
Hier ist das yml, das endlich seinen Zweck erreicht hat.
./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
Die Schritte unterscheiden sich nicht so sehr von anderen CI-Tools, daher werde ich sie weglassen, sondern nur die Punkte.
JDK 11
Schritt einrichten
Ich benutze die offizielle Aktion "Setup-Java". Es scheint jedoch, dass die Zulu-Version von OpenJDK hier übernommen wird (Zulu wird grundsätzlich berechnet, aber hängt es damit zusammen, weil es bei Verwendung von Azure kostenlos war?). Einige Leute haben die AdoptOpenJDK-Version erstellt, daher ist es eine gute Idee, auf dem Marktplatz danach zu suchen und sie zu verwenden.
Schritt "Testergebnisse sammeln"
mvn site -DgenerateReports=false -Daggregate=true surefire-report:report-only
Da Sie den JUnit-Testbericht auf der Seite nicht sehen können (obwohl Sie je nach Erfolg oder Misserfolg des Workflows feststellen können, ob der Test fehlgeschlagen ist), ist es für das menschliche Auge schwierig, ihn zu verstehen, selbst wenn Sie die XML-Datei herunterladen. Ich versuche auch, die HTML-Version zu speichern.
---Daggregate = true
ist eine Option zum Aggregieren der Ergebnisse von Submodulen.
--site -DgenerateReports = false
gibt nur CSS-Dateien und Bilddateien aus.
――Nach mkdir
ist es ein Schritt, einen Ordner zu erstellen und alles in Artifact zu kopieren, damit der Junit-Ergebnisbericht im XML-Format gemeinsam in Artifact hochgeladen werden kann. (Wie unten beschrieben
Beim Hochladen auf Artefakt können reguläre Ausdrücke und Platzhalter nicht verwendet werden, daher werden sie in einem Verzeichnis zusammengefasst.
** Nachtrag 2020/03/25 ** ~~ Bei dieser Schreibmethode wird der Build-Erfolg gemeldet, auch wenn der Test fehlschlägt. Es scheint also, dass Sie über andere Methoden nachdenken müssen. Ich war in Schwierigkeiten ... ~~
** Nachtrag 2020/03/27 ** Es ist jetzt möglich, einen von safefire ausgegebenen HTML-Bericht auszugeben, während ein Testfehler festgestellt wird. Daher ändere ich ihn mit diesem Muster in yml.
Ich habe es auch beim Android-Build (https://qiita.com/kasa_le/items/5feb953cd50489c30c90) angesprochen, und da ich damit vertraut war, war es einfacher einzurichten als die beiden vorherigen (AppVeyor, CircleCI). Ich war ein wenig süchtig nach dem todsicheren Bericht.
Es wäre schön, die Testergebnisse auf der Seite Aktionen zu sehen. Jetzt kann ich es erst sehen, wenn ich es einzeln heruntergeladen und entpackt habe. Das ist also ein Ärger.
Ich frage mich, ob es möglich sein wird, die HTML-Spucke aus todsicheren Gründen auf Github Pages hochzuladen, aber ich habe sie noch nicht im Detail untersucht.
Oh ja, der Pfad von Artifact scheint nicht in der Lage zu sein, reguläre Ausdrücke oder Platzhalter wie CircleCI zu verwenden, was unpraktisch ist.
Recommended Posts