14
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CircleCIAdvent Calendar 2019

Day 2

CircleCiのビルドでSentryのreleaseを更新しSourceMapを追加(Nuxt.js編)

Posted at

こちらCircleCI Advent Calendar 2019の記事です。
お声がけいただいたのでCircleCI, Sentry, Nuxt.jsというニッチな小ネタですが書きます。

目的

Nuxt.jsのプロジェクトをCircleCIでデプロイする際にSentryのreleaseを更新してSourceMapを追加する

手順

Sentryプロジェクトは既に存在すると想定して、CircleCI側の設定とNuxt.jsアプリの設定手順を記載します。
参考に使うプロジェクトはこちらですべてソースを公開しております。

CircleCI側

  • CircleCIのContextに以下の項目を追加
    • Context名: SENTRY_AUTH_TOKEN
    • Context名: SENTRY_ORG
      • すべて小文字の Sentryのorganization名
        • 例: AlisProject -> alisproject
    • Context名: SENTRY_PROJECT
      • Sentryのproject名
        • ex: foobar
  • 本記事とは直接関係しませんが、参考までに:

Nuxt.js側

次にNuxt.jsアプリ側の設定です。

Sentry用npmパッケージを入れる

npm i --save @nuxtjs/sentry

nuxt.config.jsに設定を追加。

modules部分
...
modules: ['@nuxtjs/axios', '@nuxtjs/markdownit', '@nuxtjs/style-resources', '@nuxtjs/sentry'],
...
sentry用の項目を追加
...
  sentry: {
    dsn: `${process.env.SENTRY_DSN}`
  },
...

${process.env.SENTRY_DSN}にはSentryの設定画面で取得したDSNが入ります。
本プロジェクトではCircleCIでのビルド時に、AWS SSMから値を取得して環境変数に格納しています
また、リリース名にはgitのハッシュを使用しています。デプロイ戦略として、細かいものは必ずしもバージョンを振らない運用をしているためです。

まとめ

以上の設定でSentryにrelease等が反映され、トレースがしやすくなります。

リリースごとに New Issues が確認できるのはデグレ観点で強いです。
image.png

image.png

画像が少々わかりにくいですが、リリース(縦線)を境にバグが急増するなどしても可視化されます。
(スクリーンショットで細かいバグまで手が回っていないことがばれますね..)
image.png

SourceMapも追加され、ミニファイしたプロダクション環境でもバグ発生箇所のソースをSentry上で追うことができるようになるのでおすすめです。

14
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?