From 1637c7665e291ade61b2c145caa5f119829136d7 Mon Sep 17 00:00:00 2001 From: Joe Banks Date: Tue, 6 Oct 2020 19:37:58 +0100 Subject: Add Sentry packages --- package.json | 2 ++ yarn.lock | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 83 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ff7968a..f9d54f3 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,8 @@ "@fortawesome/free-brands-svg-icons": "^5.14.0", "@fortawesome/free-solid-svg-icons": "^5.14.0", "@fortawesome/react-fontawesome": "^0.1.11", + "@sentry/react": "^5.25.0", + "@sentry/tracing": "^5.25.0", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^7.1.2", diff --git a/yarn.lock b/yarn.lock index 52d2ca8..d1dfb7a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1490,6 +1490,81 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== +"@sentry/browser@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.25.0.tgz#4e3d2132ba1f2e2b26f73c49cbb6977ee9c9fea9" + integrity sha512-QDVUbUuTu58xCdId0eUO4YzpvrPdoUw1ryVy/Yep9Es/HD0fiSyO1Js0eQVkV/EdXtyo2pomc1Bpy7dbn2EJ2w== + dependencies: + "@sentry/core" "5.25.0" + "@sentry/types" "5.25.0" + "@sentry/utils" "5.25.0" + tslib "^1.9.3" + +"@sentry/core@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-5.25.0.tgz#525ad37f9e8a95603768e3b74b437d5235a51578" + integrity sha512-hY6Zmo7t/RV+oZuvXHP6nyAj/QnZr2jW0e7EbL5YKMV8q0vlnjcE0LgqFXme726OJemoLk67z+sQOJic/Ztehg== + dependencies: + "@sentry/hub" "5.25.0" + "@sentry/minimal" "5.25.0" + "@sentry/types" "5.25.0" + "@sentry/utils" "5.25.0" + tslib "^1.9.3" + +"@sentry/hub@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.25.0.tgz#6932535604cafaee1ac7f361b0e7c2ce8f7e7bc3" + integrity sha512-kOlOiJV8wMX50lYpzMlOXBoH7MNG0Ho4RTusdZnXZBaASq5/ljngDJkLr6uylNjceZQP21wzipCQajsJMYB7EQ== + dependencies: + "@sentry/types" "5.25.0" + "@sentry/utils" "5.25.0" + tslib "^1.9.3" + +"@sentry/minimal@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.25.0.tgz#447b5406b45c8c436c461abea4474d6a849ed975" + integrity sha512-9JFKuW7U+1vPO86k3+XRtJyooiVZsVOsFFO4GulBzepi3a0ckNyPgyjUY1saLH+cEHx18hu8fGgajvI8ANUF2g== + dependencies: + "@sentry/hub" "5.25.0" + "@sentry/types" "5.25.0" + tslib "^1.9.3" + +"@sentry/react@^5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/react/-/react-5.25.0.tgz#269f54db9d6f92410bee07117f8d8e03b219e068" + integrity sha512-lZwiFj+BQtmaj+Do9hcRSJcdrTisSGq2521/Xm9qGPbhsRW8uTHMJjkDgMHriYxxqXYOQrY9FisJwvkPpkroow== + dependencies: + "@sentry/browser" "5.25.0" + "@sentry/minimal" "5.25.0" + "@sentry/types" "5.25.0" + "@sentry/utils" "5.25.0" + hoist-non-react-statics "^3.3.2" + tslib "^1.9.3" + +"@sentry/tracing@^5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.25.0.tgz#1cfbcf085a7a3b679f417058d09590298ddaa255" + integrity sha512-KcyHEGFpqSDubHrdWT/vF2hKkjw/ts6NpJ6tPDjBXUNz98BHdAyMKtLOFTCeJFply7/s5fyiAYu44M+M6IG3Bw== + dependencies: + "@sentry/hub" "5.25.0" + "@sentry/minimal" "5.25.0" + "@sentry/types" "5.25.0" + "@sentry/utils" "5.25.0" + tslib "^1.9.3" + +"@sentry/types@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.25.0.tgz#3bcf95e118d655d3f4e8bfa5f0be2e1fe4ea5307" + integrity sha512-8M4PREbcar+15wrtEqcwfcU33SS+2wBSIOd/NrJPXJPTYxi49VypCN1mZBDyWkaK+I+AuQwI3XlRPCfsId3D1A== + +"@sentry/utils@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.25.0.tgz#b132034be66d7381d30879d2a9e09216fed28342" + integrity sha512-Hz5spdIkMSRH5NR1YFOp5qbsY5Ud2lKhEQWlqxcVThMG5YNUc10aYv5ijL19v0YkrC2rqPjCRm7GrVtzOc7bXQ== + dependencies: + "@sentry/types" "5.25.0" + tslib "^1.9.3" + "@sheerun/mutationobserver-shim@^0.3.2": version "0.3.3" resolved "https://registry.yarnpkg.com/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz#5405ee8e444ed212db44e79351f0c70a582aae25" @@ -5351,7 +5426,7 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoist-non-react-statics@^3.1.0: +hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== @@ -10467,6 +10542,11 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" integrity sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q== +tslib@^1.9.3: + version "1.14.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.0.tgz#d624983f3e2c5e0b55307c3dd6c86acd737622c6" + integrity sha512-+Zw5lu0D9tvBMjGP8LpvMb0u2WW2QV3y+D8mO6J+cNzCYIN4sVy43Bf9vl92nqFahutN0I8zHa7cc4vihIshnw== + tsutils@^3.17.1: version "3.17.1" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" -- cgit v1.2.3 From 2ce9d97be3e92fd85f628d3eba3a399bf1470a78 Mon Sep 17 00:00:00 2001 From: Joe Banks Date: Tue, 6 Oct 2020 19:38:07 +0100 Subject: Enable Sentry in production --- src/index.tsx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/index.tsx b/src/index.tsx index 634fd81..0198756 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -3,8 +3,21 @@ import ReactDOM from 'react-dom'; import App from './App'; import * as serviceWorker from './serviceWorker'; +import * as Sentry from "@sentry/react"; +import { Integrations } from "@sentry/tracing"; + import colors from "./colors"; +if (process.env.NODE_ENV === "production") { + Sentry.init({ + dsn: process.env.REACT_APP_SENTRY_DSN, + integrations: [ + new Integrations.BrowserTracing(), + ], + tracesSampleRate: 0.25, + }); +} + console.log("%c Python Discord Forms ", `font-size: 6em; font-family: "Hind", "Arial"; font-weight: 900; background-color: ${colors.blurple}; border-radius: 10px;`) console.log("%cWelcome to Python Discord Forms", `font-size: 3em; font-family: "Hind", "Arial";`) -- cgit v1.2.3 From 896230b7f993d61ee7c6b43fe386c048a6b1fca9 Mon Sep 17 00:00:00 2001 From: Joe Banks Date: Thu, 8 Oct 2020 23:32:02 +0100 Subject: Render the Sentry error boundary --- src/index.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/index.tsx b/src/index.tsx index 0198756..50385ea 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -31,7 +31,15 @@ console.log("%cCome join us on Discord! https://discord.gg/python", `font-size: ReactDOM.render( - + An error has occurred with Python Discord Forms. Please let us know in the Discord server at discord.gg/python

} + showDialog={true} + dialogOptions={{ + title: "You've found a bug in PyDis forms!" + }} + > + +
, document.getElementById('root') ); -- cgit v1.2.3 From eafa1a30dc1e354967ee621d92634557cd910f17 Mon Sep 17 00:00:00 2001 From: Joe Banks Date: Thu, 8 Oct 2020 23:32:57 +0100 Subject: Report release information to Sentry --- src/index.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/index.tsx b/src/index.tsx index 50385ea..783d34f 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -15,6 +15,7 @@ if (process.env.NODE_ENV === "production") { new Integrations.BrowserTracing(), ], tracesSampleRate: 0.25, + release: `forms-frontend@${process.env.REACT_APP_SHA}` }); } -- cgit v1.2.3 From a60a0405cb258bb5092f621cbcdc4cf826f600a6 Mon Sep 17 00:00:00 2001 From: Joe Banks Date: Thu, 8 Oct 2020 23:39:22 +0100 Subject: Create Sentry release on push --- .github/workflows/create_sentry_release.yml | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/create_sentry_release.yml diff --git a/.github/workflows/create_sentry_release.yml b/.github/workflows/create_sentry_release.yml new file mode 100644 index 0000000..6daf552 --- /dev/null +++ b/.github/workflows/create_sentry_release.yml @@ -0,0 +1,34 @@ +name: Create Sentry release + +on: + push: + branches: [ main ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: EgorDm/gha-yarn-node-cache@v1 + + - name: Install dependencies + run: yarn install + + - name: Install dependencies + run: yarn build + env: + REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN }} + REACT_APP_SHA: ${{ github.sha }} + REACT_APP_BRANCH: main + REACT_APP_OAUTH2_CLIENT_ID: ${{ secrets.CLIENT_ID }} + + - name: Create Sentry release + uses: getsentry/action-release@v1.0.0 + env: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + SENTRY_ORG: python-discord + SENTRY_PROJECT: forms-frontend + with: + environment: production + sourcemaps: ./build/static/js/ -- cgit v1.2.3