make CI pipeline a bit more robust
Es sollen einige Probleme behoben werden:
-
$CI_COMMIT_TAG
in der build-Stage hat bei Tests auf unserer Infrastuktur die Punkte durch Bindestriche ersetzt. Bsp.: Tag lautet "0.1.24" aber das IMAGE_TAG lautete "0-1-24", was natürlich nicht funktioniert hat. Einfache Lösung: entfernen des Sonderfalls, dass IMAGE_TAG auf CI_COMMIT_TAG gesetzt wird - Die Regel
$CI_PIPELINE_SOURCE=push
in den Jobs der test-Stage wurde eingeführt, um doppelte Pipelines innerhalb eines Merge Requests zu verhinden. Leider verhindert es aber keine doppelte Ausführung der Pipelines beim setzen eines Git Tags. Das lässt sich mit der Regel$CI_COMMIT_BRANCH
beheben, da die Variable weder inmerge request pipelines
nochtag pipelines
existiert (siehe Doku) - URL zum git Repository in eine Variable auslagern, um sie nur an einer Stelle setzen zu müssen und die Lesbarkeit zu erhöhen.
- Der Backend-Test muss, solange es noch kein Build für das Backend gibt, nicht warten, bis die build-Stage fertig ist. Man kann explizit angeben, dass dieser Job keine Abhängigkeiten hat:
needs: []
. So startet der Backend-Test direkt und spart etwas Zeit - Mit
resource_group
kann man angeben, dass bestimmte Jobs nicht gleichzeitig in mehreren Pipelines laufen dürfen. So kann man (leider nur) teilweise verhindern, dass sich Tagging und Versioning Jobs in die Quere kommen, wenn zwei MRs schnell hintereinander gemerget werden.
Edited by Robert Brunngräber