カバレッジレポートを S3 と Amplify で公開する GitHub Action「coverage-report-s3-amplify」を公開しました
カバレッジは計測するだけでは使われません。CI の実行ログを掘らないと見られない状態だと、結局誰も開かなくなります。生成したレポートをそのままブラウザで開ける場所に置く GitHub Action を公開しました。
- リポジトリ: phrase-llc/coverage-report-s3-amplify
- ライセンス: Apache-2.0
何をするツールか
この Action は3つの処理を行います。
- S3 へのアップロード — 指定したディレクトリのカバレッジ成果物を、
artifacts/<リポジトリ名>/<ブランチ名>/<実行ID>/というパスで S3 にアップロードします - Amplify のデプロイ — アップロードした成果物をソースとして、AWS Amplify の
mainブランチのデプロイを起動します - リンクの追記 — 生成されたレポートの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 全体を落とさない構成を推奨しています。