name: premerge-check description: プレマージワークフローをローカルで実行してCI/CDチェックを行います。ローカル環境でCI/CDと同等の検証を実施したい場合に使用してください。
プレマージチェックスキル
このスキルは、GitHub ActionsのPremergeワークフローをローカル環境で再現し、CI/CDと同等の検証を実施します。
利用可能なツール
- bash: コマンド実行、依存関係インストール、検証コマンド実行
- view: ファイル内容の確認
- grep: コード検索
使用すべきタイミング
以下の場合にこのスキルを使用してください:
- PRを作成する前にローカルでCI/CDチェックを実行したい場合
- CI/CDで発生するエラーをローカルで再現・修正したい場合
- すべてのワークスペースの変更を包括的にテストしたい場合
必須検証項目
1. プロジェクトルートへの移動
cd /home/runner/work/attendance-kit/attendance-kit
すべてのコマンドはプロジェクトルートから実行してください。
注: このパスはGitHub Actions環境用です。ローカル開発では、自身のプロジェクトルートディレクトリに置き換えてください。
2. 依存関係のインストール
npm run setup
変更前に依存関係が正しくインストールされていることを確認します。
3. Lint実行
npm run lint
必須: コード変更後、必ず実行してください。
- シークレット検出(secretlint)
- Markdownリント(markdownlint)
- シェルスクリプトチェック(shellcheck)
- GitHub Actionsリント(actionlint)
- ESLint(TypeScript/JavaScript)
4. フォーマットチェック
npm run format:check
必須: コードスタイルの確認を行ってください。
- Prettierによるコードフォーマットチェック
5. ビルド実行
npm run build
必須: コード変更後、必ず実行してください。
- Backend、Frontend、Infrastructureのビルド
- TypeScriptのコンパイル確認
6. ユニットテスト実行
npm run test:unit
必須: コード変更後、必ず実行してください。
- すべてのワークスペースのユニットテスト
- スナップショットの更新(必要に応じて)
7. Backend統合テスト実行
npm run test:integration --workspace=@attendance-kit/backend
必須: Backend変更時は実行してください。
- aws-sdk-client-mockを使用した統合テスト
- エンドポイントの動作確認
8. Frontend E2Eテスト実行
npm run test:integration --workspace=@attendance-kit/frontend
必須: Frontend変更時は実行してください。
- Playwrightによるブラウザテスト
- 画面遷移の動作確認
9. Infrastructure統合テスト実行
npm run test:integration --workspace=@attendance-kit/deploy
必須: Infrastructure変更時は実行してください。
- LocalStackを使用した統合テスト
- CDKデプロイのシミュレーション
10. OpenAPI仕様の生成
npm run generate
必須: APIエンドポイントやDTOを変更した場合は実行してください。
- OpenAPI仕様(
apps/backend/api/openapi.json)の自動生成
11. E2Eテスト実行(オプション)
npm run test:e2e:local
推奨: フロントエンドとバックエンドの統合動作を完全にテストする場合に実行してください。
- Cucumber + Playwrightによる統合テスト
- LocalStack、Backend、Frontendサーバーの起動が必要
注: E2Eテストは実行に時間がかかるため、必要な場合のみ実行してください。
実行順序
推奨される実行順序:
npm run setup- 依存関係インストールnpm run lint- Lintチェックnpm run format:check- フォーマットチェックnpm run build- ビルド確認npm run test:unit- ユニットテストnpm run test:integration --workspace=@attendance-kit/backend- Backend統合テストnpm run test:integration --workspace=@attendance-kit/frontend- Frontend E2Eテストnpm run test:integration --workspace=@attendance-kit/deploy- Infrastructure統合テストnpm run generate- OpenAPI仕様生成npm run test:e2e:local- E2Eテスト(オプション)
エラー対応
Lintエラーが発生した場合
# エラー詳細を確認
npm run lint
# 個別にLintを実行
npm run lint:secrets
npm run lint:markdown
npm run lint:shellcheck
npm run lint:actionlint
- 未使用変数・インポートを削除
- 型定義を追加
- コードスタイルを修正
- シークレットが含まれていないか確認
フォーマットエラーが発生した場合
# 自動修正
npm run format
# 再度チェック
npm run format:check
- Prettierによる自動フォーマットを実行
- コミット前に必ずフォーマットを適用
ビルドエラーが発生した場合
# エラー詳細を確認
npm run build
# 個別にビルド
npm run build --workspace=@attendance-kit/backend
npm run build --workspace=@attendance-kit/frontend
npm run build --workspace=@attendance-kit/deploy
- TypeScriptの型エラーを修正
- インポートパスを確認
- tsconfig.jsonの設定を確認
テストエラーが発生した場合
# 失敗したテストの詳細を確認
npm test
# 個別にテスト実行
npm test --workspace=@attendance-kit/backend
npm test --workspace=@attendance-kit/frontend
npm test --workspace=@attendance-kit/deploy
- テストロジックを確認
- モックの設定を確認
- スナップショットを更新
ベストプラクティス
コード変更時の原則
- 変更前に既存のテストを実行: 既存の問題を把握
- 小さな変更を頻繁にテスト: エラーの早期発見
- すべての検証を通過させる: Premergeワークフローと同じ基準
- 自動生成ファイルをコミット: OpenAPI仕様やスナップショット
検証のスキップ条件
以下の場合のみ一部の検証をスキップ可能:
- ドキュメントのみの変更: テスト不要(Lint、フォーマットは実行)
- 特定ワークスペースのみの変更: 他のワークスペースの統合テストは不要
- コメントのみの変更: ビルド確認のみ
それ以外の場合は、必ずすべての検証を実行してください。
Premergeワークフローとの対応
このスキルの検証項目は、GitHub ActionsのPremergeワークフローと完全に対応しています:
| Premergeステップ | ローカル検証コマンド |
|---|---|
npm run setup |
npm run setup |
npm run lint |
npm run lint |
npm run format:check |
npm run format:check |
npm run build |
npm run build |
npm run test:unit |
npm run test:unit |
| Backend統合テスト | npm run test:integration --workspace=@attendance-kit/backend |
| Frontend E2Eテスト | npm run test:integration --workspace=@attendance-kit/frontend |
| Infrastructure統合テスト | npm run test:integration --workspace=@attendance-kit/deploy |
npm run generate |
npm run generate |
| E2Eテスト | npm run test:e2e:local |

