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:
- grob POSIX-kompatible
sh
, welche zusätzlichlocal
unterstützt - Docker Engine 17.05 oder neuer
Optionale Abhängigkeiten
Folgende Abhängigkeiten sind optional:
- Ansible
- Docker Compose
- Git
- MkDocs
- Sudo
- x11-ssh-askpass oder ein kompatibles Programm
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.