Zum Inhalt

Project Task Runner

Mit dem Project Task Runner – kurz PTR – können oft genutzte Befehle sowohl von Entwicklern als auch von CI/CD-Systemen bequem ausgeführt werden.

Vorstellung

Der Project Task Runner wurde in einem Online-Meeting vorgestellt. Eine Aufnahme dessen ist mitsamt der Unterlagen verfügbar.

Installation

Der PTR sollte üblicherweise bereits Teil des Projekts sein sollte dies nicht der Fall sein, muss man dessen Git-Repositorium in das des Projekts mergen:

git remote add --no-tags ptr git@bitbucket.org:big5concepts-ondemand/ptr.git
git merge --allow-unrelated-histories ptr/master

Gegebenenfalls auftretende Merge-Konflikte müssen entsprechend behoben werden.

Aktualisierung

Um PTR und seine Skripte zu aktualisieren muss zuerst der Git-Remote für dessen Repositorium hinzugefügt werden:

git remote add --no-tags ptr git@bitbucket.org:big5concepts-ondemand/ptr.git

Danach kann man die Neuerungen in den aktuellen Git-Branch pullen:

git pull ptr master

Gegebenenfalls auftretende Merge-Konflikte müssen passend behoben werden.

Konfiguration

Bei dem Project Task Runner handelt es sich um ein grob POSIX-kompatibles (mit der Hinzunahme von local) Bourne Shell Skript. In diesem Skript kann man Funktionen definieren und dann über die Kommandozeile als Tasks aufrufen. Dabei kann man auf diverse Hilfsfunkionen zurückgreifen. Diesem stammen entweder aus sesh oder lokalen Definitionen. Diese Funktionen befinden sich in jeweils separaten Dateien und werden mit dem Befehl sesh_load aus den in der Umgebungsvariable SESH_PATH definierten Pfaden geladen. Entsprechend formatierte Kommentare zu den eigenen Funktionen im Skript werden in der Ausgabe von bin/ptr help angezeigt.

Nutzung

Abhängigkeiten

Um den Project Task Runner nutzen zu können müssen diversen Abhängigkeiten erfüllt sein.

Nötige Abhängigkeiten

Folgende Abhängigkeiten sind zwingend nötig:

Optionale Abhängigkeiten

Folgende Abhängigkeiten sind optional:

Sollten diese nicht lokal installiert sein werden stattdessen entsprechende Docker-Images genutzt.

Aufruf

Hilfe

Mit dem Befehl bin/ptr help kann die Hilfe ausgegeben werden. Sie enthält sowohl den Inhalt entsprechend formatierter Kommentare der Tasks, als auch generelle Aspekte.

Tasks

Es lassen sich theoretisch beliebige eigene Funktionen definieren, die häufige Arbeitsabläufe automatisieren. Häufige Tasks sind beispielsweise:

  • build
  • test
  • publish
  • deploy
  • clean

Sollten diese (und andere) Namen angepasst werden muss darauf geachtet werden, dass auch alle korrespondierenden Aufrufe, wie beispielsweise im Jenkinsfile ebenfalls mit angepasst werden.

Umgebungsvariablen

Der Project Task Runner nutzt für viele Tasks Docker und Docker Compose. Deren Verhalten kann von zusätzlich von Umgebungsvariablen beeinflusst werden. Damit lässt sich beispielsweise einrichten wie man mehrere Projekte gleichzeitig betreibt.