📘

Sentry+Github Actionsでリリース送信

2022/09/08に公開

目的

Sentry上でいろんなメトリクスを管理していく上で、どのリリースによるものなのかを管理する必要があったため設定した。
Nextは標準のパッケージ使えば特に設定しなくてもリリース情報が送信されるようになっているが、CIに絡めたかったので、下記利用
https://github.com/marketplace/actions/sentry-release

sentry-release.yml

monorepo管理しているので、アプリケーションごとにリリースを作ってみた。

sentry-release.yml
name: Sentry Release

on:
  push:
    tags:
      - 'v*'

jobs:
  sentry-release:
    runs-on: ubuntu-latest
    steps:
      - name: Get tag
        id: tag
        uses: dawidd6/action-get-tag@v1
        with:
          strip_v: true
      - name: Checkout repository
        uses: actions/checkout@v2
        with:
          token: ${{secrets.PERSONAL_TOKEN}}
          ref: ${{ github.head_ref }}
      - name: Create Sentry release for next
        uses: getsentry/action-release@v1
        env:
          SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN_CI }}
          SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
          SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT_NEXT }}
        with:
          environment: production
          version: ${{steps.tag.outputs.tag}}
      - name: Create Sentry release for laravel
        uses: getsentry/action-release@v1
        env:
          SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN_CI }}
          SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
          SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT_LARAVEL }}
        with:
          environment: production
          version: ${{steps.tag.outputs.tag}}

リリースはわかりやすく、git tag情報を使いたかったので、こちらも既存のアクション利用
https://github.com/marketplace/actions/get-tag

エラー:Commit not found

コミットないんですけどー、的なエラーが出た時はそもそも、GithubとSentryのインテグレーション設定でレポジトリへのアクセスを許可しているのかチェック。
プライベートリポジトリの場合には設定で許可してあげないと、アクセスできなくて上記のようなエラーが出たりする。
https://charles-stover.medium.com/how-i-debugged-sentry-release-no-commits-found-change-commits-range-d390ba4e326c

Discussion