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/
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.
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/
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.)
Grundsätzlich werden CI-Jobs definiert, indem eine Datei mit dem Namen "appveyor.yml" direkt unter dem Stammverzeichnis des Projekts abgelegt wird.
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].
--Wählen Sie [Skript] neben [MS Build]
--Klicken Sie auf [Speichern]
Damit ist die Vorbereitung abgeschlossen.
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:
feature / for_ci_test
ausführenstack: jdk 11
festgelegt werden, musste jedoch separat installiert werden, da die Version des an Bord befindlichen JDK alt ist und der Fehler nicht behoben wurde.
――Der Grund, warum ich den Pfad mit Gewalt festgelegt habe, ist, dass die Methode zum Wechseln zwischen anderen Versionen nicht funktioniert hat.build_script
--maven build (JUnit-Test überspringen)
--test_script
Abschnitt
Befehl --mvn (mit Test)* .jar
und * .war
als ArtefakteWenn 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.
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.
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 1 Ergebend |
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 1 Ergebend(※手元のAuf Ubuntuではビルドもテストも正常終了する |
Recommended Posts