From b15dcab04e68474964586f5324f9a254b4090c4e Mon Sep 17 00:00:00 2001 From: Tobias Jordine <jordine@hdm-stuttgart.de> Date: Sun, 8 May 2022 18:23:40 +0200 Subject: [PATCH] updated slides, assignment, bewertungsbogen --- website/assignments/Container-CI_CD.md | 16 ++++++++++++++++ website/assignments/bewertungsbogen.xlsx | Bin 18772 -> 18877 bytes website/container-ci-cd.html | 9 ++++++--- website/index.html | 4 +++- website/lecturenotes/20220509.md | 6 ++++++ 5 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 website/assignments/Container-CI_CD.md create mode 100644 website/lecturenotes/20220509.md diff --git a/website/assignments/Container-CI_CD.md b/website/assignments/Container-CI_CD.md new file mode 100644 index 0000000..b5fb8ee --- /dev/null +++ b/website/assignments/Container-CI_CD.md @@ -0,0 +1,16 @@ +# Ãœbungen Software-Entwicklung 3: Build Management & Testing + +## Ausgangslage +In der Vorlesung wurde die Container-Technologie (Docker) als auch die Prinzipien von Continuous Integration/Continuous Deployment vorgestellt. Mit Hilfe con GitLab sollen Sie nun diese Prinzipien in Ihrem Projekt anwenden. Voraussetzung dafür ist, dass sie Ihr Projekt mit Hilfe eines Buildmangementtools (z.B. `maven`) per Kommandozeile bauen, testen und paketieren können. + +## Aufgabe +* Erstellen Sie eine passende `.gitlab-ci.yml`, sodass sie die Build-Lifecycle Phasen `compile`, `test` und `package` in GitLab ausführen können. +* Ãœberlegen Sie sich welche Phasen des Build-Lifecycle immer ausgeführt werden müssen und welche nur bei bestimmten Ereignissen (z.B. neuer `Tag` erstellt). + +## Tipps +* Nutzen Sie als Start die `.gitlab-ci.yml` aus dem [Vorlesungsprojekt](https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022projekt) +* Weitere Informationen gibt es in der [GitLab Ci Dokumentation](https://docs.gitlab.com/ee/ci/) bzw. in der [Keyword Reference](https://docs.gitlab.com/ee/ci/yaml/) +* Ggf. kann es sinnvoll sein, Ihre Anwendung oder Teile davon (z.B. Datenbank, Webserver) in einem Container zu kapseln, sodass eine gleichbleibende Ausführungsumgebung sichergestellt ist. + +## Ziele +* Ihr Projekt wird über einen CI/CD-Mechanismus regelmäßig gebaut und getestet. \ No newline at end of file diff --git a/website/assignments/bewertungsbogen.xlsx b/website/assignments/bewertungsbogen.xlsx index 64a4ae2cfc9aa0f5e6f0e68036b4409677907e5c..11e439cd7eb2f5397d2724708950b306e951883e 100644 GIT binary patch delta 2938 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 delta 2831 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 diff --git a/website/container-ci-cd.html b/website/container-ci-cd.html index 06b6c20..b46b28f 100644 --- a/website/container-ci-cd.html +++ b/website/container-ci-cd.html @@ -156,7 +156,7 @@ _Schematische Darstellung_ **Dockerfile**: Beschreibt die Konfiguration eines Images. -**docker-compose.yml**: Konfigurationsdatei zur Ausführung ein oder mehrer Container. +**docker-compose.yml**: Konfigurationsdatei zur Ausführung ein oder mehrere Container. --- # Grundprinzipien @@ -243,7 +243,7 @@ services: `docker-compose.yml` muss sich im aktuellen Verzeichnis befinden ```bash -# Mit M1 Chip docker compose, sonst docker-compose +# Mit M1 Chip "docker compose", sonst "docker-compose" docker compose up -d ``` @@ -314,8 +314,11 @@ _nach ["What is Continuous Deployment?", AWS, 2022](https://aws.amazon.com/devop # Beispiel CI/CD mit GitLab * Beschreibung in `.gitlab-ci.yml` +* Voraussetzungen: + * CI/CD-Funktionen wurden für das Repo aktiviert: Settings âž¡ï¸ General âž¡ï¸ Visibility, project features, permissions âž¡ï¸ CI/CD (aktivieren) + * Runner wurden zugewiesen: Settings âž¡ï¸ CI/CD âž¡ï¸ Runners âž¡ï¸ Enable shared runners for this project -> Blick ins Projekt +> Blick ins [Projekt](https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022projekt) </textarea> <script src="js/remark.min.js"> </script> diff --git a/website/index.html b/website/index.html index 73d20cc..3303483 100644 --- a/website/index.html +++ b/website/index.html @@ -15,6 +15,7 @@ <li><a href="softwarearchitektur.html" target="_blank">Softwarearchitektur</a></li> <li><a href="clean-code_doku_git.html" target="_blank">git, Dokumentation, Clean Code</a></li> <li><a href="maven-testing.html" target="_blank">Maven & Testing</a></li> + <li><a href="container-ci-cd.html" target="_blank">Container & CI/CD</a></li> </ul> <h3>Vorlesungnotizen</h3> @@ -23,6 +24,7 @@ <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/lecturenotes/20220328.md" target="_blank">Vorlesungsnotizen - 28.03.2022</a></li> <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/lecturenotes/20220404.md" target="_blank">Vorlesungsnotizen - 04.04.2022</a></li> <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/lecturenotes/20220411.md" target="_blank">Vorlesungsnotizen - 11.04.2022</a></li> + <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/lecturenotes/20220509.md" target="_blank">Vorlesungsnotizen - 09.05.2022</a></li> </ul> <h3>Projekt</h3> @@ -49,7 +51,7 @@ <h3>Aufzeichnungen</h3> - <b>Die Aufzeichnungen sind nur für Teilnehmende der Veranstaltung bestimmt. Weitergabe nicht gestattet.</b> + <b>Die Aufzeichnungen sind nur für Teilnehmende der Veranstaltung bestimmt. Die Weitergabe ist nicht gestattet.</b> <ul> <li><a href="https://bigbluebutton.hdm-stuttgart.de/playback/presentation/2.3/cf93de2bb79bc2a9a9374f2f59a28fe89d96716b-1648475595746" target="_blank">28.03.: Software-Architektur</a></li> diff --git a/website/lecturenotes/20220509.md b/website/lecturenotes/20220509.md new file mode 100644 index 0000000..f4c58c6 --- /dev/null +++ b/website/lecturenotes/20220509.md @@ -0,0 +1,6 @@ +# Vorlesungsnotizen - 09.05.2022 + +## Container + + +## CI/CD \ No newline at end of file -- GitLab