## GitHub Actions CIとは何か
`ci.yml` は、GitHub Actionsの**CI(継続的インテグレーション)設定ファイル**です。GitHubにコードをpushしたり、Pull Requestを作成・更新したりするたびに、定義した処理を自動で実行してくれます。
「コードに問題がないか」「ビルドが壊れていないか」を人間が手動で確認する代わりに、GitHubのサーバー上で自動検証してくれる仕組みです。
---
## 今回のci.ymlの構成
以下が今回使用しているCI設定ファイルの完成版です。
```yaml
name: CI
on:
pull_request:
push:
branches:
- "**"
jobs:
quality:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run checks
run: npx astro check
env:
ASTRO_TELEMETRY_DISABLED: 1
- name: Build
run: npm run build
env:
ASTRO_TELEMETRY_DISABLED: 1
```
### トリガー条件
`on:` のセクションで、CIが起動する条件を定義しています。
- **すべてのブランチへのpush**
- **すべてのPull Requestの作成・更新時**
### 実行されるステップ
1. **Checkout** — リポジトリのコードをCI環境に取得します
2. **Setup Node.js** — Node.js 22をセットアップし、npmキャッシュを有効にして高速化します
3. **Install dependencies** — `npm ci` で依存パッケージをインストールします
4. **Run checks** — `npx astro check` でAstroの型チェックを実行します
5. **Build** — `npm run build` でプロジェクトをビルドします
`ASTRO_TELEMETRY_DISABLED: 1` は、AstroのテレメトリデータをCI環境から送信しないようにするための設定です。
---
## よくあるエラー:「Missing script: check」
### エラー内容
当初のci.ymlでは `npm run check` を使用していましたが、以下のエラーが発生してCIが失敗していました。
```
Run npm run check
npm error Missing script: "check"
npm error
npm error To see a list of scripts, run:
npm error npm run
npm error A complete log of this run can be found in: ...
Error: Process completed with exit code 1.
```
### 原因
`npm run check` は `package.json` の `scripts` セクションに `"check"` というエントリが定義されている場合にのみ動作します。このプロジェクトの `package.json` には `check` スクリプトが存在しなかったため、エラーになっていました。
### 修正方法
`npm run check` を `npx astro check` に直接置き換えることで解決できます。
```yaml
# 修正前
- name: Run checks
run: npm run check
# 修正後
- name: Run checks
run: npx astro check
```
`npx astro check` はAstro CLIを直接呼び出すため、`package.json` へのスクリプト追加が不要です。
なお、`package.json` の `scripts` に以下を追加する方法でも同様に解決できます。
```json
{
"scripts": {
"check": "astro check"
}
}
```
どちらの方法でも同じ結果になります。
---
## CIが成功したらどうなるか
全ステップが正常に完了すると、GitHubのUIに以下の変化が現れます。
- **Actionsタブ** — ワークフローの横に✅緑のチェックマークが表示されます
- **Pull Request画面** — ページ下部に「All checks have passed」と緑色で表示されます
ただし、今回のCI設定は**チェックとビルドの確認のみ**です。成功しても自動デプロイや通知などは何も起きません。成功時にデプロイや通知を行いたい場合は、ci.ymlにさらにステップを追加することで対応できます。
---
## まとめ
| 項目 | 内容 |
|------|------|
| CIのトリガー | 全ブランチへのpush・全PR |
| 使用Node.js | v22 |
| チェックコマンド | `npx astro check` |
| ビルドコマンド | `npm run build` |
| 成功時の動作 | 緑のチェックマーク表示のみ |
`npm run check` でエラーが出た際は、`package.json` にスクリプトが定義されているかを確認し、なければ `npx astro check` に置き換えるのが最もシンプルな解決策です。


コメント