Goを始めてからずっと Robo や Task といったYAMLベースのものでビルドタスクを書いていたのですが、プロジェクトが増えてきて限界を感じました。 YAMLベースと言ってもタスクの記述部はあくまでもただのシェルであり、せいぜい「Makefileよりは読みやすいよね」程度。シェルへの依存度が高いと、どうしてもこういう問題が目立ってきます。 環境依存で「動きません」って他のメンバーに言われがち。MacとLinuxで date コマンドのオプションが違うとかよくある。かといってビルド用のDockerイメージを作るほどではまだない grep sed 等で正規表現の魔術的な操作が増えると、一見何やってるのか分からなくなりがち エラー処理が雑になりがち。パイプの途中のエラー拾うとかしんどい 遅い。並行処理書くのもしんどい 個別のタスクをライブラリ化してインポートしたいけど、決まったやり方がない