@eui/tools 6.5.3 → 6.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- 6.5.3
1
+ 6.5.5
package/CHANGELOG.md CHANGED
@@ -1,3 +1,21 @@
1
+ ## 6.5.5 (2023-03-03)
2
+
3
+ ##### Chores
4
+
5
+ * **other:**
6
+ * Make package name uppercase SQ appears to be case-sensitive MWP-9366 [MWP-9366](https://webgate.ec.europa.eu/CITnet/jira/browse/MWP-9366) ([bacaf740](https://webgate.ec.europa.eu/CITnet/stash/scm/csdr/eui-tools.git/commits/bacaf740ed3cbf4a69c36cb7729e01fe9249d532))
7
+
8
+ * * *
9
+ * * *
10
+ ## 6.5.4 (2023-03-03)
11
+
12
+ ##### Chores
13
+
14
+ * **other:**
15
+ * improved csdr-app and stats - EUI-7146 [EUI-7146](https://webgate.ec.europa.eu/CITnet/jira/browse/EUI-7146) ([648274da](https://webgate.ec.europa.eu/CITnet/stash/scm/csdr/eui-tools.git/commits/648274da492b560e6447e65812ef345d5dc00d9d))
16
+
17
+ * * *
18
+ * * *
1
19
  ## 6.5.3 (2023-03-02)
2
20
 
3
21
  ##### Chores
@@ -30,6 +30,7 @@ const scriptIndex = args.findIndex(
30
30
  x === 'generate-translations' ||
31
31
  x === 'test-package' ||
32
32
  x === 'csdr-app' ||
33
+ x === 'csdr-app-stats' ||
33
34
  x === 'csdr-init' ||
34
35
  x === 'csdr-upgrade-deps' ||
35
36
  x === 'csdr-serve-app' ||
@@ -74,6 +75,7 @@ switch (script) {
74
75
  case 'test-package':
75
76
  case 'generate-translations':
76
77
  case 'csdr-app':
78
+ case 'csdr-app-stats':
77
79
  case 'csdr-init':
78
80
  case 'csdr-upgrade-deps':
79
81
  case 'csdr-serve-app':
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ const tools = require('../../scripts/utils/tools');
4
+ const initUtils = require('../../scripts/csdr/init/init-utils');
5
+
6
+ Promise.resolve()
7
+ .then(() => {
8
+ return initUtils.remotes.initRemotesConfig();
9
+ })
10
+ .then(() => {
11
+ return tools.runScript('node ./node_modules/@eui/tools/scripts/app/server.js --prod --stats');
12
+ })
13
+ .catch((e) => {
14
+ console.log(e);
15
+ process.exit(1);
16
+ })
@@ -1,10 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  const tools = require('../../scripts/utils/tools');
4
+ const initUtils = require('../../scripts/csdr/init/init-utils');
4
5
 
5
6
  Promise.resolve()
6
7
  .then(() => {
7
- return tools.runScript('node ./packages/eui-tools/scripts/app/server.js --prod');
8
+ return initUtils.remotes.initRemotesConfig();
9
+ })
10
+ .then(() => {
11
+ return tools.runScript('node ./node_modules/@eui/tools/scripts/app/server.js --prod');
8
12
  })
9
13
  .catch((e) => {
10
14
  console.log(e);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eui/tools",
3
- "version": "6.5.3",
3
+ "version": "6.5.5",
4
4
  "tag": "latest",
5
5
  "license": "EUPL-1.1",
6
6
  "description": "eUI common tools and scripts",
package/sandbox.js CHANGED
@@ -1214,5 +1214,9 @@ const versionUtils = require('./scripts/csdr/version/version-utils');
1214
1214
 
1215
1215
  Promise.resolve()
1216
1216
  .then(() => {
1217
- return initUtils.packages.importScripts();
1217
+ return metadataUtils.stats.getRemoteAllStats();
1218
+ })
1219
+ .then((stats) => {
1220
+ // console.log(stats);
1221
+ console.log(JSON.stringify(stats, null, 2));
1218
1222
  })
@@ -67,9 +67,15 @@
67
67
  </form>
68
68
  </div>
69
69
  <div class="body-flex">
70
- <h5 class="mt-2 mb-3">
71
- Select the remote(s) you want to work with:
72
- </h5>
70
+ <div class="d-flex align-items-center mt-2">
71
+ <h5>Select the remote(s) you want to work with:</h5>
72
+ <div class="ms-auto me-2">
73
+ <button class="btn btn-light" @click="reset()">
74
+ reset
75
+ </button>
76
+ </div>
77
+ </div>
78
+
73
79
  <p class="text-warning fw-bold">
74
80
  select at least one remote to work on
75
81
  </p>
@@ -161,18 +167,28 @@
161
167
  Save configuration
162
168
  </button>
163
169
 
164
- <div class="alert alert-info mt-2">
165
- <p>
166
- Saving the configuration will generate a file called
167
- <span class="fw-bold"
168
- >./csdr/.euirc-csdr-custom.json</span
169
- >
170
- </p>
171
- <p>
172
- Execute after the
173
- <strong>npm run init -- --custom</strong> from your
174
- command line to follow progress of installation
175
- </p>
170
+ <div v-if="saveConfigSubmitted" class="mt-2">
171
+ <div v-if="saveConfigOK" class="alert alert-success">
172
+ Configuration successfully saved
173
+ </div>
174
+ <div v-if="!saveConfigOK" class="alert alert-danger">
175
+ Error saving configuration
176
+ </div>
177
+
178
+ <div class="alert alert-info mt-2">
179
+ <p>
180
+ <span class="fw-bold"
181
+ >./csdr/.euirc-csdr-custom.json</span
182
+ >
183
+ generated
184
+ </p>
185
+ <p>
186
+ Execute after the
187
+ <strong>npm run init -- --custom</strong> from
188
+ your command line to follow progress of
189
+ installation
190
+ </p>
191
+ </div>
176
192
  </div>
177
193
  </div>
178
194
  </div>
@@ -199,6 +215,8 @@
199
215
  deps: [],
200
216
  packages: [],
201
217
  remotesToInstall: [],
218
+ saveConfigSubmitted: false,
219
+ saveConfigOK: false,
202
220
  };
203
221
  },
204
222
  created() {
@@ -215,9 +233,7 @@
215
233
  this.getRemotesToInstall();
216
234
  },
217
235
  async getConfig() {
218
- const res = await fetch(
219
- "http://localhost:3000/api/config"
220
- );
236
+ const res = await fetch("http://localhost:3000/api/config");
221
237
  const finalRes = await res.json();
222
238
  if (finalRes.selectedRemotes) {
223
239
  this.selectedRemotes = finalRes.selectedRemotes;
@@ -243,6 +259,7 @@
243
259
  },
244
260
  remoteSelected(event) {
245
261
  this.getPackages();
262
+ this.saveConfigSubmitted = false;
246
263
  },
247
264
  getRemotesToInstall() {
248
265
  this.remotesToInstall = this.remotes
@@ -251,17 +268,33 @@
251
268
  return !this.selectedRemotes.includes(r);
252
269
  });
253
270
  },
271
+ reset() {
272
+ this.selectedRemotes = [];
273
+ this.packages = [];
274
+ this.deps = [];
275
+ this.remotesToInstall = [];
276
+ this.saveConfigOK = false;
277
+ this.saveConfigSubmitted = false;
278
+ },
254
279
  async saveConfig() {
255
- console.log('Saving configuration...');
280
+ console.log("Saving configuration...");
256
281
  const res = await fetch(
257
282
  "http://localhost:3000/api/config",
258
283
  getRequestBody({
259
284
  selectedRemotes: this.selectedRemotes,
260
285
  deps: this.deps,
261
286
  packages: this.packages,
262
- remotesToInstall: this.remotesToInstall
287
+ remotesToInstall: this.remotesToInstall,
263
288
  })
264
289
  );
290
+
291
+ if (res.status !== 200) {
292
+ this.saveConfigOK = false;
293
+ } else {
294
+ this.saveConfigOK = true;
295
+ }
296
+ this.saveConfigSubmitted = true;
297
+
265
298
  const finalRes = await res.json();
266
299
  },
267
300
  },
@@ -14,6 +14,10 @@
14
14
  flex-direction: column;
15
15
  height: 100vh;
16
16
  }
17
+ .header-flex {
18
+ display: flex;
19
+ flex-direction: column;
20
+ }
17
21
  .body-flex {
18
22
  display: flex;
19
23
  flex-direction: column;
@@ -24,11 +28,27 @@
24
28
 
25
29
  <body>
26
30
  <div id="app" class="container-fluid">
31
+
32
+
33
+
27
34
  <div class="row">
28
35
  <div class="col-4 full-height-flex">
29
- <h3 class="mt-2 mb-4">CSDR remotes stats</h3>
30
- <div class="body-flex">
31
- <h5 class="mt-2 mb-3">Select a remote:</h5>
36
+ <div class="header-flex">
37
+ <h3 class="mt-2 mb-4">CSDR remotes stats</h3>
38
+
39
+ <div class="d-flex">
40
+ <button class="btn me-3" :class="{ 'btn-warning': allRemotesStats }" @click="changeStatsType(true)">
41
+ All remotes stats
42
+ </button>
43
+
44
+ <button class="btn me-3" :class="{ 'btn-warning': !allRemotesStats }" @click="changeStatsType(false)">
45
+ Single remote stats
46
+ </button>
47
+ </div>
48
+ </div>
49
+
50
+ <div class="body-flex" v-if="!allRemotesStats">
51
+ <h5 class="mt-3 mb-3">Select a remote:</h5>
32
52
  <table
33
53
  class="table table-striped"
34
54
  v-show="remotes.length !== 0">
@@ -75,12 +95,42 @@
75
95
  </div>
76
96
 
77
97
  <div class="col-8">
78
- <h5 class="mt-5 mb-3">
79
- Selected remote : {{ selectedRemotes }}
80
- </h5>
81
- <div class="d-none">{{ remoteStats.versions }}</div>
82
- <div style="height: 250px">
83
- <canvas id="versions"></canvas>
98
+ <div v-if="!allRemotesStats">
99
+ <h5 class="mt-5 mb-3">
100
+ Selected remote : {{ selectedRemotes }}
101
+ </h5>
102
+ <div class="d-none">{{ remoteStats.versions }}</div>
103
+ <div style="height: 250px">
104
+ <canvas id="versions"></canvas>
105
+ </div>
106
+ </div>
107
+
108
+ <div v-if="allRemotesStats">
109
+ <h5 class="mt-5 mb-3">
110
+ Remotes stats per env
111
+ </h5>
112
+ <table class="table table-default table-sm">
113
+ <thead>
114
+ <th>Remotes</th>
115
+ <th style="width: 5rem;">Total</th>
116
+ <th style="width: 5rem;">DEV</th>
117
+ <th style="width: 5rem;">TST</th>
118
+ <th style="width: 5rem;">INT</th>
119
+ <th style="width: 5rem;">ACC</th>
120
+ <th style="width: 5rem;">TRN</th>
121
+ <th style="width: 5rem;">PROD</th>
122
+ </thead>
123
+ <tr v-for="remote in remoteAllStats">
124
+ <td>{{ remote.name }}</td>
125
+ <td :class="{ 'table-danger': remote.summary.versionsCount === 0 }">{{ remote.summary.versionsCount }}</td>
126
+ <td>{{ remote.summary.versionsCountEnvs.DEV }}</td>
127
+ <td>{{ remote.summary.versionsCountEnvs.TST }}</td>
128
+ <td>{{ remote.summary.versionsCountEnvs.INT }}</td>
129
+ <td>{{ remote.summary.versionsCountEnvs.ACC }}</td>
130
+ <td>{{ remote.summary.versionsCountEnvs.TRN }}</td>
131
+ <td>{{ remote.summary.versionsCountEnvs.PROD }}</td>
132
+ </tr>
133
+ </table>
84
134
  </div>
85
135
  </div>
86
136
  </div>
@@ -102,15 +152,21 @@
102
152
  el: "#app",
103
153
  data() {
104
154
  return {
155
+ allRemotesStats: true,
105
156
  remotes: [],
106
157
  selectedRemotes: [],
107
158
  remoteStats: {},
159
+ remoteAllStats: {}
108
160
  };
109
161
  },
110
162
  created() {
111
163
  this.getRemotes();
164
+ this.getRemoteAllStats();
112
165
  },
113
166
  methods: {
167
+ changeStatsType(value) {
168
+ this.allRemotesStats = value;
169
+ },
114
170
  async getRemotes() {
115
171
  const res = await fetch(
116
172
  "http://localhost:3000/api/remotes"
@@ -118,8 +174,14 @@
118
174
  const finalRes = await res.json();
119
175
  this.remotes = finalRes;
120
176
  },
177
+ async getRemoteAllStats() {
178
+ const res = await fetch(
179
+ "http://localhost:3000/api/remotes/stats"
180
+ );
181
+ const finalRes = await res.json();
182
+ this.remoteAllStats = finalRes.stats;
183
+ },
121
184
  remoteSelected(event) {
122
- console.log(this.selectedRemotes);
123
185
  this.getRemoteStats();
124
186
  },
125
187
  async getRemoteStats() {
@@ -33,6 +33,19 @@ router.get('/remotes', function (req, res) {
33
33
  })
34
34
  });
35
35
 
36
+ router.get('/remotes/stats', function (req, res) {
37
+ return Promise.resolve()
38
+ .then(() => {
39
+ return metadataUtils.stats.getRemoteAllStats();
40
+ })
41
+ .then((stats) => {
42
+ res.send(stats);
43
+ })
44
+ .catch((e) => {
45
+ console.log(e);
46
+ })
47
+ });
48
+
36
49
  router.post('/remotes/packages', function (req, res) {
37
50
  return Promise.resolve()
38
51
  .then(() => {
@@ -45,7 +58,6 @@ router.post('/remotes/packages', function (req, res) {
45
58
  })
46
59
  });
47
60
 
48
-
49
61
  router.post('/remotes/stats', function (req, res) {
50
62
  return Promise.resolve()
51
63
  .then(() => {
@@ -80,6 +92,9 @@ router.post('/config', function (req, res) {
80
92
  .then(() => {
81
93
  return configUtils.global.generateCustomConfig(req.body);
82
94
  })
95
+ .then(() => {
96
+ res.send({ status: 'OK'})
97
+ })
83
98
  .catch((e) => {
84
99
  console.log(e);
85
100
  })
@@ -36,11 +36,11 @@ module.exports.DEFAULT_CONFIG = {
36
36
  pkgFrontendVersion: this.CONFIG_OPTIONS.pkgFrontendVersion.EUI10,
37
37
  pkgName: 'my-package',
38
38
  pkgScope: '@zzz',
39
- isRouteModule: true,
39
+ isRouteModule: false,
40
40
  isCsdrRepo: true,
41
- isEnvTargetRemote: false,
42
- isVirtualRemote: false,
43
- isFullVirtualRemote: false,
41
+ isEnvTargetRemote: true,
42
+ isVirtualRemote: true,
43
+ isFullVirtualRemote: true,
44
44
  externalRepoName: null,
45
45
  pkgGroupId: 'eu.europa.ec.cc'
46
46
  };
@@ -81,7 +81,7 @@ module.exports.prompt = () => {
81
81
  message: 'Select eUI version target :',
82
82
  choices: [
83
83
  { name: 'v10', value: constants.CONFIG_OPTIONS.pkgFrontendVersion.EUI10 },
84
- { name: 'v13', value: constants.CONFIG_OPTIONS.pkgFrontendVersion.EUI13 },
84
+ // { name: 'v13', value: constants.CONFIG_OPTIONS.pkgFrontendVersion.EUI13 },
85
85
  { name: 'v15', value: constants.CONFIG_OPTIONS.pkgFrontendVersion.EUI15 },
86
86
  ],
87
87
  default: constants.DEFAULT_CONFIG.pkgFrontendType,
@@ -114,49 +114,55 @@ module.exports.prompt = () => {
114
114
  message: 'Enter the package name :',
115
115
  default: constants.DEFAULT_CONFIG.pkgName
116
116
  },
117
+ // {
118
+ // name: 'isRouteModule',
119
+ // type: 'confirm',
120
+ // message: 'Is this a ROUTE package ?',
121
+ // default: constants.DEFAULT_CONFIG.isRouteModule,
122
+ // when: function (answers) {
123
+ // return (
124
+ // answers.pkgType === constants.CONFIG_OPTIONS.pkgType.FRONTEND &&
125
+ // answers.pkgFrontendType !== constants.CONFIG_OPTIONS.pkgFrontendType.REMOTE
126
+ // );
127
+ // }
128
+ // },
129
+ // {
130
+ // name: 'isVirtualRemote',
131
+ // type: 'confirm',
132
+ // message: 'Is this a virtual remote ?',
133
+ // default: constants.DEFAULT_CONFIG.isVirtualRemote,
134
+ // when: function (answers) {
135
+ // return (
136
+ // answers.pkgType === constants.CONFIG_OPTIONS.pkgType.FRONTEND &&
137
+ // answers.pkgFrontendType === constants.CONFIG_OPTIONS.pkgFrontendType.REMOTE &&
138
+ // answers.pkgFrontendVersion === constants.CONFIG_OPTIONS.pkgFrontendVersion.EUI10
139
+ // );
140
+ // }
141
+ // },
142
+ // {
143
+ // name: 'isFullVirtualRemote',
144
+ // type: 'confirm',
145
+ // message: 'Is this a virtual remote with full skeleton sources ?',
146
+ // default: constants.DEFAULT_CONFIG.isFullVirtualRemote,
147
+ // when: function (answers) {
148
+ // return (
149
+ // answers.pkgType === constants.CONFIG_OPTIONS.pkgType.FRONTEND &&
150
+ // answers.pkgFrontendType === constants.CONFIG_OPTIONS.pkgFrontendType.REMOTE
151
+ // );
152
+ // }
153
+ // },
117
154
  {
118
- name: 'isRouteModule',
119
- type: 'confirm',
120
- message: 'Is this a ROUTE package ?',
121
- default: constants.DEFAULT_CONFIG.isRouteModule,
122
- when: function (answers) {
123
- return (
124
- answers.pkgType === constants.CONFIG_OPTIONS.pkgType.FRONTEND &&
125
- answers.pkgFrontendType !== constants.CONFIG_OPTIONS.pkgFrontendType.REMOTE
126
- );
127
- }
128
- },
129
- {
130
- name: 'isVirtualRemote',
131
- type: 'confirm',
132
- message: 'Is this a virtual remote ?',
133
- default: constants.DEFAULT_CONFIG.isVirtualRemote,
134
- when: function (answers) {
135
- return (
136
- answers.pkgType === constants.CONFIG_OPTIONS.pkgType.FRONTEND &&
137
- answers.pkgFrontendType === constants.CONFIG_OPTIONS.pkgFrontendType.REMOTE &&
138
- answers.pkgFrontendVersion === constants.CONFIG_OPTIONS.pkgFrontendVersion.EUI10
139
- );
140
- }
141
- },
142
- {
143
- name: 'isFullVirtualRemote',
155
+ name: 'isCsdrRepo',
144
156
  type: 'confirm',
145
- message: 'Is this a virtual remote with full skeleton sources ?',
146
- default: constants.DEFAULT_CONFIG.isFullVirtualRemote,
157
+ message: 'Is the repository within CSDR git project ?',
158
+ default: constants.DEFAULT_CONFIG.isCsdrRepo,
147
159
  when: function (answers) {
148
160
  return (
149
161
  answers.pkgType === constants.CONFIG_OPTIONS.pkgType.FRONTEND &&
150
- answers.pkgFrontendType === constants.CONFIG_OPTIONS.pkgFrontendType.REMOTE
162
+ answers.pkgFrontendType === constants.CONFIG_OPTIONS.pkgFrontendType.DEFAULT
151
163
  );
152
164
  }
153
165
  },
154
- {
155
- name: 'isCsdrRepo',
156
- type: 'confirm',
157
- message: 'Is the repository within CSDR git project ?',
158
- default: constants.DEFAULT_CONFIG.isCsdrRepo
159
- },
160
166
  {
161
167
  name: 'externalRepoName',
162
168
  type: 'input',
@@ -13,6 +13,22 @@ const { skipReset } = tools.getArgs();
13
13
 
14
14
 
15
15
 
16
+ module.exports.initRemotesConfig = () => {
17
+ return Promise.resolve()
18
+ .then(() => {
19
+ const pkg = configUtils.packages.getPackageByNpmPkg('@csdr/remotes-config', true);
20
+
21
+ if (!tools.isDirExists(pkg.paths.root)) {
22
+ return cloneRemotesConfig();
23
+ }
24
+ })
25
+
26
+ .catch((e) => {
27
+ throw e;
28
+ })
29
+ }
30
+
31
+
16
32
  const cloneRemotesConfig = module.exports.cloneRemotesConfig = () => {
17
33
 
18
34
  tools.logTitle('Cloning global remotes config');
@@ -27,7 +27,15 @@ module.exports.getMetadata = (pkg) => {
27
27
  })
28
28
  }
29
29
 
30
+ module.exports.getMetadataSync = (pkg) => {
31
+ const DEVOPS_METADATA_PATH = configUtils.global.getConfigOptions().DEVOPS_METADATA_PATH;
32
+
33
+ if (!DEVOPS_METADATA_PATH) {
34
+ throw new Error(`Devops metadata folder ${DEVOPS_METADATA_PATH} NOT FOUND`) ;
35
+ }
30
36
 
37
+ return tools.getJsonFileContent(path.join(DEVOPS_METADATA_PATH, pkg.devopsVersionsMetadataFile));
38
+ }
31
39
 
32
40
  module.exports.storeMetadata = (pkg, pkgVersion, pkgCompositeDeps, duration, envTarget) => {
33
41
  return Promise.resolve()
@@ -455,6 +455,52 @@ module.exports.getCommitsByUsers = (packages, range = 'ALL') => {
455
455
  }
456
456
 
457
457
 
458
+ module.exports.getRemoteAllStats = () => {
459
+
460
+ let stats = [];
461
+
462
+ return Promise.resolve()
463
+ .then(() => {
464
+ if (!dryRun && !skipClone && !tools.isDirExists(path.join(process.cwd(), 'packages', 'devops-metadata'))) {
465
+ return metadataUtils.common.cloneMetadataRepo();
466
+ }
467
+ })
468
+ .then(() => {
469
+ let remotesArray = configUtils.remotes.getCsdrRemotesArray('my-workplace', '15.x');
470
+ remotesArray = tools.sortArray(remotesArray, 'name');
471
+
472
+ remotesArray.forEach((r) => {
473
+ const remote = configUtils.remotes.getRemote(r.name);
474
+ const versionsMatadata = metadataUtils.packageVersions.getMetadataSync(remote);
475
+ let versionsCount = 0, versionsCountEnvs = { "DEV": 0, "TST": 0, "INT": 0, "ACC": 0, "TRN": 0, "PROD": 0}, lastVersion = {};
476
+ if (versionsMatadata.versions) {
477
+ versionsCount = versionsMatadata.versions.length;
478
+ versionsCountEnvs['DEV'] = versionsMatadata.versions.filter(v => v.envTarget === 'DEV').length;
479
+ lastVersion = versionsMatadata.versions.slice(-1).pop();
480
+ }
481
+ const remoteStats = {
482
+ name: r.name,
483
+ // versions: versionsMatadata.versions,
484
+ lastVersion,
485
+ summary: {
486
+ versionsCount,
487
+ versionsCountEnvs
488
+ }
489
+ }
490
+ stats.push(remoteStats);
491
+ })
492
+ })
493
+ .then(() => {
494
+ return {
495
+ stats
496
+ }
497
+ })
498
+ .catch((e) => {
499
+ throw e;
500
+ })
501
+ }
502
+
503
+
458
504
  module.exports.getRemoteStats = (remoteName) => {
459
505
  const remote = configUtils.remotes.getRemote(remoteName);
460
506
 
@@ -476,3 +522,4 @@ module.exports.getRemoteStats = (remoteName) => {
476
522
  throw e;
477
523
  })
478
524
  }
525
+
@@ -83,7 +83,7 @@ const generateSonarPropertiesUI = (pkgName, pkgVersion, outputPath) => {
83
83
  })
84
84
  .then(() => {
85
85
  tools.logInfo('Replace project name token...');
86
- return tools.replaceInFile(outputFilePath, '@project.name@', pkgName);
86
+ return tools.replaceInFile(outputFilePath, '@project.name@', pkgName.toUpperCase());
87
87
  })
88
88
  .then(() => {
89
89
  tools.logInfo('Replace project version token...');
@@ -136,7 +136,7 @@ const generateSonarPropertiesBackend = (groupId, artifactId, version, modulesLis
136
136
  })
137
137
  .then(() => {
138
138
  tools.logInfo('Replace project name token...');
139
- return tools.replaceInFile(outputFilePath, '@project.name@', artifactId);
139
+ return tools.replaceInFile(outputFilePath, '@project.name@', artifactId.toUpperCase());
140
140
  })
141
141
  .then(() => {
142
142
  tools.logInfo('Replace project version token...');