fix(developer): improve uploading of sourcemaps to sentry

Fixes #10720.

This makes three fixes:
* Uploads each sourcemap path separately to try and avoid the 413 error
  noted in the issue above.
* Starts from the parent folder, as it is possible that paths starting
  with .. may be ignored, as they were not being uploaded to sentry.
* Removes a number of unneeded test files and debug symbols, which
  should reduce the size of each release's debug data upload, and
  slightly speed up the build.
This commit is contained in:
Marc Durdin 2024-02-21 15:49:20 +07:00
parent dc93c5495c
commit d66da2da91

View file

@ -1,5 +1,4 @@
#!/usr/bin/env bash
#
# Upload Debug Information Files for this developer folder
#
@ -12,52 +11,72 @@
# Prerequisites: SENTRY_AUTH_TOKEN, SENTRY_URL, SENTRY_ORG variables must
# be configured.
#
set -e
set -u
## START STANDARD BUILD SCRIPT INCLUDE
# adjust relative paths as necessary
THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
. "${THIS_SCRIPT%/*}/../../../resources/build/build-utils.sh"
## END STANDARD BUILD SCRIPT INCLUDE
cd "$KEYMAN_ROOT/developer/src"
cd "$KEYMAN_ROOT/developer"
#
# Remove some additional unnecessary files: we don't want to upload these
# because they are really only used for internal test or as samples.
#
[ -f ./samples/imsample/IMSample.pdb ] && rm -f ./samples/imsample/IMSample.pdb
excluded_files=(
src/kmcmplib/build/x64/release/tests/api-test.exe
src/kmcmplib/build/x64/release/tests/api-test.pdb
src/kmcmplib/build/x64/release/tests/kmcompxtest.exe
src/kmcmplib/build/x64/release/tests/kmcompxtest.pdb
src/kmcmplib/build/x64/release/tests/uset-api-test.exe
src/kmcmplib/build/x64/release/tests/uset-api-test.pdb
src/kmcmplib/build/x86/release/tests/api-test.exe
src/kmcmplib/build/x86/release/tests/api-test.pdb
src/kmcmplib/build/x86/release/tests/kmcompxtest.exe
src/kmcmplib/build/x86/release/tests/kmcompxtest.pdb
src/kmcmplib/build/x86/release/tests/uset-api-test.exe
src/kmcmplib/build/x86/release/tests/uset-api-test.pdb
src/samples/imsample/bin/Win32/Release/imsample.dll
src/samples/imsample/bin/Win32/Release/imsample.pdb
src/samples/imsample/bin/Win32/Release/imsample.pdb
src/samples/imsample/bin/x64/Release/imsample.x64.dll
src/samples/imsample/bin/x64/Release/imsample.x64.pdb
src/samples/imsample/bin/x64/Release/imsample.x64.pdb
)
rm -f "${excluded_files[@]}"
#
# Upload the files
#
sourcemap_paths=(
./TIKE/xml
../bin/server
./kmc/build
./kmc-analyze/build
./kmc-keyboard-info/build
./kmc-kmn/build
./kmc-ldml/build
./kmc-model/build
./kmc-model-info/build
./kmc-package/build
./src/TIKE/xml
./bin/server
./src/kmc/build
./src/kmc-analyze/build
./src/kmc-keyboard-info/build
./src/kmc-kmn/build
./src/kmc-ldml/build
./src/kmc-model/build
./src/kmc-model-info/build
./src/kmc-package/build
)
echo "Uploading symbols for developer/"
./kmc/node_modules/.bin/sentry-cli upload-dif \
--project keyman-developer \
--include-sources \
--no-zips \
.
./kmc/node_modules/.bin/sentry-cli sourcemaps upload \
--org keyman \
--project keyman-developer \
--release "$VERSION_GIT_TAG" \
--dist "$VERSION_ENVIRONMENT" \
--ext js --ext mjs --ext ts --ext map \
"${sourcemap_paths[@]}"
./src/kmc/node_modules/.bin/sentry-cli upload-dif \
--project keyman-developer \
--include-sources \
--no-zips \
src/
for sourcemap_path in "${sourcemap_paths[@]}"; do
./src/kmc/node_modules/.bin/sentry-cli sourcemaps upload \
--org keyman \
--project keyman-developer \
--release "$VERSION_GIT_TAG" \
--dist "$VERSION_ENVIRONMENT" \
--ext js --ext mjs --ext ts --ext map \
"$sourcemap_path"
done