diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5e19c83d..d7685287 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,6 +3,38 @@ # Trigger-Schema wie ThreadNet-Web: Pushes pruefen nur bei relevanten Pfaden, # Veroeffentlichen ist ein bewusster manueller Akt. +# --- Wann ueberhaupt eine Pipeline entsteht ------------------------------------ +# Gleiche Falle wie in ThreadNet-Web: Ein Commit, der nur docs/ anfasst, erzeugt +# eine Pipeline mit NULL Jobs - und die zaehlt als "failed". Real passiert am +# 2026-08-06 (Pipeline 187). Ursache ist die needs-Kette: build_embedded laeuft +# wegen changes: nicht, publish_npm haengt per needs daran, und damit bleibt gar +# nichts uebrig. +# +# ⚠️ Rot, das nichts bedeutet, gewoehnt einem das Hinsehen ab - und in diesem +# Verbund IST die rote Pipeline die Alarmanlage (siehe gitops/CLAUDE.md zur +# TURN-Rotation). +# +# CI_PIPELINE_SOURCE == "web" bleibt erlaubt, damit publish_npm auch nach einem +# reinen Doku-Commit ueber "Run pipeline" erreichbar ist. +.pfade_mit_pipeline: &pfade_mit_pipeline + - src/**/* + - embedded/**/* + - public/**/* + - package.json + - pnpm-lock.yaml + - vite*.config.* + - .env.production + - .gitlab-ci.yml + +workflow: + rules: + - if: $CI_COMMIT_TAG =~ /^v/ + - if: $CI_PIPELINE_SOURCE == "schedule" + - if: $CI_PIPELINE_SOURCE == "web" + - if: $CI_COMMIT_BRANCH + changes: *pfade_mit_pipeline + - when: never + stages: - build - publish @@ -13,17 +45,11 @@ build_embedded: rules: - if: $CI_COMMIT_TAG =~ /^v/ - if: $CI_COMMIT_BRANCH - changes: - - src/**/* - - embedded/**/* - - public/**/* - - package.json - - pnpm-lock.yaml - - vite*.config.* - # .env.production setzt VITE_PRODUCT_NAME und landet damit im Bundle - ohne - # diesen Eintrag aendert man den Produktnamen und die CI baut gar nicht erst. - - .env.production - - .gitlab-ci.yml + # derselbe Anker wie im workflow-Block oben - zwei Listen wuerden driften. + # .env.production steht dort mit drin: sie setzt VITE_PRODUCT_NAME und landet + # damit im Bundle - ohne den Eintrag aendert man den Produktnamen und die CI + # baut gar nicht erst. + changes: *pfade_mit_pipeline before_script: - corepack enable script: