running-devops-test-suite について
DevOps Center のテストスイートを実行し、条件を満たせばブロックされた品質ゲートを再実行するスキルです。パイプライン情報の確認と明示的な承認後に実行し、実行 ID をポーリングスキルに渡します。
主な機能
- 01パイプラインとステージ入力の確認
- 02実行前のユーザー承認
- 03品質ゲートの再実行
- 04実行 ID をポーリングスキルへ引き継ぎ
- 05状態に応じたエラー案内
活用シーン
- 01確認済みステージのテスト実行
- 02カバレッジ基準達成後のゲート再実行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill running-devops-test-suiteインストール後、Claude Code で/running-devops-test-suiteを入力して読み込まれたか確認します。
詳細
DevOps Center テストスイートの実行
前提条件
まず checking-devops-prerequisites を読み込み、それに従ってください。前提条件 1~4 と前提条件 5(パイプラインのステージ)を実行してください。このスキルは特定のステージで動作するためです。続行する前に、確認済みの doce-org-alias、pipelineId、stageId が必要です。
このスキルを呼び出す前に必要な入力
| 入力 | 取得方法 |
|---|---|
pipelineId | 前提条件 4(パイプラインの選択)から取得 |
stageId | 前提条件 5(パイプラインのステージの確認)から取得 |
event | ユーザーに確認:Pre-Promote または Post-Promote(レビュー環境の場合は Review) |
testSuiteIds | スイートの選択または推奨のステップで確認したスイート ID |
doce-org-alias | 前提条件 1 で設定 |
確認ゲート
この呼び出しは組織の状態を変更します。明示的なユーザー確認なしに続行しないでください。
API を呼び出す前に、ユーザーに次の内容を提示してください。
"次の設定でテストを実行しようとしています:
- パイプライン:
<pipelineName>- ステージ:
<stageName>- イベント:
<event>- スイート:
<suiteName(s)>- 組織:
<doce-org-alias>続行してもよろしいですか?"
ユーザーが確認するまで API を呼び出さないでください。
API 呼び出し
sf api request rest \
"/services/data/v67.0/connect/devopstesting/pipeline/<pipelineId>/stage/execute" \
--method POST \
--body '{
"stageId": "<stageId>",
"event": "<event>",
"testSuiteIds": ["<suiteId1>", "<suiteId2>"]
}' \
--target-org <doce-org-alias>
ボディスキーマ
| フィールド | 型 | 説明 |
|---|---|---|
stageId | string | テストを実行するパイプラインステージの ID |
event | string | Pre-Promote、Post-Promote、または Review |
testSuiteIds | string[] | 実行する 1 つ以上のテストスイート ID |
成功時
レスポンスから runId(または実行 ID)を抽出します。ユーザーに次のように伝えてください。
"
<doce-org-alias>でテストを実行中です。結果が出たらお知らせします。"
直ちに runId を polling-test-results スキルに引き継ぎ、ポーリングループを開始してください。
エラー時
| ステータス | ユーザーへのメッセージ |
|---|---|
| 400 | "テスト実行リクエストが無効です。ステージ ID とスイート ID が正しいことを確認してください。" |
| 403 | "このパイプラインでテストを実行する権限がありません。DevOps Testing API へのアクセス権を確認してください。" |
| 404 | "パイプラインまたはステージが見つかりません。削除されている可能性があります。" |
| 500 | "DevOps Center 組織からサーバーエラーが返されました。数分後にもう一度お試しください。" |
生の API エラーをユーザーに見せないでください。
再トリガーモード(品質ゲートの再実行)
品質ゲートの失敗によってプロモーションがブロックされ、その後カバレッジの不足が解消された場合に、このモードを使用します。
追加の前提条件 — 続行する前にすべて満たす必要があります
- 最新の
DevopsTestSuiteExecutionのCoverageフィールドが、DevopsQualityGateRuleで定義されたしきい値以上である - ユーザーがゲートの再トリガーを明示的に依頼している
- ブロックされたプロモーションと同じ
pipelineId、stageId、eventが分かっている
カバレッジがまだしきい値を下回っている場合は、再トリガーしないでください。代わりに次のように応答してください。
"カバレッジはまだ
<X>%で、ゲートのしきい値<threshold>%を下回っています。しきい値に達するまでゲートを再トリガーできません。未カバーのメソッドは次のとおりです:<list>。"
再試行しないでください。先に解決すべき内容を説明し、そこで終了してください。
再トリガーに必要な入力
| 入力 | 取得元 |
|---|---|
pipelineId | ブロックされたプロモーションのコンテキスト |
stageId | ブロックされたプロモーションのコンテキスト |
event | 最初にブロックされたときと同じイベントタイプ(Pre-Promote または Post-Promote) |
suiteIds | 最初に実行したものと同じスイート |
doce-org-alias | 前提条件 1 で設定 |
確認ゲート(再トリガー)
API 呼び出しを実行する前に、次の確認メッセージを提示し、ユーザーの明示的な承認を待ってください。
"カバレッジが
<X>%であることを確認しました。ゲートのしきい値<threshold>%を満たしています。<stageName>ステージ(<event>)の品質ゲートチェックを再トリガーします。よろしいですか?"
ユーザーが確認した場合にのみ続行してください。ユーザーが承認しない場合は、API を呼び出さずに終了してください。
API 呼び出し(再トリガー)
同じ Connect API の stage/execute エンドポイントを使用します。
sf api request rest "/services/data/v67.0/connect/devopstesting/pipeline/<pipelineId>/stage/execute" --method POST --body '{"stageId":"<stageId>","event":"<event>","testSuiteIds":["<suiteId1>"]}' --target-org <doce-org-alias>
呼び出しから runId が返されたら、新しい runId を使って polling-test-results スキルに引き継ぎ、実行結果を監視します。
エラー処理(再トリガー)
ゲートを再トリガーできないことを示すエラーが API から返された場合は、次のように応答します。
"品質ゲートは現在、再トリガーできません。理由:
<平易な言葉での概要>。まず解決する必要がある内容はこちらです:<リスト>。"
API の生のエラー詳細をユーザーに決して公開しないでください。
関連スキル
polling-test-results—runIdの受け取り後、非同期実行の結果をポーリングしますrecommending-devops-tests— 実行をトリガーする前に、最初に実行するテストスイートを提案しますmanaging-suite-assignments— テストスイートがまだリンクされていない場合、パイプラインのステージに割り当てるかマッピングしますconfiguring-quality-gate— 新しいゲートまたはしきい値を設定します