Automatisieren Sie den Workflow in der Shell

Automatisieren Sie den Workflow in der Shell

Da ich von GUI-Schnittstellen komme, verstehe ich nun endlich, wie leistungsstark es ist, alles als Text weiterzuleiten, aber ich weiß noch nicht wirklich, wie ich diese ganze Leistung nutzen soll.

Mir ist aufgefallen, dass der Arbeitsablauf für ein bestimmtes Projekt folgendermaßen aussieht …

# compile repo 1
cd ~/workspace/repo1
make -B
# deploys compiled code into repo2
make deploy

# commit repo 1
cd ~/workspace/repo1
git add .
git commit -m "changes"
git push origin master

# commit repo 2
cd ~/workspace/repo2
git add .
git commit -m "changes"
git push origin master

Meine Frage ist nicht so sehr, wie ich das erreichen kann, sondern welches das richtige Werkzeug dafür ist. Wenn ich mich umlese, scheint es, als würde ich ein Bash-Skript brauchen, aber ich würde gerne die Experten zu Rate ziehen.

Antwort1

Sie haben einen sehr guten Start, indem Sie alles an einem Ort eingeben.

Kopieren Sie das alles in eine Textdatei (z. B. workflow.sh, aber der Name ist nicht wirklich wichtig) und fügen Sie dann Folgendes einin der allerersten Zeile der Datei:

#!/bin/sh

Sie haben jetzt ein Shell-Skript. Machen Sie es ausführbar:

chmod +x workflow.sh

Jetzt können Sie es wie einen Befehl ausführen:

./workflow.sh

Durch bloßes Aufrufen des Workflows werden alle diese Befehle der Reihe nach ausgeführt.

Sie sind jetzt ein Systemprogrammierer-Anfänger. Von da an kann es nur noch nach oben gehen.

Aktualisieren

KonkretisierenÄnderungenohne das Skript jedes Mal bearbeiten zu müssen, wenn Sie Folgendes ändern:

git commit -m "changes"

Lesen:

git commit -m "$1"

Sie können dann weitergebenÄnderungenals Befehlszeilenargument:

./workflow "Describe changes made"

Weitere nützliche Tools sind Aliase und PATH. Sie können ein spezielles Verzeichnis (zum Beispiel ~/bin) erstellen und alle Skripte dort ablegen, dieses Verzeichnis zu Ihrer PATHVariable hinzufügen und müssen nicht jedes Mal den vollständigen Pfad zum Skript eingeben, wenn Sie es starten möchten. Bei Aliasen müssen Sie für jedes Skript einen Alias ​​erstellen, manchmal ist ein Alias ​​jedoch bequemer, da Sie darin verschiedene Ausführungsparameter angeben können.

Antwort2

Sie können Ihren Code mit Python-Dienstprogrammen organisieren:https://wiki.python.org/moin/FlowBasedProgramming

Ein weiteres oben nicht erwähntes, aber dennoch vielversprechendes Paket ist Snakemake.

verwandte Informationen