@eui/tools 6.5.3 → 6.5.4
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.
- package/.version.properties +1 -1
- package/CHANGELOG.md +9 -0
- package/bin/eui-scripts.js +2 -0
- package/bin/scripts/csdr-app-stats.js +16 -0
- package/bin/scripts/csdr-app.js +5 -1
- package/package.json +1 -1
- package/sandbox.js +5 -1
- package/scripts/app/public/index.html +53 -20
- package/scripts/app/public/stats.html +72 -10
- package/scripts/app/routes/index.js +16 -1
- package/scripts/csdr/cli/constants.js +4 -4
- package/scripts/csdr/cli/package-prompt.js +42 -36
- package/scripts/csdr/init/remotes.js +16 -0
- package/scripts/csdr/metadata/package-versions.js +8 -0
- package/scripts/csdr/metadata/stats.js +47 -0
package/.version.properties
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
6.5.
|
|
1
|
+
6.5.4
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
## 6.5.4 (2023-03-03)
|
|
2
|
+
|
|
3
|
+
##### Chores
|
|
4
|
+
|
|
5
|
+
* **other:**
|
|
6
|
+
* 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))
|
|
7
|
+
|
|
8
|
+
* * *
|
|
9
|
+
* * *
|
|
1
10
|
## 6.5.3 (2023-03-02)
|
|
2
11
|
|
|
3
12
|
##### Chores
|
package/bin/eui-scripts.js
CHANGED
|
@@ -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
|
+
})
|
package/bin/scripts/csdr-app.js
CHANGED
|
@@ -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
|
|
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
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
|
|
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
|
-
<
|
|
71
|
-
Select the remote(s) you want to work with
|
|
72
|
-
|
|
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="
|
|
165
|
-
<
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
</
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
<
|
|
174
|
-
|
|
175
|
-
|
|
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(
|
|
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
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
<
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
<
|
|
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:
|
|
39
|
+
isRouteModule: false,
|
|
40
40
|
isCsdrRepo: true,
|
|
41
|
-
isEnvTargetRemote:
|
|
42
|
-
isVirtualRemote:
|
|
43
|
-
isFullVirtualRemote:
|
|
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: '
|
|
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
|
|
146
|
-
default: constants.DEFAULT_CONFIG.
|
|
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.
|
|
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
|
+
|