Table of contents

Релизы

Релизы в Хоуке — это механизм, который связывает события (ошибки, логи) с конкретной версией вашего приложения.

Информацию о новом релизе нужно отправлять в Хоук каждый раз, когда вы выкатываете новую версию приложения — например, после деплоя или сборки.

Это позволяет:

  • связать ошибки именно с той версией кода, где они возникли;
  • корректно отобразить stack trace по исходным картам (source maps);
  • показать в обзоре события список последних коммитов, среди которых можно быстрее найти причину ошибки.

Для того, чтобы релизы заработали, нужно сделать два шага:

  1. Настроить отправку релизов с помощью Webpack или Vite плагинов (см. ниже)
  2. Передать id релиза при инициализации SDK Хоука. Id генерируется автоматически плагинами или задается вручную.

Отправка source maps позволяет видеть в Хоуке фрагменты исходного кода, а не минифицированной сборки. Без этого искать причину ошибки будет затруднительно.

Отправлять source maps надо после каждой сборки (во время деплоя) приложения. Для этого можно использовать наши плагины для Webpack или Vite.

Читайте подробную инструкцию в readme @hawk.so/vite-plugin 

import hawkVitePlugin from '@hawk.so/vite-plugin'; export default defineConfig({ plugins: [ ..., hawkVitePlugin({ token: '' // Your project's Integration Token }) ] })

Читайте подробную инструкцию в readme @hawk.so/webpack-plugin

const HawkWebpackPlugin = require('@hawk.so/webpack-plugin'); module.exports = { // ... other webpack options plugins: [ new HawkWebpackPlugin({ integrationToken: '' // Your project's Integration Token }) ], devtool: 'source-map', }

По умолчанию Webpack-плагин также пытается отправить несколько последних коммитов. Подозрительные коммиты будут показаны в обзоре события — это полезная функция, которая может помочь в расследовании причин ошибок.

Для других языков коммиты можно отправлять отдельно, ассоциируя их с релизом.

Чтобы релизы корректно работали, название релиза в событиях должно совпадать с названием отправленного релиза. Если названия не совпадут, Хоук не сможет связать ошибки с нужной версией приложения.

Отправить коммиты для релиза можно, например, с помощью shell-скрипта из репозитория hawk.releases:

$ ./commits.sh --release="Version 2.0.1" --token=eyJ...integrationToken...

Можно отправлять релизы с помощью экшена codex-team/hawk.releases

jobs: build: runs-on: ubuntu-20.04 steps: # Get package new version name - name: Get package info id: packageInfo uses: codex-team/action-nodejs-package-info@v1 - name: Send commits to Hawk run: | curl https://raw.githubusercontent.com/codex-team/hawk.releases/main/scripts/commits.sh -O chmod +x ./commits.sh ./commits.sh -r=${{ steps.package.outputs.name }}-${{ steps.package.outputs.version }} -t=${{ env.HAWK_TOKEN }} rm ./commits.sh