aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--posts/laminar-is-best.md12
1 files changed, 6 insertions, 6 deletions
diff --git a/posts/laminar-is-best.md b/posts/laminar-is-best.md
index 8ef1f4a..59ee5c7 100644
--- a/posts/laminar-is-best.md
+++ b/posts/laminar-is-best.md
@@ -22,7 +22,7 @@ CI が欲しいなーと思いながら、[Guix](https://guix.gnu.org/) のマ
[Laminar](https://laminar.ohwg.net/) はジョブの自動化やトラッキング機能を提供し、良い感じの Web インターフェースでジョブの実行結果等を表示してくれるツールだ。
-これだけであれば一般的な CI ツールと同じだが、Laminar の使用方法は他の一般的な CI ツールとは全く異なる。
+これだけであれば一般的な CI ツールと同じだが、Laminar の使用方法は他の CI ツールとは全く異なる。
Laminar には:
@@ -32,7 +32,7 @@ Laminar には:
Web UI による設定画面が存在するとそれだけで設定のバージョン管理が難しくなるのでない方がよい。また管理画面が存在すると、公開時のセキュリティ上のリスクについて悩まないといけなくなってしまう。
-CI を設定するために YAML 等で表現された謎の CI 設定用言語を学べとかいわれるとなんでそのツールをを使うためだけに表現力の貧弱な設定用言語を使わなくてはならんのだと感じる(GNU Guix を見倣って欲しいものである)ので YAML の設定ファイルはない方がよい。
+CI を設定するために YAML 等で表現された謎の CI 設定用言語を学べとかいわれるとなんでそのツールを使うためだけに表現力の貧弱な設定用言語を使わなくてはならんのだと感じる(GNU Guix を見倣って欲しいものである)ので YAML の設定ファイルはない方がよい。
そして、一般的に CI について勉強していると一番よく思うのが「なんでそんな簡単なことをそんな複雑にしてるんだ……」という問題で、既存のツールを使えば簡単にできることを中途半端に再発明することで無駄な学習を強要し、さらに無駄に表現力が狭められていることで融通の効かない不便な仕組みの中に閉じ込められてしまう。
@@ -56,8 +56,8 @@ cron を使う。GNU Guix System を利用している場合は GNU mcron を使
### Docker でジョブを実行するにはどうする?
-Laminar は別に Docker をサポートしていない。でも、ジョブのスクリプト中に `docker run` をすればよいとある。
-たしかに、これで駄目な理由は特に考えられないので、CI 側で Docker をサポートするのは無駄である。
+Laminar は別に Docker をサポートしていない。しかし、ジョブのスクリプト中に `docker run` をすればよいとある。
+たしかにこれで駄目な理由は特に考えられないので、CI 側で Docker をサポートするのは無駄である。
また、Guix ユーザーであれば Docker よりも [guix environment](https://guix.gnu.org/manual/en/html_node/Invoking-guix-environment.html) を使いたいと思うだろう(例: [deploy-www-tojo-tokyo ジョブ](https://git.tojo.tokyo/ci.git/tree/jobs/deploy-www-tojo-tokyo.run?id=580db52c3004cfdbd56aa2c8861c8fbc9fb5cdd8#n5))。にもかかわらず公式で Docker をサポートされたり、Docker を使用することを過剰に推奨されるとうっとうしいだけなので、Laminar が無駄に Docker サポートをしないという方針は良いものである。
@@ -79,11 +79,11 @@ Laminar は Guix System の Service として登録されているので、単
### ジョブの設定
-Ci の設定は [ci.git](https://git.tojo.tokyo/ci.git/about/) リポジトリに記載している通りである。ただ、Guix System で利用する際に一点注意が必要な点があったのでそこだけ説明する。
+CI の設定は [ci.git](https://git.tojo.tokyo/ci.git/about/) リポジトリに記載している通りである。ただ、Guix System で利用する際に一点注意が必要な点があったのでそこだけ説明する。
#### Guix System の環境変数の設定
-ジョブの設定だが Guix Environment を使うユーザーは注意が必要な点がある。
+ジョブの設定だが Guix Environment を使うユーザーには注意が必要な点がある。
ジョブは laminar ユーザーで実行されるのだが、PATH 環境変数がリセットされた環境でジョブが実行される。
guix では shebang に `/usr/bin/sh` と `/usr/bin/env` しか使えないが、`/usr/bin/env` を使っても PATH 環境変数がリセットされているためなんのジョブも呼び出すこともできない。
Laminar には必要な環境変数を静的に設定する方法(`$LAMINAR_HOME/cfg/env` に記載)が提供されているが、Guix System のユーザーは下記のようにして環境変数を設定したいと思うだろう。