ジョブ上で、アップロードされたアーティファクトのURL へのアクセス

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 メッセージを送信するステップなど、他のステップに渡すことができます。

この記事は役に立ちましたか?
2人中0人がこの記事が役に立ったと言っています

コメント

0件のコメント

記事コメントは受け付けていません。