store_artifacts ステップ の後、アップロードされたアーティファクトは、ジョブが完了する前でも、すぐに API からアクセスできる状態になります。
それを踏まえて、API 呼び出しを行い、値を変数に格納すれば、保存されたアーティファクトの URL にアクセスできます。 URL は、その後のステップで次のような使い方ができます。
- Slack Orb と一緒に使用することで、アーティファクトの URL をメッセージとして送信できます。
- when 属性 と組み合わせることで、ステップが失敗したとき(
on_fail
)にのみ API 呼び出しを実行できます。
結果として、ビルドが失敗した場合にのみ、アップロードされたアーティファクト (スクリーンショットや、失敗に関する詳細な情報を含むファイルなど) のURLをSlack メッセージとして送信できます。
実装例
パーソナル API トークンを生成し、プロジェクトレベルの環境変数へ保存する必要があります。以下の例では、 CIRCLE_API_TOKEN
がそれに該当します。
次のスニペットでは、(vcs)
を github
または bitbucket
のいすれか、 (org)
を組織のアカウント、 (project)
をプロジェクトの名前に置き換える必要があります。 すべてのアーティファクトを確実に使用できるようにするには、 store_artifacts
ステップの後に実行する必要があります。
- run: name: Get artifacts when: on_fail command: | artifacts=$(curl -X GET "https://circleci.com/api/v2/project/(vcs)/(org)/(project)/$CIRCLE_BUILD_NUM/artifacts" \ -H "Accept: application/json" \ -u "$CIRCLE_API_TOKEN:") echo "export ARTIFACT_RESPONSE=$artifacts" >> $BASH_ENV
上記のステップを実行した後、$ARTIFACT_RESPONSE
を使用して、ビルドのアーティファクト情報にアクセスできます。これは、Slack メッセージを送信するステップなど、他のステップに渡すことができます。
コメント
記事コメントは受け付けていません。