プロジェクトをビルドおよびテストできないエージェントは、自身の作業を検証することはできません。品質ゲート、レビュー、プルリクエストへの信頼といった後続のすべての処理は、これらのコマンドが正しいことにかかっています。
プロジェクト作成時にCoroidがそれらを検出します。検出結果を確認してください。
Coroidに必要なもの
| コマンド | 用途 |
|---|---|
| インストール | クリーンなワークスペースで依存関係を復元するため |
| ビルド | プロジェクトがコンパイルされることを確認するため |
| テスト | テストスイートを実行し、その結果を確認するため |
各タスクごとにワークスペースはクリーンで一時的なものとなるため、すべてのコマンドはキャッシュや事前インストールされたものが何もない新しいクローンから実行可能である必要があります。
検出が誤認することが多いケース
**モノレポ。**コマンドがサブディレクトリ内に存在したり、ワークスペースフィルターが必要だったりします。ルートレベルのコマンドは存在しても誤った動作をする場合があります。
**セットアップ手順。**コード生成、マイグレーション、またはフィクスチャのビルドが必要なテストスイート。検出処理ではテストコマンドのみを認識し、その前提条件を見落としてしまいます。
**サービス依存関係。**データベース、キャッシュ、キューが稼働している必要があるテスト。もしテストスイートがlocalhost:5432が稼働していると想定している場合、クリーンなワークスペースでは失敗してしまいます。
**環境変数。**リポジトリ内に存在しない.envから設定を読み取るテストスイート。
設定が誤っている際の症状
変更内容とは無関係な理由で検証中にタスクが失敗する現象。どのタスクでも、要求内容に関係なく同じ段階で同じ失敗が発生します。
コードが記述される前に失敗が発生する場合、ほとんどのケースでビルドコマンドに問題があります。変更後に失敗する場合は、通常はテストコマンドまたはテストが依存するものに問題があります。
コンテナ
プロジェクトをコンテナ化できる場合、Coroidはその実行環境として利用できます。これにより、サービス依存関係と環境のずれが一度に解決されます。なぜなら、コンテナ内にそれらがすでに組み込まれているからです。
テストを実行できる動作するDockerfileまたはComposeファイルがあれば、それが通常最も信頼性の高い設定となります。
言語サポート
エージェントはあらゆる言語で動作しますが、Coroidが独自に検証できる範囲は言語によって異なります。特に意味論的ナビゲーションについては言語サポートとエージェント環境を参照して、ワークスペースにインストールされているものや、どの言語に言語サーバーが備わっているかを確認してください。
これらのコマンドを正しく設定することが、使用する言語よりも重要です。サポートが不十分な言語であっても正しいビルドおよびテストのペアは、サポートが充実した言語で誤った設定よりも優れています。