コードを変更する(Pull Requestを作る)たびに自動でCIが走るようにGitHub Actionsを設定します。
GitHub Actionsは、GitHubに組み込まれたCI/CDサービスです。リポジトリに .github/workflows/ ディレクトリを作り、YAMLファイルを置くだけで、コードのプッシュやPull Requestなどのイベントに応じて処理を自動実行できます。
リポジトリに .github/workflows/ci.yml を作成し、main ブランチにマージしてください。
name: "CI Lint"
on:
pull_request:
branches: [main]
paths:
- "src/**"
permissions:
contents: read
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: astral-sh/ruff-action@v3
with:
src: src
上から順に見ていきます。
on はトリガーです。mainブランチへのPull Requestが作成・更新されたときに、このワークフローが実行されます。paths で src/ 以下のファイルが変更されたときだけに限定しています。
permissions はこのワークフローに与える権限です。contents: read だけを指定しています。CIはリポジトリのコードを読んでチェックするだけなので、書き込みの権限は不要です。
jobs の中に、実際の処理を書きます。lint というジョブが1つあり、2つのステップで構成されています。
actions/checkout@v6 – リポジトリのコードを取得するastral-sh/ruff-action@v3 – src/ ディレクトリを対象にRuffチェックを実行するCIの動作確認用に src/index.py を変更したPull Requestを作成します。
ワークフローのトリガーは src/ 以下の変更なので、src/index.py にわざと不要なインポートを追加する変更を加え、CIがエラーを検出することを確認します。
src/index.py を編集してください。
import os # 不要なインポート
def handler(event, context):
return {"statusCode": 200, "body": "hello, world!"}
Pull Requestが作成されると、CIワークフローが自動で実行され、Ruffが不要なインポート(import os) を検出して失敗するはずです。


contents: read のみ)CIでコード品質を守る仕組みができました。次は、AWS CLIの認証を行います。
フェーズ5: AWS CLIで認証する に進みましょう。