シェルでワークフローを自動化する

シェルでワークフローを自動化する

GUI インターフェイスを使ってきた私は、ようやくすべてをテキストでパイプ処理することの威力を理解するようになりましたが、その威力をどのように活用すればよいのか、まだよくわかっていません。

特定のプロジェクトのワークフローは次のようになることに気付きました...

# 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

私の質問は、これをどうやって実現するかではなく、これに適したツールは何かということです。調べてみると、Bash スクリプトが必要なようですが、専門家に教えてもらいたいです。

答え1

すべてを 1 か所に入力することで、非常に良いスタートを切ることができます。

これらすべてをテキストファイルにコピーします(例:workflow.sh、名前は重要ではありません)。次にこれをファイルの最初の行に:

#!/bin/sh

これでシェル スクリプトができました。これを実行可能にします。

chmod +x workflow.sh

これでコマンドのように実行できます:

./workflow.sh

ワークフローを呼び出すだけで、各コマンドが順番に実行されます。

あなたは今、初心者のシステム プログラマーです。ここから先は上を目指すしかありません。

アップデート

指定します変更変更するたびにスクリプトを編集する必要はありません。

git commit -m "changes"

読むには:

git commit -m "$1"

その後、変更コマンドライン引数として:

./workflow "Describe changes made"

もう一つの便利なツールは、エイリアスとですPATH。特別なディレクトリ (たとえば~/bin) を作成し、そこにすべてのスクリプトを配置し、このディレクトリをPATH変数に追加すると、スクリプトを起動するたびにスクリプトへのフルパスを入力する必要がなくなります。エイリアスを使用する場合は、スクリプトごとにエイリアスを作成する必要がありますが、エイリアスでは異なる実行パラメータを指定できるため、エイリアスの方が便利な場合があります。

答え2

Python ユーティリティを使用してコードを整理できます。https://wiki.python.org/moin/FlowBasedProgramming

上記では触れていませんが、やはり有望なパッケージは Snakemake です。

関連情報