このフェーズでは、ローカル環境で静的解析ツール(リンター)を使えるようにします。
まず、このフェーズで使う2つのツールを準備します。
uvは、Pythonのパッケージマネージャーです。Pythonのツールやライブラリを簡単にインストールできます。
curl -LsSf https://astral.sh/uv/install.sh | sh
Ruffは、Pythonコードを静的解析するツール(Linter)です。未定義の変数や不要なimportなどを検知します。uvを使ってインストールします。
uv tool install ruff
まずは手元の環境でRuffを使ってみましょう。
フェーズ2で作成した src/index.py を対象に、Ruffを試してみます。
src/index.py にわざと不要なインポートを追加します。
import os
def handler(event, context):
return {"statusCode": 200, "body": "hello, world!"}
Ruffを実行すると、検出できます。
ruff check src/index.py
F401 [*] `os` imported but unused
--> src/index.py:1:8
|
1 | import os
| ^^
2 |
3 | def handler(event, context):
|
help: Remove unused import: `os`
Found 1 error.
[*] 1 fixable with the `--fix` option.
--fix オプションをつけると、修正もできます。
ruff check --fix
Found 1 error (1 fixed, 0 remaining).
ローカルで ruff check を実行すれば、pushする前に問題を発見できます。ただし、毎回手動で実行するのは忘れがちです。次のフェーズでは、これをGitHub Actionsで自動化します。
手元で静的解析ができるようになりました。次は、これをGitHub Actionsで自動化します。
フェーズ4: CI に進みましょう。