Help us understand the problem. What is going on with this article?

RSpecの実行結果を分かりやすくするGitHub Actionを作った

はじめに

CI/CDのサービスとして最近はGitHub Actionsを利用しているのですが、CircleCIと比較した時にRSpecが失敗した時の実行結果が分かりにくいのが不満でした。
そんなストレスを解消するために社内ハッカソンで作った以下のGitHub Actionを紹介します。

RSpec Report · Actions · GitHub Marketplace · GitHub

何が出来るの?

PRイベントの場合は失敗結果がコメントされます。
またコメントされることで同様の内容がメールでも通知されるので、失敗したテストの内容がGitHubにアクセスしなくても把握できるようになります。

a23798fbb2f0e6454bf75a0e09034eb8.png

PRイベント以外の場合はChecks API経由で通知されます。

0d3c61f6ecc3354a9734eb2b30a82211.png

使い方

test.yml
name: Build
on:
  pull_request:

jobs:
  rspec:
    steps:
      # RSpec実行の為の事前準備は省略しています

      - name: Test
        run: bundle exec rspec -f j -o tmp/rspec_results.json -f p

      - name: RSpec Report
        uses: SonicGarden/rspec-report-action@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          json-path: tmp/rspec_results.json
        if: always()

その他

ポイント

  • JSONフォーマットで出力したRSpecの実行結果を解析してコメントしています
    • rspecコマンドの-f j -o tmp/rspec_results.jsonオプションは必須です(保存先は任意)
  • テストが全て通ればコメントは削除されます
  • 繰り返し同じコメントが投稿されることはありません
  • テストの並列実行にも対応しています
    • その場合は以下のようにタイトルがユニークになるように調整してください
with:
  token: ${{ secrets.GITHUB_TOKEN }}
  json-path: tmp/rspec_results.json
  title: "# :cold_sweat: RSpec failure ${{ matrix.ci_node_index }}"

リポジトリ

GitHub - SonicGarden/rspec-report-action: A GitHub Action that report RSpec failure.

良かったら使ってみてください。

aki77
sonicgarden
「お客様に無駄遣いをさせない受託開発」と「習慣を変えるソフトウェアのサービス」に取り組んでいるソフトウェア企業
http://www.sonicgarden.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした