From a9dd132d6b458a53b8cd1909e816dafe6380bfe5 Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Mon, 8 Jul 2024 11:42:13 +0200 Subject: [PATCH 1/2] add sentry to ci Signed-off-by: Mirko Mollik --- .github/workflows/cd.yml | 11 ++++++- apps/holder-app/project.json | 32 +++++++++++++++++-- .../src/environments/environment.ts | 2 ++ nx.json | 2 +- package.json | 5 ++- pnpm-lock.yaml | 24 +++++++------- 6 files changed, 58 insertions(+), 18 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 9ba3ff80..12835e1d 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -41,9 +41,18 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Create Sentry release + uses: getsentry/action-release@v1 + env: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + SENTRY_ORG: ${{ secrets.SENTRY_ORG }} + SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} + with: + environment: production + # build the docker image for keycloak - name: Build Keycloak Docker Image run: cd deploys/keycloak && docker-compose build keycloak && docker-compose push keycloak - name: Build and push images - run: INPUT_GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} INPUT_PUSH=true pnpm exec nx affected -t container sentry + run: INPUT_GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} INPUT_PUSH=true pnpm exec nx affected -t container sentry-deploy diff --git a/apps/holder-app/project.json b/apps/holder-app/project.json index cf0a8a35..de33c448 100644 --- a/apps/holder-app/project.json +++ b/apps/holder-app/project.json @@ -102,9 +102,35 @@ } } }, - "sentry": { - "dependsOn": ["build"], - "command": "sentry-cli sourcemaps inject --org credhub --project pwa ./dist/apps/holder-app/browser && sentry-cli sourcemaps upload --org credhub --project pwa ./dist/apps/holder-app/browser" + "sentry-release": { + "executor": "nx:run-commands", + "options": { + "commands": [ + "pnpm run sentry-cli releases new $(npm --silent run sentry-cli releases propose-version) -o credhub -p pwa", + "pnpm run sentry-cli releases set-commits --auto $(npm --silent run sentry-cli releases propose-version) -o credhub -p pwa", + "pnpm run sentry-cli releases files $(npm --silent run sentry-cli releases propose-version) upload-sourcemaps dist/apps/holder-app/browser -o credhub -p pwa", + "pnpm run sentry-cli releases finalize $(npm --silent run sentry-cli releases propose-version) -o credhub -p pwa" + ], + "parallel": false + } + }, + "add-sentry-release": { + "executor": "nx:run-commands", + "options": { + "commands": [ + "sed -i '' -E \"s/release: 'version',/release: '$(npm --silent run sentry-cli releases propose-version)',/g\" apps/holder-app/src/environments/environment.ts" + ], + "parallel": false + } + }, + "sentry-deploy": { + "executor": "nx:run-commands", + "options": { + "commands": [ + "pnpm run sentry-cli releases deploys $(npm --silent run sentry-cli releases propose-version) new -e production -o credhub -p pwa" + ] + }, + "dependsOn": ["sentry-release"] } } } diff --git a/apps/holder-app/src/environments/environment.ts b/apps/holder-app/src/environments/environment.ts index 6043203e..fca5df84 100644 --- a/apps/holder-app/src/environments/environment.ts +++ b/apps/holder-app/src/environments/environment.ts @@ -21,4 +21,6 @@ export const environment = { sentryDsn: 'https://6350a5821ef72c29668bd6ca1697b108@o4507537672830976.ingest.de.sentry.io/4507537674993744', + + release: '0f6b02092fb452d2e2afb1408b36ebcce5e8d3b5', }; diff --git a/nx.json b/nx.json index 2f095e90..8eee1f22 100644 --- a/nx.json +++ b/nx.json @@ -68,7 +68,7 @@ "targetDefaults": { "@angular-devkit/build-angular:application": { "cache": true, - "dependsOn": ["^build"], + "dependsOn": ["^build", "add-sentry-release"], "inputs": ["production", "^production"] }, "@angular-devkit/build-angular:browser": { diff --git a/package.json b/package.json index 87e511e9..589d5cd6 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,9 @@ "url": "https://www.apache.org/licenses/LICENSE-2.0.html" } ], + "scripts": { + "sentry-cli": "sentry-cli" + }, "description": "A monorepo including multiple apps for SSI", "author": "Mirko Mollik ", "engines": { @@ -41,6 +44,7 @@ "@nx/workspace": "19.3.2", "@playwright/test": "^1.44.0", "@schematics/angular": "18.0.1", + "@sentry/cli": "^2.32.1", "@simplewebauthn/types": "^10.0.0", "@swc-node/register": "1.9.2", "@swc/core": "1.5.7", @@ -102,7 +106,6 @@ "@sd-jwt/sd-jwt-vc": "^0.7.1", "@sd-jwt/types": "^0.7.1", "@sentry/angular": "^8.13.0", - "@sentry/cli": "^2.32.1", "@simplewebauthn/browser": "^10.0.0", "@simplewebauthn/server": "^10.0.0", "@sphereon/did-auth-siop": "^0.6.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 77ff02df..4b4e27e7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,9 +91,6 @@ dependencies: '@sentry/angular': specifier: ^8.13.0 version: 8.13.0(@angular/common@18.0.0)(@angular/core@18.0.0)(@angular/router@18.0.0)(rxjs@7.8.1) - '@sentry/cli': - specifier: ^2.32.1 - version: 2.32.1 '@simplewebauthn/browser': specifier: ^10.0.0 version: 10.0.0 @@ -273,6 +270,9 @@ devDependencies: '@schematics/angular': specifier: 18.0.1 version: 18.0.1 + '@sentry/cli': + specifier: ^2.32.1 + version: 2.32.1 '@simplewebauthn/types': specifier: ^10.0.0 version: 10.0.0 @@ -7291,7 +7291,7 @@ packages: engines: {node: '>=10'} os: [darwin] requiresBuild: true - dev: false + dev: true optional: true /@sentry/cli-linux-arm64@2.32.1: @@ -7300,7 +7300,7 @@ packages: cpu: [arm64] os: [linux, freebsd] requiresBuild: true - dev: false + dev: true optional: true /@sentry/cli-linux-arm@2.32.1: @@ -7309,7 +7309,7 @@ packages: cpu: [arm] os: [linux, freebsd] requiresBuild: true - dev: false + dev: true optional: true /@sentry/cli-linux-i686@2.32.1: @@ -7318,7 +7318,7 @@ packages: cpu: [x86, ia32] os: [linux, freebsd] requiresBuild: true - dev: false + dev: true optional: true /@sentry/cli-linux-x64@2.32.1: @@ -7327,7 +7327,7 @@ packages: cpu: [x64] os: [linux, freebsd] requiresBuild: true - dev: false + dev: true optional: true /@sentry/cli-win32-i686@2.32.1: @@ -7336,7 +7336,7 @@ packages: cpu: [x86, ia32] os: [win32] requiresBuild: true - dev: false + dev: true optional: true /@sentry/cli-win32-x64@2.32.1: @@ -7345,7 +7345,7 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: false + dev: true optional: true /@sentry/cli@2.32.1: @@ -7370,7 +7370,7 @@ packages: transitivePeerDependencies: - encoding - supports-color - dev: false + dev: true /@sentry/core@8.13.0: resolution: {integrity: sha512-N9Qg4ZGxZWp8eb2eUUHVVKgjBLtFIjS805nG92s6yJmkvOpKm6mLtcUaT/iDf3Hta6nG+xRkhbE3r+Z4cbXG8w==} @@ -16257,7 +16257,7 @@ packages: /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} - dev: false + dev: true /promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} From 91ae5cd9452c99ef0d0f6701ad38df3ac8b8ffaa Mon Sep 17 00:00:00 2001 From: Mirko Mollik Date: Mon, 8 Jul 2024 11:49:29 +0200 Subject: [PATCH 2/2] only add sentry in cd Signed-off-by: Mirko Mollik --- .github/workflows/cd.yml | 3 ++- nx.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 12835e1d..c221b017 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -54,5 +54,6 @@ jobs: - name: Build Keycloak Docker Image run: cd deploys/keycloak && docker-compose build keycloak && docker-compose push keycloak + # add the release, build the container and release it with the information for sentry - name: Build and push images - run: INPUT_GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} INPUT_PUSH=true pnpm exec nx affected -t container sentry-deploy + run: INPUT_GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} INPUT_PUSH=true pnpm exec nx affected -t sentry-release container sentry-deploy diff --git a/nx.json b/nx.json index 8eee1f22..2f095e90 100644 --- a/nx.json +++ b/nx.json @@ -68,7 +68,7 @@ "targetDefaults": { "@angular-devkit/build-angular:application": { "cache": true, - "dependsOn": ["^build", "add-sentry-release"], + "dependsOn": ["^build"], "inputs": ["production", "^production"] }, "@angular-devkit/build-angular:browser": {