Ausgehend vom folgenden Artikel werde ich diesmal versuchen, CircleCI zu verwenden. https://qiita.com/kasa_le/items/1b97b0d36c81785522a8
CircleCI Hier können Sie sich registrieren. Es gibt nur eine Möglichkeit, eine Verbindung zu Github oder Bitbucket herzustellen. Bitte geben Sie andere Repositories auf (lacht). https://circleci.com/
Es gibt viele Vorlagen, und eine bibliotheksähnliche Funktion, die Jobs mit dem Namen Orb zusammenfasst, ist verteilt. Es scheint also, dass die Build-Umgebung der wichtigsten Orte vorhanden ist. Sie können auch .NET, Android usw. erstellen.
Die Verbindung zu Github erfolgt als ** Authorized OAuth Apps **. Es wird unter [Einstellungen] - [Anwendungen] - [Autorisierte OAuth-Apps] Ihres Github-Kontos registriert. (Intern scheint es sich um eine Verbindung mit dem SSH-Schlüssel zu handeln.)
Es unterstützt auch die Cache-Funktion.
Das Betriebssystem-Image unterstützt Linux, Windows und MacOS, aber ich konnte verschiedene Docker-Images abrufen, was diesmal hilfreich war.
Ich denke, der kostenlose Plan kann dem persönlichen Hobby-Gebrauch standhalten, aber beachten Sie, dass das Betriebssystem-Image nur mit Linux oder Windows kompatibel ist. Ansonsten werden Sie monatlich belastet.
https://circleci.com/ja/pricing/ Es scheint, dass es einen großen Unterschied in der Höhe des Geldbetrags zwischen den Plänen gibt, aber wenn Sie sich das unten ansehen, handelt es sich um ein Abrechnungssystem (monatlicher Betrag), das sich nach der Anzahl der Teammitglieder und dem Nutzungsbetrag richtet.
Ich denke, es ist leicht abzuschätzen, ob das Projekt einen stabilen CI-Betrieb hat. Auf der anderen Seite kostet ein Projekt, das nur für einen bestimmten Zeitraum gewartet und entwickelt wird und viel herumläuft, aber bei anderen Operationen nicht viel herumläuft, eine monatliche Mindestgebühr, ohne etwas zu tun. Daher möchte ich diesen Bereich identifizieren und nutzen.
Und im Fall von OSS
Bieten Sie Kunden mit kostenlosen Plänen 400.000 monatliche Credits an
Es scheint jedoch, dass nur Linux verwendet werden kann (aus den FAQ unter https://circleci.com/ja/pricing/). Seien Sie also vorsichtig.
Eine lokale Version ist auch für Unternehmen verfügbar (kontaktieren Sie uns). https://circleci.com/ja/enterprise/
Es ist ein Bild eines traditionsreichen Geschäfts. Daher ist es derzeit Version 2.1, aber als ich danach gesucht habe, habe ich viele Informationen aus alten Zeiten gefunden, und es war ein wenig schwierig, an die Informationen in der aktuellen Version zu gelangen.
Es scheint auch, dass die Benutzeroberfläche der Website geändert wird und die neue Benutzeroberfläche und die alte Benutzeroberfläche durcheinander sind. Daher bin ich ziemlich verwirrt darüber, wie ich zu diesem Bildschirm zurückkehren kann. Es heißt, dass Sie den alten Bildschirm nach dem 15. April nicht mehr sehen können, sodass er sich danach möglicherweise beruhigt.
Die Markdown-Informationen beim Anhängen eines Statusausweises usw. bieten eine Seite, auf der Sie Ihr eigenes Projekt, Ihren Zweigstellennamen usw. festlegen und in die alte Benutzeroberfläche kopieren können. In der neuen Benutzeroberfläche ist dies jedoch der Fall Dies ist etwas unpraktisch, da die Seite nicht mehr vorhanden ist und sich nur das Beispiel auf der Seite mit den allgemeinen Erklärungen befindet.
Außerdem kann ich den Workflow nicht manuell ausführen. (Obwohl Sie den ausgeführten [erneut ausführen] können)
Verwenden Sie nur die Datei "yml". Erstellen Sie ein Verzeichnis mit dem Namen ".circleci" direkt unter dem Stammverzeichnis des Projekts und platzieren Sie "config.yml" darunter.
Am Ende sind hier die Einstellungen, die für das Erstellen und Testen gut funktioniert haben.
.circleci/config.yml
version: 2.1
jobs:
build:
docker:
- image: 'cimg/openjdk:11.0.6'
steps:
- checkout
- run:
name: Build and test
command: mvn clean install
- store_artifacts:
path: repository/target/repository.jar
- store_artifacts:
path: serverapi/target/serverapi.war
- run:
name: Save test results
command: |
mkdir -p ~/test-results/junit/
find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} ~/test-results/junit/ \;
when: always
- store_test_results:
path: ~/test-results
- store_artifacts:
path: ~/test-results/junit
workflows:
version: 2
maven_test:
jobs:
- build:
filters:
branches:
only: feature/for_circleci
Wenn Sie in der ersten Vorlage "Java (Maven)" auswählen, wird eine mit Orb erstellt. In diesem Bild wird jedoch angegeben, dass sich im Submodul-Repository kein "jar" befindet, und dies hängt davon ab. Der Build des Submoduls ist fehlgeschlagen.
Ich habe versucht, die JDK-Version für Orb mit ctag
von Executor anzugeben, aber ich konnte sie nicht bestehen, weil ich yml
nicht verstanden habe.
Durch Bezugnahme auf den Orb-Quellcode und Verwendung des Docker-Images wie oben beschrieben wurde es daher möglich, mit der neuesten Version von OpenJDK 11 (LTS-Version) zu erstellen, und es wurde erfolgreich.
Maven Orb Seite https://circleci.com/orbs/registry/orb/circleci/maven
Die Schritte sind wie folgt.
build
checkout
--Überprüfen Sie den ZielzweigBuild and test
mvn clean install
ausstore_artifacts
repository.jar
und serverapi.war
als Artefakte (*)Save test results
--Kopieren Sie den todsicheren Testbericht jedes Moduls in ein Verzeichnis (*).store_test_results
--Testergebnisse archivierenstore_artifacts
Für den "Build" -Job habe ich eine Filtereinstellung, die den Zweig auf "Festival / for_circleci" beschränkt.
Der Teil (*) in der Schritterklärung unterstützt die Pfadangabe durch Platzhalter und reguläre Ausdrücke nicht!
Das ist sehr mühsam ...
In Mavens pom können Sie beispielsweise den Dateinamen des Produkts mit dem Tag "
repository-1.1-SNAPSHOP.jar
Kann wie benannt werden. Es kommt mit einer Version. Dies ist leichter zu verstehen, aber wenn Sie dies tun, müssen Sie den Namen der Artefaktdatei "yml" später neu schreiben, wenn Sie die Version aktualisieren, was sehr unpraktisch ist.
In diesem Projekt habe ich dieses Mal versucht, das Problem zu lösen, indem ich es als "repository.jar" mit dem Tag "
Recommended Posts