Changes for page GitLab Erklärungen

Last modified by pmeyer on 2025/09/12 04:41

edited by Pascal Meyer
on 2025/08/15 00:24
Change comment: Uploaded new attachment "Epic2.png", version {1}
edited by sbeyer1
on 2025/08/25 11:52
Change comment: There is no comment for this version

Summary

Details

insert_drive_file Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.PascalMeyer
1 +XWiki.sbeyer1
Content
... ... @@ -1,3 +1,5 @@
1 +[[image:Main.Organisatorisches.WebHome@softwareprojekt_logo_transparent.png||alt="SoftwareprojektLogo.png" data-xwiki-image-style-alignment="end" height="136" width="309"]]
2 +
1 1  {{toc/}}
2 2  
3 3  Ab dem Wintersemester 2025/2026 wird die Projektstrukturierung und der [[Scrum>>doc:Main.Scrum.WebHome]]-Prozess in GitLab durchgeführt. Für die wichtigsten, grundlegendsten Funktion gibt es nachfolgend als Einstiegshilfe einige Erklärungen.
... ... @@ -100,19 +100,18 @@
100 100  
101 101  [[image:Liste1.png||data-xwiki-image-style-border="true"]]
102 102  
105 +In der sich öffnenden Option wird jetzt der Status **"in progress**" ausgewählt und mit der **"Add to board"**-Funktion bestätigt.
103 103  
104 104  [[image:Liste2.png||data-xwiki-image-style-border="true"]]
105 105  
106 -
107 107  [[image:Liste3.png||data-xwiki-image-style-border="true"]]
108 108  
111 +Zusätzlich werden zur Veranschaulichung Listen für die Meilensteine- und Epic-Label erstellt.
109 109  
110 110  [[image:Liste4.png||data-xwiki-image-style-border="true"]]
111 111  
112 -
113 113  [[image:Liste5.png||data-xwiki-image-style-border="true"]]
114 114  
115 -
116 116  [[image:Liste6.png||data-xwiki-image-style-border="true"]]
117 117  
118 118  = Erstellung eines Sprints =
... ... @@ -157,7 +157,7 @@
157 157  
158 158  = Erstellung eines Wikis =
159 159  
160 -Im Softwareprojekt müssen viele Daten dokumentiert (siehe [[Anforderungsanalys>>doc:Main.Aufgabenstellung.WebHome||anchor="Teilaufgabe2:Anforderungsanalyse28Dokumentation29"]] und [[Entwurf>>doc:Main.Aufgabenstellung.WebHome||anchor="HTeilaufgabe3:Entwurf28Dokumentation29"]] sowie [[Dokumentation>>doc:Main.Anforderungen Software.WebHome||anchor="HAnforderungen:Dokumentation"]]) werden und unter anderem auch ein Projekttagebuch (siehe [[Projekttagebuch>>doc:Main.Anforderungen Gruppen.WebHome||anchor="HProjekttagebuch"]] geführt werden. Dies wird in der Wiki-Funktion von GitLab umgesetzt. Diese Option ist in der Projektnavigationsleiste unter dem Reiter **"Wiki" **vorzufinden.
161 +Im Softwareprojekt müssen viele Daten dokumentiert (siehe [[Anforderungsanalyse>>doc:Main.Aufgabenstellung.WebHome||anchor="Teilaufgabe2:Anforderungsanalyse28Dokumentation29"]] und [[Entwurf>>doc:Main.Aufgabenstellung.WebHome||anchor="HTeilaufgabe3:Entwurf28Dokumentation29"]] sowie [[Dokumentation>>doc:Main.Anforderungen Software.WebHome||anchor="HAnforderungen:Dokumentation"]]) werden und unter anderem auch ein Projekttagebuch (siehe [[Projekttagebuch>>doc:Main.Anforderungen Gruppen.WebHome||anchor="HProjekttagebuch"]] geführt werden. Dies wird in der Wiki-Funktion von GitLab umgesetzt. Diese Option ist in der Projektnavigationsleiste unter dem Reiter **"Wiki" **vorzufinden.
161 161  
162 162  [[image:Wiki1.png||data-xwiki-image-style-border="true"]]
163 163  
... ... @@ -177,3 +177,72 @@
177 177  = Zeiterfassung in GitLab =
178 178  
179 179  Im Rahmen des Softwareprojekts sollt ihr eure Arbeitszeit präzise festhalten. Dazu könnt ihr direkt auf angelegten Issues/Tasks/User Stories in dem Bereich **Time tracking** eure Arbeitszeit Aufgabenspezifisch eintragen. In dem Fenster könnt ihr eintragen wie viel Zeit ihr gearbeitet habt, an welchem Tag ihr gearbeitet habt, um nachträgliches verbuchen von Arbeitszeit zu ermöglichen, und eine kleine Zusammenfassung angeben. Sollte bereits Zeit erfasst worden sein, muss über das Plus (siehe Bild oben rechts im roten Rahmen) Zeit gebucht werden.[[image:1754139824426-497.png]]
181 +
182 +----
183 +
184 += GitLab Pipelines =
185 +
186 +Eine GitLab Pipeline ist eine in //.gitlab-ci.yml// definierte Abfolge von Jobs. Jobs können dabei beispielsweise die automatische Ausführung von Tests sein.
187 +
188 +== Pipeline im Basisprojekt v2 ==
189 +
190 +Die Pipeline im Basisprojekt ist auf zwei Stages mit jeweils einem Job aufgeteilt und wird im Folgenden Schritt für Schritt erklärt. Ihr dürft im Rahmen des Softwareprojekts, wenn nötig, die Pipeline um weitere Jobs oder Stages erweitern. **Die bestehenden Jobs sollten allerdings **(von Studierenden) **nicht geändert werden.**
191 +
192 +In der //.gitlab-ci.yml //werden zunächst die Stages definiert. Eine Stage ist eine logische Gruppe von Jobs, die in einem bestimmten Abschnitt der Pipeline ausgeführt werden. Jobs in einer Stage werden parallel ausgeführt, es sei denn es wird eine Abhängigkeit in den Jobs definiert.
193 +Wenn alle Jobs in einer Stage (erfolgreich) abgeschlossen sind, startet die nächste Stage. Schlägt ein Job fehl wird die gesamte Pipeline gestoppt, außer es werden Jobs so markiert, dass sie fehlschlagen dürfen.
194 +
195 +{{code language="yaml"}}
196 +stages:
197 + - verify
198 + - deploy
199 +{{/code}}
200 +
201 +Der //verify-job //ist der erste Job, der in der Pipeline definiert ist. Er wird in der //verify-//Stage ausgeführt. Das Image ist ein Docker-Image, welches schon mit einer Java 21 Umgebung eingerichtet ist. Dadurch wird sichergestellt, dass der Job immer die gleiche Umgebung hat ("//but it works on my machine"//).
202 +Im Script-Abschnitt wird dann mvn clean verify ausgeführt. Maven verify baut das Projekt und führt die Tests im Projekt aus.
203 +Die Rules definieren, wann ein Job ausgeführt wird und ob das Fehlschlagen des Jobs erlaubt ist. Regeln werden von oben nach unten ausgewertet. //$CI_PIPELINE_SOURCE == "schedule" //sagt dass der Job bei automatischen Aufrufen über einen zeitgesteuerten Start der Pipeline mit besonderen Einschränkungen ausgeführt werden soll. //allow_failure// erlaubt in dem Fall, dass bei automatischer Ausführung die Pipeline nicht abgebrochen wird, falls sich euer Projekt nicht bauen lässt, damit darauffolgende Jobs weiterhin ausgeführt werden.
204 +
205 +{{code language="yaml"}}
206 +verify-job:
207 + stage: verify
208 + image: eclipse-temurin:21-jdk-alpine
209 + script:
210 + - "./mvnw clean verify"
211 + rules:
212 + - if: $CI_PIPELINE_SOURCE == "schedule"
213 + when: always
214 + allow_failure: true
215 + - when: always
216 + allow_failure: false
217 +{{/code}}
218 +
219 + Der 
220 +{{box}}deploy_stats_pages:
221 + stage: deploy
222 + image: maven:3.9.9-amazoncorretto-21-al2023
223 + variables:
224 + DEVELOPMENT_BRANCH_NAME: "development"
225 + FETCH_MULTITHREAD: "true" #options are true/false
226 + LOGLEVEL: "SHORT" #options are OFF, SHORT, LONG. Has an effect on the amount of logging when data is being added
227 + #TIME_FRAMES: "01.01.2025,31.03.2025,40,Zeitraum01;01.04.2025,31.05.2025,35" #Format start,end,minHours[,name];anotherTimeframe;anotherTimeframe;...
228 + script:
229 + - yum install -y git rsync
230 + - git clone https://gitlab.swl.informatik.uni-oldenburg.de/GA/gitlab2data.git
231 + - cd gitlab2data
232 + - mvn clean package
233 + - java -jar target/GitLab2Data-1.0-SNAPSHOT-jar-with-dependencies.jar
234 + - cd ..
235 + - mkdir -p public/data
236 + - rm -f public/data/*.json
237 + - cp gitlab2data/*.json public/data/
238 + - git clone https://gitlab.swl.informatik.uni-oldenburg.de/GA/data4visual.git repo
239 + - rsync -av --exclude='data/' --exclude='.git' --exclude='.gitignore' repo/ public/
240 + artifacts:
241 + paths:
242 + - public
243 + pages:
244 + path_prefix: "stats" #to allow for parallel deployments of the projects own page don't make the stats site the main deployment
245 + expire_in: never
246 + rules:
247 + - if: $CI_PIPELINE_SOURCE == "schedule"
248 + when: always
249 + - when: never{{/box}}