Changes for page GitLab Erklärungen
Last modified by pmeyer on 2025/09/12 04:41
From 84.7 to 84.8
From 84.14 to 84.15
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -187,13 +187,22 @@ 187 187 188 188 == Pipeline im Basisprojekt v2 == 189 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. 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 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 + 192 192 {{code language="yaml"}} 193 193 stages: 194 194 - verify 195 195 - deploy 199 +{{/code}} 196 196 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// 204 + 205 +{{code language="yaml"}} 197 197 verify-job: 198 198 stage: verify 199 199 image: eclipse-temurin:21-jdk-alpine ... ... @@ -205,35 +205,4 @@ 205 205 allow_failure: true 206 206 - when: always 207 207 allow_failure: false 208 - 209 -deploy_stats_pages: 210 - stage: deploy 211 - image: maven:3.9.9-amazoncorretto-21-al2023 212 - variables: 213 - DEVELOPMENT_BRANCH_NAME: "development" 214 - FETCH_MULTITHREAD: "true" #options are true/false 215 - LOGLEVEL: "SHORT" #options are OFF, SHORT, LONG. Has an effect on the amount of logging when data is being added 216 - #TIME_FRAMES: "01.01.2025,31.03.2025,40,Zeitraum01;01.04.2025,31.05.2025,35" #Format start,end,minHours[,name];anotherTimeframe;anotherTimeframe;... 217 - script: 218 - - yum install -y git rsync 219 - - git clone https://gitlab.swl.informatik.uni-oldenburg.de/GA/gitlab2data.git 220 - - cd gitlab2data 221 - - mvn clean package 222 - - java -jar target/GitLab2Data-1.0-SNAPSHOT-jar-with-dependencies.jar 223 - - cd .. 224 - - mkdir -p public/data 225 - - rm -f public/data/*.json 226 - - cp gitlab2data/*.json public/data/ 227 - - git clone https://gitlab.swl.informatik.uni-oldenburg.de/GA/data4visual.git repo 228 - - rsync -av --exclude='data/' --exclude='.git' --exclude='.gitignore' repo/ public/ 229 - artifacts: 230 - paths: 231 - - public 232 - pages: 233 - path_prefix: "stats" #to allow for parallel deployments of the projects own page don't make the stats site the main deployment 234 - expire_in: never 235 - rules: 236 - - if: $CI_PIPELINE_SOURCE == "schedule" 237 - when: always 238 - - when: never 239 239 {{/code}}