Achim Mertens avatar

Java Training Block 11+12 – Tag 10: Pipelines/CICD

achimmertens

Published: 25 Mar 2022 › Updated: 25 Mar 2022Java Training Block 11+12 – Tag 10: Pipelines/CICD

Java Training Block 11+12 – Tag 10: Pipelines/CICD

Ich nehme derzeit an einer Akademie zum Java Fullstack Software Engineer teil. In den kommenden Wochen möchte ich hier meine Mitschrift, so gut es geht, aufzeichnen und mitteilen. Hier ist das, was ich vom zehnten Tag in Block 11+12 (wir springen etwas hin und her) gelernt und behalten habe:


Git Workflow Zusammenfassung

Wenn ich ein Projekt in Gitlab oder Github erstellen möchte, bietet es sich an, dies wie folgt zu machen:

Ich erstelle ein lokales Projekt in einer Bash oder in IntelliJ. Dort kann auch schon der erste Inhalt erfolgen. Zusätzlich erstelle ich ein leeres Repository in Github.

Die folgenden lokalen Befehle beschreiben wie beide Projekte miteinander verknüpft werden:

Und hier in Text-Form:

git init

git config --global user.name "Hans-Joachim Blanke"
git config --global user.email "joachim@gitlab.i4p.loc"
Browser: http://gitlab.i4p.loc/joachim
Create new empty project: ueb-geometie-git-workflow
git remote rename origin old-origin //optional
git remote add origin http://dev.i4p.loc/joachim/ueb-geometie-git-workflow.git
git push -u origin --all
git push -u origin --tags
git push --set-upstream origin main

  • Branches
    Ueb-Branches (Geometrie)

Branch-Kommandos:

git branch // Zeige alle Branches an
git branch [branch_name] // Lege neuen Branch an
git checkout [branch_name] // Wechsel Working-Directory
git merge [from name] // Merge Branch
git branch -d [name] // Delete Branch


Pipelines / CICD

Links:

  • https://docs.gitlab.com/ee/ci/quick_start/
  • https://docs.gitlab.com/ee/ci/examples/
  • https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates
  • https://testdriven.io/blog/gitlab-ci-docker/
  • https://docs.gitlab.com/ee/ci/examples
  • https://gitlab.com/gitlab-examples/spring-gitlab-cf-deploy-demo/-/blob/master/.gitlab-ci.yml
  • https://torlenor.org/linux/k8s/devops/2020/12/23/deployment_on_k8s_from_gitlab_cicd.html
  • https://docs.gitlab.com/ee/ci/docker/using_docker_images.html
  • https://about.gitlab.com/blog/2018/02/05/test-all-the-things-gitlab-ci-docker-examples/
  • https://gableroux.com/posts/2018-01-16-test-all-the-things-in-gitlab-ci-with-docker-by-example/

Struktur eines Gitlab-Servers und ein Gitlab-Runners:

Im Gitlab Runner laufen verschiedene Shell-Scripte.
Die Gitlab-Runner registrieren sich an Gitlab-Token.
Der jeweilige Runner wird nach der Registrierung den jeweiligen Projekten zur Verfügung gestellt.

Hier ein Auszug aus einer .gitlab-ci.yml:

Die Pipeline durchläuft mehrere Stages und damit mehrere Jobs. Diese Jobs laufen meistens in eigenen Docker-Containern:

Die Gitruner sorgen dafür, dass die einzelnen Jobs durchgeführt werden:

Praxis-Tipp: Der Gitlab-Runner-User hat ein paar Dateien, die  manchmal zu merkwürdigen Fehlermeldungen führen. Die sollten wir rausschmeißen:

Installation vom Gitlab-Runner:

Runner erstellen für ein Projekt:

Im Hintergrund sieht der Registrierungsprozess wie folgt aus (die "Zu Fuß-Methode"):

Dadurch wird ein neuer Runner ("mylocrunner") erstellt und im Gitlab angezeigt. Dort muss er noch aktiviert werden:

Disclaimer

Alles was ich mitschrieb und verstanden habe ist ohne Gewähr. Die Bilder stammen teilweise aus dem Internet und wir haben keine Urheberansprüche darauf.

Besten Dank an unseren sehr empfehlenswerten

Trainer: Hans-Joachim Blanke blanke@4point.de

In den nächsten Tagen geht es weiter, so: stay tuned!

Achim Mertens

Leave Java Training Block 11+12 – Tag 10: Pipelines/CICD to:

Written by

Love also your next but one and create more than you destroy.

Read more #cicd posts


Best Posts From Achim Mertens

We have not curated any of achimmertens's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From Achim Mertens