Как автоматически создать релиз Sentry и загрузить исходные карты в Sentry в реактивном проекте? - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть проект create-реагировать на приложение, и я хотел бы, чтобы процесс развертывания генерировал релиз Sentry и также загружал исходные карты в Sentry.

1 Ответ

0 голосов
/ 11 декабря 2018

Этот сценарий создаст выпуск Sentry для версии, указанной в файле package.json, и загрузит исходные карты в Sentry.

Он будет работать для любого проекта JS, а не только для React.

создайте файл в корне вашего проекта и назовите его deploy.sh:

SENTRY_TOKEN="YOUR_TOKEN"
PACKAGE_VERSION=`cat package.json \
  | grep version \
  | head -1 \
  | awk -F: '{ print $2 }' \
  | sed 's/[",]//g' \
  | tr -d '[[:space:]]'`

printf "\nBuilding version $PACKAGE_VERSION...\n\n"

#2) Build for dev and cd to build directory
npm run build # or whatever your build command is
cd build/static/js # or whatever your build folder is

#3) create Sentry release
SOURCE_MAP=`find . -maxdepth 1 -mindepth 1 -name '*.map' | awk '{ gsub("./", "") ; print $0 }'`
printf "\nCreating a Sentry release for version $PACKAGE_VERSION...\n"

curl https://sentry.io/api/0/projects/:sentry_organization_slug/:sentry_project_slug/releases/ \
  -X POST \
  -H "Authorization: Bearer ${SENTRY_TOKEN}" \
  -H 'Content-Type: application/json' \
  -d "{\"version\": \"${PACKAGE_VERSION}\"}" \

#4) Upload a file for the given release
printf "\n\nUploading sourcemap file to Sentry: ${SOURCE_MAP}...\n"
curl "https://sentry.io/api/0/projects/:sentry_organization_slug/:sentry_project_slug/releases/$PACKAGE_VERSION/files/" \
  -X POST \
  -H "Authorization: Bearer ${SENTRY_TOKEN}" \
  -F file=@${SOURCE_MAP} \
  -F name="https://THE_URL_OF_THE_MAIN_JS_FILE/$SOURCE_MAP"

#5) IMPORTANT: Delete the sourcemaps before deploying
rm $SOURCE_MAP

#6) upload to your cloud provider
...

замените:

  1. :sentry_organization_slug и :sentry_project_slug правильными значениями из sentry (с URL-адреса любой страницы на веб-сайте вашего почтового аккаунта)
  2. SENTRY_TOKEN с вашим токеном от Sentry
  3. THE_URL_OF_THE_MAIN_JS_FILE с URL-адресом, по которому ваш файл реакции сборки является общедоступным.

run.

Убедитесь, что вы не забыли обновлять версию package.json при каждом выпуске

...