die aktuellste go Version (im Augenblick 1.14.x, https://golang.org). Führe zum Testen "go version" aus.
JetBrains GoLand (aktuelle Version ist 2020.1 RC). Zum einfacheren Update von GoLand kannst Du die JetBrains ToolBox (https://www.jetbrains.com/toolbox-app/) installieren. Diese übernimmt automatische das Updaten Deiner Jetbrains-Produkte.
Unter Windows: wir benötigen make - hier gibt es mehrere Möglichkeiten zur Installation, bspw. mittels Cygwin (https://cygwin.com):
Wähle beim Installer die beiden Pakete gcc-core und make in den aktuellsten Versionen und installiere diese.
Füge dann noch C:\cygwin64\bin zu Deiner Umgebungsvariablen PATH hinzu, damit Du die cygwin-Tools (make, rm, ...) von Deinem normalen Terminal (Command) aus verwenden kannst (starte das Terminal neu, damit die Änderungen wirksam werden).
Forke dieses Projekt in Deinen GitLab-Namespace. Falls dies nicht geht, weil Du dieses Projekt bereits geforkt hast: Benenne dein altes Projekt in Deinem Namespace unter Settings->General->Advanced->Rename project um (benenne sowohl den Projektnamen, als auch den Repository-Link um!). Danach entfernst Du die Fork-Beziehung unter Settings->General->Advanced->Remove fork relationship. Danach kannst Du dieses Projekt in Deinen Namespace neu forken.
Klone Deinen Fork (git clone).
Ändere die Variable DOCKER_REGISTRY in der Datei .gitlab-ci.yml entsprechend des dortigen Kommentars ab.
Aktiviere in Deinem GitLab-Projekt unter Settings->CI/CD->Runners die Shared Runners.
Pushe Deine Änderung(en).
Deine Pipeline in gitlab (unter CI/CD->Pipelines) sollte erfolgreich (=grün) durchlaufen - siehe nach.
Öffne das geklonte Projekt in JetBrains GoLand.
Stelle sicher, dass in JetBrains GoLand Settings/Preferences->Go->GOROOT auf Deine Installation von Go korrekt gesetzt ist.
Aktiviere in JetBrains GoLand in Settings bzw. Preferences die Option Go->Go Modules->Enable Go Modules integration, damit GoLand die Module erkennt.
Hinweis: jeder Microservice enthält eine Datei go.mod, die das dortige go-Modul definiert. Der Modulname ist dort in der ersten Zeile definiert: module git.haw-hamburg.de/aat913/<name des Microservice>. Alle lokalen Imports in diesem Microserviceprojekt beziehen sich auf das Modul. Beispielsweise in der main.go der Import:
In einem Realprojekt würdet Ihr dieses Modulnamen natürlich ändern. Dies ist bei uns allerdings nicht nötig, es kommt nicht zu Konflikten mit den anderen Projekten.
Um das Projekt in Goland ausführen und debuggen zu können: füge eine Go Run-Konfiguration (in der Toolbar in GoLand) für dieses Projekt in GoLand mittles "+ -> Go Build" hinzu, damit Du Deinen Microservice auch über die IDE starten kannst. Achte darauf, dass Du als Run kind die Option Directory wählst und bei Directory das .../cmd/service-Verzeichnis des Microservices referenziert wird. Unter Working directory muss das Verzeichnis des Microservices gesetzt sein, ansonsten kommt es zu einem Fehler, dass das go-Modul nicht gefunden werden kann. Aktiviere auch Run after build. Nun kannst du den Service über die Toolbar (grüner Pfeil) starten.
Führe im Terminal (View->Tool Windows->Terminal) in GoLand im Projektverzeichnis den Befehl make build aus. Dies lädt initial alle abhängigen Pakete herunter.
Öffne die Datei http.go Deines Projekts. Hier sollte nun nichts (mehr) rot markiert sein.
Starte die backingservice-container mittels docker-compose up -d. Schaue mit docker ps, ob sie laufen.
Führe im Terminal in GoLand im Projektverzeichnis den Befehl make test aus. Diese sollten erfolgreich durchlaufen.
Schaue mit Deinem Datenbanktool für MySQL/MariaDB nach, welche Tabellen durch das Ausführen der Testfälle erstellt und gefüllt wurden.
Arbeite mit Postman mit Deiner REST-API (POST /customers und GET /customers), d.h. lege neue Customer an und lasse alle Customer anzeigen. Prüfe den Zustand in Deiner Datenbank mittels Deines Datenbanktools.