Intelligente Lösungen
in neuer Dimension

Gitlab: CI_PIPELINE_IID hochsetzen

Manchmal verwenden wir bei Gitlab-Pipelines die CI_PIPELINE_IID zur Generierung von Versionsnummern. Die CI_PIPELINE_IID wird bei jedem Lauf einer Pipeline inkrementiert und entspricht somit einer Art “BuildNumber”.

Probleme treten auf, wenn man bspw. einen zweiten Gitlab-Server aufbaut und die Projekte mittels Export/Import übernimmt. Dann haben beide Server die gleiche CI_PIPELINE_IID und es kommt leicht zu Überlappungen.

Hier zeige ich, wie ich beim zweiten Gitlab-Server die CI_PIPELINE_IID “hochdrehe”, damit dieser immer höhere Werte hat.

Einen bei Gitlab dokumentierten Weg zur Anpassung der CI_PIPELINE_IID habe ich nicht gefunden, deshalb die nachfolgende Beschreibung:

  • Projekt exportieren via “Settings – General – Advanced – Export project” und herunterladen
    • Dateiname: (zeitstempel)_(id)_(gruppe)_(projektname)_export.tar.gz
    • Beispiel: 2022-05-02_07-10-555_uli_test-projekt_export.tar.gz
  • Export auspacken
    • mkdir export
    • cd export
    • gzip -cd .../(dateiname)_export.tar.gz | tar xf -
  • Sichten des letzten Wertes von CI_PIPELINE_IID: tail -1 tree/project/ci_pipelines.ndjson|jq '.iid' –> 90
  • Hochsetzen von 90 auf 190: sed -i -e '$ s/"iid":90/"iid":190/' tree/project/ci_pipelines.ndjson
  • Nachkontrolle: tail -1 tree/project/ci_pipelines.ndjson|jq '.iid' –> 190
  • Neu verpacken: tar cf - .|gzip -c9 >.../(neue-datei)\_export.tar.gz
  • In Gitlab importieren unter anderem Namen
  • Bauen –> Klappt, IID ist hochgedrent
  • Ggf. Original-Projekt ersetzen mit der neuen Variante

Historie

  • 2022-05-02: Erste Version