|
10 | 10 |
|
11 | 11 | const path = require('path');
|
12 | 12 |
|
13 |
| -const plugins = []; |
14 |
| -// Must be injected by CI environment |
15 |
| -if (process.env.SENTRY_UPLOAD_TOKEN) { |
16 |
| - /**@type {import('webpack').WebpackPluginFunction}*/ |
17 |
| - const { sentryWebpackPlugin } = require('@sentry/webpack-plugin'); |
18 |
| - plugins.push(sentryWebpackPlugin({ |
19 |
| - org: 'sonar-x0', |
20 |
| - project: 'sonarqube-vscode', |
21 |
| - authToken: process.env.SENTRY_UPLOAD_TOKEN |
22 |
| - })); |
23 |
| -} |
24 |
| - |
25 | 13 | /**@type {import('webpack').Configuration}*/
|
26 | 14 | const config = {
|
27 | 15 | // vscode extensions run in a Node.js-context -> https://webpack.js.org/configuration/node/
|
@@ -59,6 +47,35 @@ const config = {
|
59 | 47 | }
|
60 | 48 | ]
|
61 | 49 | },
|
62 |
| - plugins |
| 50 | + plugins: [] |
63 | 51 | };
|
64 |
| -module.exports = config; |
| 52 | + |
| 53 | +module.exports = (env, argv) => { |
| 54 | + |
| 55 | + if ( |
| 56 | + // Only for production builds (e.g. CI) |
| 57 | + argv.mode === 'production' && |
| 58 | + // Injected by Vault |
| 59 | + process.env.SENTRY_UPLOAD_TOKEN && |
| 60 | + // Injected by CI |
| 61 | + process.env.BUILD_NUMBER |
| 62 | + ) { |
| 63 | + console.log('Enabling Sentry upload plugin'); |
| 64 | + /**@type {import('webpack').WebpackPluginFunction}*/ |
| 65 | + const { sentryWebpackPlugin } = require('@sentry/webpack-plugin'); |
| 66 | + const { version } = require('./package.json'); |
| 67 | + |
| 68 | + config.plugins.push(sentryWebpackPlugin({ |
| 69 | + org: 'sonar-x0', |
| 70 | + project: 'sonarqube-vscode', |
| 71 | + authToken: process.env.SENTRY_UPLOAD_TOKEN, |
| 72 | + release: { |
| 73 | + name: version |
| 74 | + } |
| 75 | + })); |
| 76 | + } else { |
| 77 | + console.log('Not enabling Sentry upload plugin'); |
| 78 | + } |
| 79 | + |
| 80 | + return config; |
| 81 | +} |
0 commit comments