[JAVA] CI für Maven-Projekt auf AppVeyor

Es ist ein Memorandum, weil ich das im folgenden Artikel erstellte Maven + Java-Projekt untersucht habe, um es mit CI zu drehen. https://qiita.com/kasa_le/items/db0d84e3e868ff14bc2b

AppVeyor

Hier können Sie sich registrieren. https://www.appveyor.com/

Charakteristisch

Grundsätzlich scheint der Hauptzweck darin zu bestehen, auf Windows oder Visual Studio aufzubauen.

Sie können auch eine andere Verbindung zu Git als Github, GitLab und Bitbucket herstellen. (* Es gibt jedoch einige Einschränkungen. Siehe unten) Außerdem musste ich mit Git eine Verbindung zu SSH herstellen, aber AppVeyor unterstützt dies auch.

Es unterstützt auch das Caching.

Es gibt auch macOS (Catalina, Majave) und Ubuntu im OS-Image, aber ich hatte große Probleme, weil es keine Vorlage für Maven Build oder ähnliches gab.

Gebühr

Kostenlos für Open Source. Davon abgesehen ist es im Grunde eine monatliche Gebühr. Wenn das Projekt in Betrieb zu sein scheint, aber abgelaufen ist, kann es gut sein, da die Kosten leicht abzuschätzen sind. Die Anzahl der Teammitglieder wird nicht besonders erwähnt, daher gibt es meines Erachtens keine Begrenzung. https://www.appveyor.com/docs/team-setup/

Performance

Sakura Editor ist als Texteditor bekannt, der unter Windows einfach zu verwenden ist, aber anscheinend wird AppVeyor verwendet. (Es scheint zusammen mit Azure Pipelines verwendet zu werden.)

Aufbau

Grundsätzlich werden CI-Jobs definiert, indem eine Datei mit dem Namen "appveyor.yml" direkt unter dem Stammverzeichnis des Projekts abgelegt wird.

1. Ändern Sie die MS Build-Einstellungen

Das erste, was Sie tun müssen, ist, dass der Build ein MS-Build (für Visual Studio) ist. Sie müssen ihn also von Ihrem Browser entfernen.

--Öffnen Sie die Projektseite und wählen Sie auf der Registerkarte [Einstellungen] die Option [Erstellen].

appveyor_msbuild_off.png

--Wählen Sie [Skript] neben [MS Build]

appveyor_script_select.png

--Klicken Sie auf [Speichern]

Damit ist die Vorbereitung abgeschlossen.

2. Erstellen Sie "appveyor.yml"

Hier ist vorerst die appveyor.yml, die endlich erfolgreich erstellt und getestet wurde.

appveyor.yml


# Branches
branches:
  only:
  - feature/for_ci_test
image: ubuntu

install: 
- sh: sudo add-apt-repository --yes ppa:rpardini/adoptopenjdk
- sh: sudo apt-get update
- sh: sudo apt-get install -y adoptopenjdk-11-jdk-hotspot-installer
- sh: sudo apt install adoptopenjdk-11-jdk-hotspot-set-default
#/usr/lib/jvm/adoptopenjdk-11-jdk-hotspot
- sh: export JAVA_HOME=/usr/lib/jvm/adoptopenjdk-11-jdk-hotspot
- sh: echo $JAVA_HOME
- sh: export PATH=${PATH}

before_build:
- mvn -v

build_script:
- mvn clean package -DskipTests

test_script:
- mvn install verify

on_finish:
  - sh: |
      find "$APPVEYOR_BUILD_FOLDER" -type f -name 'TEST*.xml' -print0 | xargs -0 -I '{}' curl -F 'file=@{}' "https://ci.appveyor.com/api/testresults/junit/$APPVEYOR_JOB_ID"
      
artifacts:
  - path: "**/target/*.?ar"

version: "1.1.{build}"

Der Inhalt ist wie folgt:

Wenn Sie dies festschreiben und direkt unter das Stammverzeichnis des Projekts verschieben, wird CI gestartet.

Da es zwischengespeichert werden kann, kann es sinnvoll sein, auf Java-Ordner abzuzielen. In diesem Fall müssen Sie den sh-Befehlsteil neu schreiben, um zu entscheiden, ob jdk installiert werden soll, abhängig vom Vorhandensein oder Fehlen des Caches.

Vorsichtsmaßnahmen beim Herstellen einer Verbindung zu einem anderen Git als dem Git-Repository-Dienst

Im Github-Repository habe ich die obige Datei "appveyor.yml" abgelegt und damit erstellt, aber wenn ich eine Verbindung zu Git herstelle, die nicht zu den Repository-Diensten ** wie Github, GitLab, Bitbucket ** gehört (z. B. intern). Der in eingerichtete Git-Server (z. B. der Git-Server) befindet sich im Projekt appveyor.yml Schien mich überhaupt nicht zu sehen.

Vorerst können ähnliche Einstellungen über den Browser vorgenommen werden, aber es war eine Menge Arbeit, da ich sie hier und da über Seiten hinweg einstellen musste und es schwierig war, den juckenden Ort zu erreichen, daher werde ich in Betracht ziehen, sie zu verwenden. Wenn Sie vorsichtig sein müssen.

Impressionen

Ursprünglich war es für das Erstellen mit Visual Studio gedacht, also auch für Projekte wie C #, und ich hatte den Eindruck, dass es sonst nicht viel Fokus gab. Ich dachte ehrlich, es wäre besser, einen CI-Service in Betracht zu ziehen, der reich an diesen Vorlagen ist.

Außerdem hat mein Beispielprojekt (Jersey Sample) sowohl Build als auch Test bestanden, aber ein anderes Projekt, das in derselben Umgebung ausgeführt wird, konnte im folgenden Status nicht übergeben werden.

Betriebssystem-Image Phänomen
Unter Windows Stürzt es während des Maven-Builds ab?Exit 1Ergebend
Unter macOS Möglicherweise reagiert es während des Maven-Builds nicht mehr oder der Build endet nie
Auf Ubuntu Wird es mitten im Test abstürzen?Exit 1Ergebend(※手元のAuf Ubuntuではビルドもテストも正常終了する

Recommended Posts

CI für Maven-Projekt auf AppVeyor
CI für Maven-Projekt bei CircleCI
CI für Maven-Projekt bei Github Actions
CI für Maven-Projekt in Azure-Pipelines
Maven-Projekt erstellen
Maven auf CentOS 7 Tutorial
CI / CD-Übung für Anfänger - Teil 3 - Vorbereitung für das Entwicklungsprojekt
Erstellen eines Maven-Webprojekts
Stellen Sie Maven das Tomcat-Projekt vor
[Für Super-Anfänger] Maven Super-Einführung
Ein Muss für Anfänger! Eine konkrete Möglichkeit, ein X-Code-Projekt auf Github zu verwalten
[Eclipse / Github] Lassen Sie uns das mit Eclipse auf Github erstellte Projekt für Anfänger teilen