Gitlab CI/CD ohne einen echten “Build”

Manchmal ist es schwierig, einen griffigen Titel zu finden, so auch hier. Worum geht es?

Problem

Ich möchte eine Excel-Vorlage mit Makros in Gitlab zum Download bereitstellen. Leider gibt es für Excel nicht so etwas wie OASIS, dessen Anwendung ich in dem Artikel Access-Datenbank aus VCS automatisch aufbauen ausführlich beschrieben habe. Ich muss in Excel also alle Aktionen als Entwickler von Hand durchführen:

  • Code exportieren
  • Git-Aktionen (Commit, Push)
  • Excel-Vorlage (xltm) aus Makro-Arbeitsmappe (xlsm) erstellen

Problem dabei: Einen einfachen “Upload” zu GitLabs CI/CD gibt es leider nicht.

Lösung

Statt einen formalen “Build-Prozess” aufzusetzen, sorge ich von Hand dafür, dass die Template-Datei im Projektverzeichnis vorhanden ist. Dann lege ich einfach einen Dummy-CI-Prozess an, der diese Datei als “Artefakt” definiert.

Damit das nicht dauernd passiert, definiere ich in Git einen ewig lebenden Branch “releases”, der dauerhaft neben dem Branch “main” (früher “master”) her läuft. Immer wenn eine Version fertig ist, merge ich den Stand des main-Branches in den releases-Branch und pushe diesen. Dadurch wird dann automatisch der CI-Prozess getriggert.

Eine minimale YML-Datei für Gitlab könnte dann so aussehen:

workflow:
  rules:
    - if: '$CI_COMMIT_BRANCH == "releases"'

Vorlage:
  script:
    - Copy-Item -Path app\MeineVorlage.xltm -Destination .
  artifacts:
    expire_in: 1 week
    name: 'Vorlage'
    paths:
      - MeineVorlage.xltm

Der Kopierbefehl ist übrigens nur deshalb sinnvoll, weil GitLab sonst den kompletten Pfad zu dem Artefakt mit in den Download aufnimmt. Bei einem anderen Anbieter, der das nicht so macht, könnte dieser Befehl u.U. entfallen — aber dort sähe die Scriptdatei wahrscheinlich ohnehin komplett anders aus.

Ähnliche Artikel:

Schreibe einen Kommentar

Deine Email-Adresse wird nicht veröffentlicht.

1 × 1 =