Erstellen und testen Sie Java + Gradle-Anwendungen mit Wercker
Obwohl mein Aspekt der Arbeitsaufzeichnung stark ist, habe ich das Verfahren für Wercker basierend auf der tatsächlichen Arbeitsaufzeichnung erstellt. Ich bin neu bei CI selbst, daher kann es einige Fehler geben. In diesem Fall weisen Sie bitte darauf hin.
Überblick
Dies ist das Verfahren für die automatische Erstellung und den automatischen Test mit Wercker im GitHub-Repository von Java-Anwendungen mit Gradle.
Ich habe hier öffentliche Repositorys getestet, aber ich könnte auch private Repositorys ausprobieren und Ergebnisse hinzufügen.
Wercker
URL
https://app.wercker.com/
Überblick
Wercker, Lesen ist Arbeiter. Kürzlich von Oracle übernommen. Sie können Ihr privates Repository kostenlos nutzen. Sie können eine Build-Umgebung mit Docker erstellen.
Inhaltsverzeichnis
- Wercker-Anmeldung
- Registrieren Sie das GitHub-Repository bei Wercker
- Erstellen Sie wercker.yml, verschieben Sie es in das GitHub-Repository, erstellen Sie es automatisch und testen Sie es automatisch
- Legen Sie wercker.yml fest, damit der Build übergeben wird
- Stellen Sie sicher, dass der Build auch bei Wercker fehlschlägt, wenn der JUnit-Test auf Gradle fehlschlägt.
- Wercker-Check im GitHub-Repository erzwingen und Zusammenführung bei Test-NG ablehnen
Wercker-Anmeldung
- Greifen Sie auf Wercker zu
- Sie können sich mit Ihrem GitHub-Konto anmelden
Registrieren Sie das GitHub-Repository bei Wercker
- Klicken Sie auf Wercker auf die Schaltfläche Erste Anwendung erstellen
- Wählen Sie den Bildschirm Benutzer & SCM
- Select a user from the doropdown begin.*
--Werckers Konto wird angezeigt. Wählen Sie das zu verwendende Konto aus
- Select SCM
- Unterstützt von GitHub, Bitbucket und GitLab
――Dieser Artikel verwendet GitHub. Wählen Sie daher GitHub aus
- Wählen Sie den Bildschirm Repository
- Wählen Sie das GitHub-Repository aus, das Sie zu Wercker hinzufügen möchten
- Es werden nur Repositorys mit Administratorrechten angezeigt (lesen Sie die Wercker-Dokumentation, weisen Sie jedoch darauf hin, wenn dies falsch ist).
- SSH-Schlüsselbildschirm einrichten
- wercker will check out the code without using an SSH key
--Wercker checkt das Ziel-Repository ohne SSH-Schlüssel aus
- Wählen Sie diese Option, da dies empfohlen wird
- Add the deploy key to the selected repository for me
- Registrieren Sie den SSH-Schlüssel, um auf das Repository zuzugreifen
- Veraltet, wahrscheinlich, weil Sie Repository-Operationen nicht einfach übergeben können
- Überprüfen Sie den Bildschirm
- Stellen Sie sicher, dass die Einstellungen Ihren Vorstellungen entsprechen
- Make my app public
- Wenn diese Option aktiviert ist, können Sie die Bereitstellungsinformationen veröffentlichen, wenn Sie auf das später angezeigte Badge klicken.
- Nicht prüfen, ob nicht benötigt
- Antrag auf Wercker hinzugefügt
Erstellen Sie wercker.yml und verschieben Sie es in das GitHub-Repository
- Auf dem Bildschirm zum Abschluss der Repository-Registrierung wird der Bildschirm zum Hinzufügen von yml unverändert geöffnet
- Wählen Sie Java Gradle aus dem Auswahlfeld mit der Bezeichnung Sprache auswählen
- Der Inhalt von wercker.yml wird angezeigt. Kopieren Sie ihn in die Zwischenablage.
- Erstellen Sie eine Datei mit dem kopierten Inhalt als wercker.yml-Datei direkt unter dem Stammverzeichnis des Repositorys.
- Die Java-Version muss möglicherweise entsprechend geändert werden
- Von
`box: openjdk: 8-jdk``` zu
box: openjdk: 10.0.1-jdk``` geändert
--box ist gleichbedeutend mit Pull in Dockerfile
- Beziehen Sie sich auf openjdk offiziell DockerHub und beschreiben Sie den Teil `` `10.0.1-jdk```.
- Schieben Sie wercker.yml in das Repository
- Fangen Sie den Push und laufen Sie automatisch auf Wercker
- Erfolg oder Fehler
- Bei meiner Arbeit bin ich während der Build-Phase von werkker mit einem Fehler gescheitert.
- Zum Zeitpunkt der Ausführung gab es ein Protokoll, in dem Gradle 4.2 angegeben war. Da Gradle 4.2 jedoch Java 10 nicht unterstützt, tritt ein Fehler auf.
- Da es mit Gradle 4.8 entwickelt wurde, ist die verwendete Gradle-Version niedrig.
- Erläutern Sie die Lösung des Fehlers in der Angelegenheit
Wercker Der Inhalt der Standard-wercker.yml
# This references an OpenJDK container from the
# Docker Hub https://hub.docker.com/_/openjdk/
# Read more about containers on our dev center
# http://devcenter.wercker.com/docs/containers/index.html
box: openjdk:8-jdk
# This is the build pipeline. Pipelines are the core of wercker
# Read more about pipelines on our dev center
# http://devcenter.wercker.com/docs/pipelines/index.html
build:
# Steps make up the actions in your pipeline
# Read more about steps on our dev center:
# http://devcenter.wercker.com/docs/steps/index.html
steps:
# https://github.com/wercker/step-gradle
- java/gradle:
task: build
cache_project_cache: true
Legen Sie wercker.yml fest, damit der Build übergeben wird
Gegenmaßnahmen
- Wenn Sie version: im Build-Element von wercker.yml, java / gradle festlegen, sollten Sie in der Lage sein, eine beliebige Version zu erstellen.
- gescheitert
--Kann in java / gradle von wercker.yml angegeben werden, also wurde 4.8.0 gesetzt
- Die hier referenzierte Version wird im GitHub Repository verwaltet, war aber zu diesem Zeitpunkt nur bis zu 4.2.
- Infolgedessen kann Gradle 4.8 nicht bezogen und nicht installiert werden.
- Wenn Sie den Gradle-Wrapper verwenden, anstatt sich auf Java / Gradle von wercker.yml zu verlassen, sollten Sie ihn mit jeder Version ausführen können.
- Wercker.yml gemäß [Wercker Official Guide] geändert (http://devcenter.wercker.com/docs/quickstarts/building/java)
- Da es sich im endgültigen Inhalt widerspiegelt, siehe unten für Details.
- Das ursprünglich geschriebene Build-Schritt-Element wurde gelöscht
- Führen Sie gradlew bootRun auf dem Entwicklungselement aus
- Führen Sie gradlew Build on Build Item aus
- gescheitert
--Wenn Wercker in die Erstellungsphase eintritt, tritt `` `Fehler auf: Hauptklasse org.gradle.wrapper.GradleWrapperMain``` konnte nicht gefunden oder geladen werden
- Fügen Sie gradle-wrapper.jar zum Repository hinzu, damit gradlew ausgeführt werden kann
- Alle .jars wurden nicht mit .gitignore festgelegt
- Die Klasse konnte nicht gefunden werden, da sich im Verzeichnis gradle / wrapper direkt unter dem Stammverzeichnis des Repositorys keine gradle-wrapper.jar befindet.
- `` `! Gradle-wrapper.jar``` zu .gitignore hinzugefügt und gradle-wrapper.jar zum Festschreiben hinzugefügt
- Es ist auch ein notwendiges JAR für diejenigen, die gradle nicht installieren und mit gradlew ausführen. Daher ist es in Ordnung, es zu einem Repository-Verwaltungsziel zu machen
- Erfolgreich auf Wercker aufbauen
Final werkker.yml
# This references an OpenJDK container from the
# Docker Hub https://hub.docker.com/_/openjdk/
# Read more about containers on our dev center
# http://devcenter.wercker.com/docs/containers/index.html
box: openjdk:10.0.1-jdk
# defining the dev pipeline
dev:
steps:
# A step that executes `gradle bootRun` command
- script:
name: run gradle
code: |
./gradlew bootRun
# Build definition
build:
# The steps that will be executed on build
steps:
# A step that executes `gradle build` command
- script:
name: run gradle
code: |
./gradlew --full-stacktrace -q --project-cache-dir=$WERCKER_CACHE_DIR build
Bestätigen Sie, dass der Build auch bei Wercker fehlschlägt, wenn der JUnit-Test auf Gradle fehlschlägt.
- Wagen Sie es, den Testcode so zu ändern, dass NG in der Testklasse erscheint
- Übernehmen Sie den Code mit dem NG-Test und senden Sie ihn an das GitHub-Repository
- Bestätigen Sie, dass der Build auf Wercker fehlschlägt
――Ich habe es tatsächlich versucht und bestätigt, dass die Build-Phase fehlgeschlagen ist.
Wercker-Check im GitHub-Repository erzwingen und Zusammenführung bei Test-NG ablehnen
- Öffnen Sie Einstellungen im GutHub-Repository
- Öffnen Sie Zweige
- Wählen Sie den Hauptzweig aus und öffnen Sie ihn
- Aktivieren Vor dem Zusammenführen müssen Statusprüfungen bestanden werden
- Überprüfen Sie den Wercker / Build-Gegenstand
- Nachfolgende Pull-Anforderungen an den Master können ohne einen erfolgreichen Wercker-Build nicht zusammengeführt werden
Schließlich
Zu diesem Zeitpunkt können Sie den Push zu GitHub auf Wercker abfangen und automatisch prüfen, ob der Build (Test gleichzeitig mit dem Build durchgeführt) erfolgreich ist oder fehlschlägt.
Es gibt noch viele Dinge, die durch Festlegen des Workflows getan werden können. Daher plane ich, sie als separaten Artikel zu belassen, wenn ich es erneut versuche.
Bonus
Wercker Developer Documentation
Wie Wercker funktioniert, wie man eine eigene Box und einen eigenen Schritt erstellt