カバレッジレポートを S3 と Amplify で公開する GitHub Action「coverage-report-s3-amplify」を公開しました

カバレッジは計測するだけでは使われません。CI の実行ログを掘らないと見られない状態だと、結局誰も開かなくなります。生成したレポートをそのままブラウザで開ける場所に置く GitHub Action を公開しました。

何をするツールか

この Action は3つの処理を行います。

  1. S3 へのアップロード — 指定したディレクトリのカバレッジ成果物を、artifacts/<リポジトリ名>/<ブランチ名>/<実行ID>/ というパスで S3 にアップロードします
  2. Amplify のデプロイ — アップロードした成果物をソースとして、AWS Amplify の main ブランチのデプロイを起動します
  3. リンクの追記 — 生成されたレポートのURLを GitHub Actions のステップサマリーに追記します

3つ目が効きます。プルリクエストの実行結果からワンクリックでレポートを開けるので、レビューのついでに見る習慣がつきます。パスに実行IDが入るため、過去の実行結果も残ります。

入力パラメータ

名前 内容 必須 既定値
AWS_ACCESS_KEY_ID AWS アクセスキーID
AWS_SECRET_ACCESS_KEY AWS シークレットアクセスキー
BUCKET_NAME S3 バケット名
AWS_DEFAULT_REGION AWS リージョン
BRANCH_NAME ブランチ名
AMPLIFY_APP_ID Amplify のアプリケーションID
AMPLIFY_HOST_URL Amplify のホストURL(リンク生成に使用)
COVERAGE_SUBDIRECTORY カバレッジ成果物のサブディレクトリ coverage

使い方

ワークフローにステップとして追加します。

- name: Run coverage-report-s3-amplify action
  uses: phrase-llc/coverage-report-s3-amplify@main
  continue-on-error: true
  with:
    AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
    AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
    BUCKET_NAME: ${{ secrets.BUCKET_NAME }}
    AWS_DEFAULT_REGION: ap-northeast-1
    BRANCH_NAME: ${{ github.ref_name }}
    AMPLIFY_APP_ID: ${{ secrets.AMPLIFY_APP_ID }}
    AMPLIFY_HOST_URL: ${{ secrets.AMPLIFY_HOST_URL }}

continue-on-error: true を付けておくと、レポートの公開に失敗しても後続のジョブは止まりません。 カバレッジの配信は本質的に補助的な処理なので、そこで CI 全体を落とさない構成を推奨しています。

CONTACT

フレイズに相談してみる

開発からデザインまで、構想段階からでも大丈夫です。
まずはお気軽にご相談ください。

[email protected]