From a188d6080a35f39944c0370fedbc3931aa1f5789 Mon Sep 17 00:00:00 2001 From: Satbir Singh Date: Thu, 27 Feb 2020 11:25:55 +0000 Subject: [PATCH] Sentry sourcemaps --- app/client/.sentryclirc | 7 +++ app/client/build.sh | 12 ++++ app/client/craco.build.config.js | 16 +++++ ...craco.config.js => craco.common.config.js} | 0 app/client/package.json | 7 ++- .../src/constants/ThirdPartyConstants.tsx | 2 + app/client/yarn.lock | 63 ++++++++++++++++--- 7 files changed, 97 insertions(+), 10 deletions(-) create mode 100644 app/client/.sentryclirc create mode 100755 app/client/build.sh create mode 100644 app/client/craco.build.config.js rename app/client/{craco.config.js => craco.common.config.js} (100%) diff --git a/app/client/.sentryclirc b/app/client/.sentryclirc new file mode 100644 index 0000000000..738f048db5 --- /dev/null +++ b/app/client/.sentryclirc @@ -0,0 +1,7 @@ +[auth] +token=a86809ea5ede4755936cb72aa7c23f9555be3c21fb2449e6b1f47be6b00a9098 +[defaults] +project=appsmith +org=appsmith +dsn=https://a63362b692d64edeb175741f1f80b091@sentry.io/1546547 +log-level=debug \ No newline at end of file diff --git a/app/client/build.sh b/app/client/build.sh new file mode 100755 index 0000000000..b0ba6cf0f7 --- /dev/null +++ b/app/client/build.sh @@ -0,0 +1,12 @@ + +#!/bin/sh +GIT_SHA=$(eval git rev-parse HEAD) +GIT_BRANCH=$(git branch --no-color | grep -E '^\*' | sed 's/\*[^a-z]*//g') + +# RELEASE="${GIT_BRANCH}_${GIT_SHA}" + + +# RELEASE=$(echo "$RELEASE" | sed -e 's/[\/\\\ .]/\-/g') +# echo $RELEASE + +REACT_APP_SENTRY_RELEASE=$GIT_SHA craco --max-old-space-size=2048 build --config craco.build.config.js \ No newline at end of file diff --git a/app/client/craco.build.config.js b/app/client/craco.build.config.js new file mode 100644 index 0000000000..85ec315953 --- /dev/null +++ b/app/client/craco.build.config.js @@ -0,0 +1,16 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ +const SentryWebpackPlugin = require('@sentry/webpack-plugin'); +const merge = require('webpack-merge'); +const common = require('./craco.common.config.js'); + +module.exports = merge(common, { + webpack: { + plugins: [ + new SentryWebpackPlugin({ + include: 'build', + ignore: ['node_modules', 'webpack.config.js'], + release: process.env.REACT_APP_SENTRY_RELEASE + }) + ] + }, +}); diff --git a/app/client/craco.config.js b/app/client/craco.common.config.js similarity index 100% rename from app/client/craco.config.js rename to app/client/craco.common.config.js diff --git a/app/client/package.json b/app/client/package.json index f879dcafac..f5bc2c689d 100644 --- a/app/client/package.json +++ b/app/client/package.json @@ -6,6 +6,7 @@ "node": "^10.16.3", "npm": "^6.9.0" }, + "cracoConfig": "craco.common.config.js", "dependencies": { "@blueprintjs/core": "^3.18.1", "@blueprintjs/datetime": "^3.14.0", @@ -94,7 +95,7 @@ "scripts": { "analyze": "source-map-explorer 'build/static/js/*.js'", "start": "REACT_APP_BASE_URL=https://release-api.appsmith.com REACT_APP_ENVIRONMENT=DEVELOPMENT HOST=dev.appsmith.com craco start", - "build": "craco --max-old-space-size=2048 build", + "build": "$PWD/build.sh", "test": "CI=true craco test", "eject": "react-scripts eject", "start-prod": "REACT_APP_BASE_URL=https://api.appsmith.com REACT_APP_ENVIRONMENT=PRODUCTION craco start", @@ -116,6 +117,7 @@ ], "devDependencies": { "@babel/core": "^7.7.4", + "@sentry/webpack-plugin": "^1.10.0", "@storybook/addon-contexts": "^5.2.6", "@storybook/addon-docs": "^5.2.8", "@storybook/addon-knobs": "^5.2.6", @@ -146,7 +148,8 @@ "react-test-renderer": "^16.11.0", "redux-devtools": "^3.5.0", "redux-devtools-extension": "^2.13.8", - "storybook-addon-designs": "^5.1.1" + "storybook-addon-designs": "^5.1.1", + "webpack-merge": "^4.2.2" }, "husky": { "hooks": { diff --git a/app/client/src/constants/ThirdPartyConstants.tsx b/app/client/src/constants/ThirdPartyConstants.tsx index ccfe89e3f6..53f9a8f497 100644 --- a/app/client/src/constants/ThirdPartyConstants.tsx +++ b/app/client/src/constants/ThirdPartyConstants.tsx @@ -2,10 +2,12 @@ export type ENVIRONMENT = "PRODUCTION" | "STAGING" | "LOCAL"; export const SENTRY_PROD_CONFIG = { dsn: "https://a63362b692d64edeb175741f1f80b091@sentry.io/1546547", environment: "Production", + release: process.env.REACT_APP_SENTRY_RELEASE, }; export const SENTRY_STAGE_CONFIG = { dsn: "https://a63362b692d64edeb175741f1f80b091@sentry.io/1546547", environment: "Staging", + release: process.env.REACT_APP_SENTRY_RELEASE, }; export const HOTJAR_PROD_HJID = "1465835"; diff --git a/app/client/yarn.lock b/app/client/yarn.lock index e27df6da4b..ec1f237e96 100644 --- a/app/client/yarn.lock +++ b/app/client/yarn.lock @@ -1517,6 +1517,18 @@ "@sentry/utils" "5.12.0" tslib "^1.9.3" +"@sentry/cli@^1.49.0": + version "1.51.1" + resolved "https://registry.yarnpkg.com/@sentry/cli/-/cli-1.51.1.tgz#6ad6b0a74555a5e92e6bdc23e5814418d3287658" + integrity sha512-JKYdoE5Pz8AQaupVQW3XOFTuff1UyLtxhcFzQPwQXiZEyXabo00dosX3YkqPKUwMv7LgxTOH23SJU8HwStAmFw== + dependencies: + fs-copy-file-sync "^1.1.1" + https-proxy-agent "^4.0.0" + mkdirp "^0.5.1" + node-fetch "^2.1.2" + progress "2.0.0" + proxy-from-env "^1.0.0" + "@sentry/core@5.12.0": version "5.12.0" resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.12.0.tgz#d6380c4ef7beee5f418ac1d0e5be86a2de2af449" @@ -1559,6 +1571,13 @@ "@sentry/types" "5.12.0" tslib "^1.9.3" +"@sentry/webpack-plugin@^1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@sentry/webpack-plugin/-/webpack-plugin-1.10.0.tgz#7f7727b18dbdd3eaeb0998102be89d8733ddbca5" + integrity sha512-keT6cH8732bFjdH/v+C/UwbJu6byZ5L8t7QRLjgj+fqDyc/RlVEw9VzIQSJGUtd2XgImpdduWzgxythLkwKJjg== + dependencies: + "@sentry/cli" "^1.49.0" + "@storybook/addon-contexts@^5.2.6": version "5.3.12" resolved "https://registry.yarnpkg.com/@storybook/addon-contexts/-/addon-contexts-5.3.12.tgz#974df74f16aee00f3ba33bd5add026cc69f8bc72" @@ -3188,6 +3207,11 @@ adjust-sourcemap-loader@2.0.0: object-path "0.11.4" regex-parser "2.2.10" +agent-base@5: + version "5.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-5.1.1.tgz#e8fb3f242959db44d63be665db7a8e739537a32c" + integrity sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g== + aggregate-error@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" @@ -5627,6 +5651,13 @@ debug@3.2.6, debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5: dependencies: ms "^2.1.1" +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + debug@=3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" @@ -5634,13 +5665,6 @@ debug@=3.1.0: dependencies: ms "2.0.0" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -7154,6 +7178,11 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +fs-copy-file-sync@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fs-copy-file-sync/-/fs-copy-file-sync-1.1.1.tgz#11bf32c096c10d126e5f6b36d06eece776062918" + integrity sha512-2QY5eeqVv4m2PfyMiEuy9adxNP+ajf+8AR05cEi+OAzPcOj90hvFImeZhTmKLBgSd9EvG33jsD7ZRxsx9dThkQ== + fs-extra@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" @@ -7934,6 +7963,14 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +https-proxy-agent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz#702b71fb5520a132a66de1f67541d9e62154d82b" + integrity sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg== + dependencies: + agent-base "5" + debug "4" + husky@^3.0.5: version "3.1.0" resolved "https://registry.yarnpkg.com/husky/-/husky-3.1.0.tgz#5faad520ab860582ed94f0c1a77f0f04c90b57c0" @@ -10480,7 +10517,7 @@ node-ensure@^0.0.0: resolved "https://registry.yarnpkg.com/node-ensure/-/node-ensure-0.0.0.tgz#ecae764150de99861ec5c810fd5d096b183932a7" integrity sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc= -node-fetch@^2.6.0: +node-fetch@^2.1.2, node-fetch@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== @@ -12160,6 +12197,11 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +progress@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + integrity sha1-ihvjZr+Pwj2yvSPxDG/pILQ4nR8= + progress@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" @@ -12236,6 +12278,11 @@ proxy-addr@~2.0.5: forwarded "~0.1.2" ipaddr.js "1.9.0" +proxy-from-env@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" + integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"