eitri-cli 1.7.0-beta.4 → 1.7.0-beta.6
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/config/dev.js +11 -0
- package/config/k8s-eitri.js +11 -0
- package/config/loc-eitri.js +11 -0
- package/config/prod-eitri.js +11 -0
- package/index.js +11 -0
- package/package.json +1 -1
- package/src/cmd/eitriLibs.js +38 -0
- package/src/cmd/push-version.js +3 -11
- package/src/cmd/start.js +3 -10
- package/src/modules/vegvisir/VegvisirService.js +1 -1
- package/src/service/LibsService.js +154 -0
- package/src/service/PrerequisitesValidator.js +84 -0
- package/src/service/Workspace.js +5 -2
- package/test/_fixtures/woodcoffee/miniapp.conf.js +2 -2
- package/test/e2e/cli.test.js +37 -0
package/config/dev.js
CHANGED
|
@@ -100,6 +100,17 @@ const config = {
|
|
|
100
100
|
eitriManager: {
|
|
101
101
|
url: `https://${HOST}/eitri-manager-api`,
|
|
102
102
|
},
|
|
103
|
+
cdn: {
|
|
104
|
+
library: {
|
|
105
|
+
url: "https://cdn.83io.com.br/library",
|
|
106
|
+
bifrost: {
|
|
107
|
+
versions: "/eitri-bifrost/versions/index.json"
|
|
108
|
+
},
|
|
109
|
+
luminusUi: {
|
|
110
|
+
versions: "/luminus-ui/versions/index.json"
|
|
111
|
+
},
|
|
112
|
+
}
|
|
113
|
+
}
|
|
103
114
|
};
|
|
104
115
|
|
|
105
116
|
module.exports = config;
|
package/config/k8s-eitri.js
CHANGED
|
@@ -84,6 +84,17 @@ const config = {
|
|
|
84
84
|
},
|
|
85
85
|
managerFront: {
|
|
86
86
|
url: `https://admin.k8s.eitri.calindra.com.br`
|
|
87
|
+
},
|
|
88
|
+
cdn: {
|
|
89
|
+
library: {
|
|
90
|
+
url: "https://cdn.83io.com.br/library",
|
|
91
|
+
bifrost: {
|
|
92
|
+
versions: "/eitri-bifrost/versions/index.json"
|
|
93
|
+
},
|
|
94
|
+
luminusUi: {
|
|
95
|
+
versions: "/luminus-ui/versions/index.json"
|
|
96
|
+
},
|
|
97
|
+
}
|
|
87
98
|
}
|
|
88
99
|
}
|
|
89
100
|
|
package/config/loc-eitri.js
CHANGED
|
@@ -102,6 +102,17 @@ const config = {
|
|
|
102
102
|
my: "/workspace/my",
|
|
103
103
|
check: "/workspace/check",
|
|
104
104
|
},
|
|
105
|
+
cdn: {
|
|
106
|
+
library: {
|
|
107
|
+
url: "https://cdn.83io.com.br/library",
|
|
108
|
+
bifrost: {
|
|
109
|
+
versions: "/eitri-bifrost/versions/index.json"
|
|
110
|
+
},
|
|
111
|
+
luminusUi: {
|
|
112
|
+
versions: "/luminus-ui/versions/index.json"
|
|
113
|
+
},
|
|
114
|
+
}
|
|
115
|
+
}
|
|
105
116
|
};
|
|
106
117
|
|
|
107
118
|
module.exports = config;
|
package/config/prod-eitri.js
CHANGED
|
@@ -103,6 +103,17 @@ const config = {
|
|
|
103
103
|
my: "/workspace/my",
|
|
104
104
|
check: "/workspace/check",
|
|
105
105
|
},
|
|
106
|
+
cdn: {
|
|
107
|
+
library: {
|
|
108
|
+
url: "https://cdn.83io.com.br/library",
|
|
109
|
+
bifrost: {
|
|
110
|
+
versions: "/eitri-bifrost/versions/index.json"
|
|
111
|
+
},
|
|
112
|
+
luminusUi: {
|
|
113
|
+
versions: "/luminus-ui/versions/index.json"
|
|
114
|
+
},
|
|
115
|
+
}
|
|
116
|
+
}
|
|
106
117
|
};
|
|
107
118
|
|
|
108
119
|
module.exports = config;
|
package/index.js
CHANGED
|
@@ -114,6 +114,17 @@ const run = async () => {
|
|
|
114
114
|
);
|
|
115
115
|
});
|
|
116
116
|
|
|
117
|
+
program
|
|
118
|
+
.command("libs")
|
|
119
|
+
.description("Bibliotecas do Eitri")
|
|
120
|
+
.option(
|
|
121
|
+
"-l, --list",
|
|
122
|
+
"Lista as bibliotecas do Eitri com suas versões"
|
|
123
|
+
)
|
|
124
|
+
.action((cmdObj) => {
|
|
125
|
+
require("./src/cmd/eitriLibs")(cmdObj);
|
|
126
|
+
});
|
|
127
|
+
|
|
117
128
|
program.addCommand(VegvisirCommand());
|
|
118
129
|
|
|
119
130
|
if (
|
package/package.json
CHANGED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
const {workspace} = require('../service/Workspace')
|
|
2
|
+
const TrackingService = require('../service/TrackingService')
|
|
3
|
+
const TrackingEitriAnalytics = require('../service/TrackingEitriAnalytics')
|
|
4
|
+
const LibsService = require('../service/LibsService')
|
|
5
|
+
|
|
6
|
+
const blindGuardian = workspace.blindGuardian
|
|
7
|
+
const trackingService = new TrackingService(blindGuardian)
|
|
8
|
+
|
|
9
|
+
module.exports = async function eitriLibs(cmdObj) {
|
|
10
|
+
if(cmdObj.list){
|
|
11
|
+
await listLibs()
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async function listLibs() {
|
|
16
|
+
try {
|
|
17
|
+
const libsVersions = await LibsService.simultaneousRequestAndHandleData()
|
|
18
|
+
console.log("libsVersions", libsVersions)
|
|
19
|
+
TrackingEitriAnalytics.sendEvent({
|
|
20
|
+
eventName: "eitriLibs.listLibs",
|
|
21
|
+
userId: workspace?.userEmail,
|
|
22
|
+
data: libsVersions
|
|
23
|
+
})
|
|
24
|
+
process.exit(0)
|
|
25
|
+
} catch (e) {
|
|
26
|
+
TrackingEitriAnalytics.sendEvent({
|
|
27
|
+
eventName: "clean.error",
|
|
28
|
+
userId: workspace?.userEmail,
|
|
29
|
+
data: {
|
|
30
|
+
errorMessage: e?.message || ""
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
await trackingService.sendError(e)
|
|
36
|
+
process.exit(1)
|
|
37
|
+
}
|
|
38
|
+
}
|
package/src/cmd/push-version.js
CHANGED
|
@@ -8,27 +8,19 @@ const config = require('../service/ConfigService')
|
|
|
8
8
|
const TargetService = require('../service/TargetService')
|
|
9
9
|
const inquirer = require('inquirer')
|
|
10
10
|
const TrackingEitriAnalytics = require('../service/TrackingEitriAnalytics')
|
|
11
|
-
const UserLocalCredential = require('../util/UserLocalCredential')
|
|
12
11
|
const VegvisirService = require('../modules/vegvisir/VegvisirService')
|
|
13
12
|
const {randomUUID} = require('crypto')
|
|
14
13
|
const childProcess = require('child_process')
|
|
15
14
|
const blindGuardian = workspace.blindGuardian
|
|
16
|
-
const trackingService = new TrackingService(blindGuardian)
|
|
17
15
|
const targetService = new TargetService(workspace)
|
|
18
16
|
const vegvisirService = new VegvisirService()
|
|
19
|
-
const standardVersion = require('standard-version')
|
|
20
17
|
const releaseService = require('../service/ReleaseService')
|
|
21
18
|
const {isGitRepo} = require('../util/GenericUtils')
|
|
22
|
-
const
|
|
19
|
+
const PrerequisitesValidator = require('../service/PrerequisitesValidator')
|
|
20
|
+
const prerequisitesValidator = new PrerequisitesValidator(workspace)
|
|
23
21
|
|
|
24
22
|
module.exports = async function pushVersion(cmdObj) {
|
|
25
|
-
|
|
26
|
-
UserLocalCredential.checkForCredentials()
|
|
27
|
-
} catch (error) {
|
|
28
|
-
const errorMessage = cmdObj?.verbose ? error : error?.message
|
|
29
|
-
console.error("\n", errorMessage, "\n")
|
|
30
|
-
return
|
|
31
|
-
}
|
|
23
|
+
prerequisitesValidator.checkCredentials()
|
|
32
24
|
|
|
33
25
|
const {slug: miniConfSlug} = workspace.getMiniConf()
|
|
34
26
|
await vegvisirService.isCurrentWorkspaceOwnedByUser(miniConfSlug)
|
package/src/cmd/start.js
CHANGED
|
@@ -9,13 +9,14 @@ const config = require('../service/ConfigService')
|
|
|
9
9
|
const handleStartServer = require('../service/StarterService')
|
|
10
10
|
const TrackingEitriAnalytics = require('../service/TrackingEitriAnalytics')
|
|
11
11
|
const VegvisirService = require('../modules/vegvisir/VegvisirService')
|
|
12
|
-
const
|
|
12
|
+
const PrerequisitesValidator = require('../service/PrerequisitesValidator')
|
|
13
13
|
|
|
14
14
|
const blindGuardian = workspace.blindGuardian
|
|
15
15
|
const hashFolder = workspace.hashFolder
|
|
16
16
|
const trackingService = new TrackingService(blindGuardian, { ignoreCredentialError: true })
|
|
17
17
|
const watcher = new Watcher(workspace, hashFolder, trackingService)
|
|
18
18
|
const vegvisirService = new VegvisirService(workspace)
|
|
19
|
+
const prerequisitesValidator = new PrerequisitesValidator(workspace)
|
|
19
20
|
const debug = require('debug')('eitri:start')
|
|
20
21
|
|
|
21
22
|
module.exports = async function start(args) {
|
|
@@ -27,15 +28,7 @@ module.exports = async function start(args) {
|
|
|
27
28
|
const separator = '======================================================================='
|
|
28
29
|
let displayFriendlyErrorAtEnd = ""
|
|
29
30
|
|
|
30
|
-
|
|
31
|
-
UserLocalCredential.checkForCredentials()
|
|
32
|
-
debug("Successo na checagem de credenciais")
|
|
33
|
-
} catch (error) {
|
|
34
|
-
debug("ERRO na checagem de credenciais", {message: error?.message, error})
|
|
35
|
-
const errorMessage = args?.verbose ? error : error?.message
|
|
36
|
-
console.error("\n", errorMessage, "\n")
|
|
37
|
-
return
|
|
38
|
-
}
|
|
31
|
+
await prerequisitesValidator.checkAll()
|
|
39
32
|
|
|
40
33
|
try {
|
|
41
34
|
if (!args.force) {
|
|
@@ -125,7 +125,7 @@ module.exports = class VegvisirService {
|
|
|
125
125
|
);
|
|
126
126
|
const fileContent = await readFile(workspaceGlobalPath, "utf8");
|
|
127
127
|
const workspace = JSON.parse(fileContent);
|
|
128
|
-
console.log(
|
|
128
|
+
console.log(`Construindo para o Workspace [${workspace.id}]`)
|
|
129
129
|
workspace.id = validateUUID(this.workspaceId) ? this.workspaceId : workspace.id;
|
|
130
130
|
return workspace;
|
|
131
131
|
} catch (error) {
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
const axios = require('axios')
|
|
2
|
+
const configService = require('./ConfigService')
|
|
3
|
+
const CDN_83io_LIBRARY = configService.get('cdn')?.library
|
|
4
|
+
const TrackingEitriAnalytics = require('./TrackingEitriAnalytics')
|
|
5
|
+
|
|
6
|
+
class LibsService {
|
|
7
|
+
|
|
8
|
+
static async validateLibsVersions({libs = [], eitriAppConf = {}}) {
|
|
9
|
+
const {luminusUiVersion, bifrostVersion} = this.getEitriConfLibsVersions(libs)
|
|
10
|
+
if (!luminusUiVersion) {
|
|
11
|
+
throw new Error("Nenhuma versão do [luminus-ui/eitri-app-components] encontrada em seu eitri-app.conf");
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
if (!bifrostVersion) {
|
|
15
|
+
throw new Error("Nenhuma versão do [bifrost/eitri-app-client] encontrada em seu eitri-app.conf");
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const {luminusUiVersions, bifrostVersions} = await this.simultaneousRequestAndHandleData();
|
|
19
|
+
const allBifrostVersions = bifrostVersions?.versions?.concat(bifrostVersions?.betaVersions, bifrostVersions?.alphaVersions);
|
|
20
|
+
|
|
21
|
+
const existsLuminus = luminusUiVersions?.versions?.some(version => version === luminusUiVersion);
|
|
22
|
+
if (!existsLuminus) {
|
|
23
|
+
this.throwNonExistentLibError({
|
|
24
|
+
libName: "luminus-ui/eitri-app-components",
|
|
25
|
+
eitriConfLibVersion: luminusUiVersion,
|
|
26
|
+
availableVersions: luminusUiVersions,
|
|
27
|
+
eitriAppConf,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const existsBifrost = allBifrostVersions.some(version => version === bifrostVersion);
|
|
32
|
+
if (!existsBifrost) {
|
|
33
|
+
this.throwNonExistentLibError({
|
|
34
|
+
libName: "bifrost/eitri-app-client",
|
|
35
|
+
eitriConfLibVersion: bifrostVersion,
|
|
36
|
+
availableVersions: allBifrostVersions,
|
|
37
|
+
eitriAppConf,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static getEitriConfLibsVersions(libs = []) {
|
|
44
|
+
const luminusUiNames = ["eitri-app-components", "eitri-luminus"];
|
|
45
|
+
const biFrostNames = ["eitri-app-client", "eitri-bifrost"];
|
|
46
|
+
const bifrostVersion = libs.find(lib => biFrostNames?.includes(lib.name))?.version;
|
|
47
|
+
const luminusUiVersion = libs.find(lib => luminusUiNames?.includes(lib.name))?.version;
|
|
48
|
+
|
|
49
|
+
return {
|
|
50
|
+
luminusUiVersion,
|
|
51
|
+
bifrostVersion
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static async simultaneousRequestAndHandleData() {
|
|
56
|
+
const promises = await Promise.allSettled([
|
|
57
|
+
this.getBifrostVersions(), this.getLuminusUiVersions()
|
|
58
|
+
]).then(res => res).catch(err => err)
|
|
59
|
+
|
|
60
|
+
const [bifrost, luminus] = promises;
|
|
61
|
+
|
|
62
|
+
let allBifrostVersions = {};
|
|
63
|
+
if (bifrost?.status === "fulfilled") {
|
|
64
|
+
allBifrostVersions = bifrost.value
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
let allLuminusVersions = {};
|
|
68
|
+
if (luminus?.status === "fulfilled") {
|
|
69
|
+
allLuminusVersions = luminus.value
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return {
|
|
73
|
+
luminusUiVersions: allLuminusVersions,
|
|
74
|
+
bifrostVersions: allBifrostVersions
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
static handleRawDatas(promises = []) {
|
|
79
|
+
|
|
80
|
+
const [bifrost, luminus] = promises;
|
|
81
|
+
|
|
82
|
+
const allBifrostVersions = [];
|
|
83
|
+
if (bifrost?.status === "fulfilled") {
|
|
84
|
+
const versions = bifrost?.value?.versions?.concat(bifrost?.value?.betaVersions, bifrost?.value?.alphaVersions);
|
|
85
|
+
allBifrostVersions.push(...versions)
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const allLuminusVersions = [];
|
|
89
|
+
if (luminus?.status === "fulfilled") {
|
|
90
|
+
allLuminusVersions.push(...luminus.value.versions)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
return {
|
|
94
|
+
luminusUiVersions: allLuminusVersions,
|
|
95
|
+
bifrostVersions: allBifrostVersions,
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
static async getBifrostVersions() {
|
|
101
|
+
const fullUrl = `${CDN_83io_LIBRARY.url}${CDN_83io_LIBRARY.bifrost.versions}`;
|
|
102
|
+
try {
|
|
103
|
+
const response = await axios.get(fullUrl)
|
|
104
|
+
return response.data
|
|
105
|
+
} catch (error) {
|
|
106
|
+
const errorMessage = error?.message || "Erro na obtenção de versões do Bifrost"
|
|
107
|
+
this.sendErrorToAnalytics("getBifrostVersions", errorMessage)
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
static async getLuminusUiVersions() {
|
|
112
|
+
const fullUrl = `${CDN_83io_LIBRARY.url}${CDN_83io_LIBRARY.luminusUi.versions}`;
|
|
113
|
+
try {
|
|
114
|
+
const response = await axios.get(fullUrl)
|
|
115
|
+
return response.data
|
|
116
|
+
} catch (error) {
|
|
117
|
+
const errorMessage = error?.message || "Erro na obtenção de versões do LuminusUI"
|
|
118
|
+
this.sendErrorToAnalytics("getLuminusUiVersions", errorMessage)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
static sendErrorToAnalytics(method = "", errorMessage = "") {
|
|
123
|
+
TrackingEitriAnalytics.sendEvent({
|
|
124
|
+
eventName: `${method}.error`,
|
|
125
|
+
userId: "",
|
|
126
|
+
data: {errorMessage}
|
|
127
|
+
})
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
static throwNonExistentLibError(input = {libName: "", eitriConfLibVersion: "", availableVersions: [], eitriAppConf: {}}) {
|
|
131
|
+
const {libName, eitriConfLibVersion, availableVersions, eitriAppConf} = input
|
|
132
|
+
|
|
133
|
+
const friendlyErrorMessage = `Versão da biblioteca [${libName}] não encontrada`;
|
|
134
|
+
console.log(`\n\x1b[1m\x1b[31m${friendlyErrorMessage}\x1b[0m\n`);
|
|
135
|
+
console.log("Veja as versões disponíveis abaixo e atualize o arquivo eitri-app.conf\n");
|
|
136
|
+
console.log(availableVersions)
|
|
137
|
+
|
|
138
|
+
TrackingEitriAnalytics.sendEvent({
|
|
139
|
+
eventName: "version.eitri-libs.not.found",
|
|
140
|
+
userId: "",
|
|
141
|
+
data: {
|
|
142
|
+
errorMessage: `Versão da biblioteca ${libName} não encontrada`,
|
|
143
|
+
eitriConfLibVersion,
|
|
144
|
+
availableVersions,
|
|
145
|
+
eitriAppConf,
|
|
146
|
+
}
|
|
147
|
+
})
|
|
148
|
+
|
|
149
|
+
process.exit(1)
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
module.exports = LibsService
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
const configService = require('./ConfigService')
|
|
2
|
+
const UserLocalCredential = require('../util/UserLocalCredential');
|
|
3
|
+
const Http = require('./Http');
|
|
4
|
+
const TrackingEitriAnalytics = require('./TrackingEitriAnalytics');
|
|
5
|
+
const MANAGER_URL = configService.get('eitriManager')?.url
|
|
6
|
+
const {workspace} = require('../service/Workspace')
|
|
7
|
+
const debug = require('debug')('eitri:PrerequisitesValidator')
|
|
8
|
+
class PrerequisitesValidator {
|
|
9
|
+
|
|
10
|
+
constructor(workspace) {
|
|
11
|
+
this.workspace = workspace
|
|
12
|
+
this.blindGuardian = workspace.blindGuardian;
|
|
13
|
+
this.http = new Http(workspace.blindGuardian);
|
|
14
|
+
this.userInfo = {id: "", email: ""}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async checkAll() {
|
|
18
|
+
this.checkCredentials()
|
|
19
|
+
await this.isUserInOrg()
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
checkCredentials() {
|
|
23
|
+
try {
|
|
24
|
+
UserLocalCredential.checkForCredentials()
|
|
25
|
+
debug("Successo na checagem de credenciais")
|
|
26
|
+
} catch (error) {
|
|
27
|
+
this.sendErrorToAnalytics("checkCredentials.error", error)
|
|
28
|
+
|
|
29
|
+
debug("ERRO na checagem de credenciais", {message: error?.message, error})
|
|
30
|
+
console.error("\nError: ", {message: error?.message, error})
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async isUserInOrg() {
|
|
36
|
+
const eitriAppConf = workspace.getMiniConf();
|
|
37
|
+
|
|
38
|
+
const respEitriAppData = await this.http.get(`${MANAGER_URL}/v2/eitri-apps/${eitriAppConf.id}`);
|
|
39
|
+
const respMyOrgsData = await this.http.get(`${MANAGER_URL}/users/me/organizations`);
|
|
40
|
+
|
|
41
|
+
const belongTo = respMyOrgsData?.some(org => org?.id === respEitriAppData?.organizationId)
|
|
42
|
+
const myOrgs = respMyOrgsData?.length > 0
|
|
43
|
+
if (myOrgs && belongTo) {
|
|
44
|
+
return
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
this.sendErrorToAnalytics("isUserInOrg.error", {confOrgId: respEitriAppData.organizationId, organizations: respMyOrgsData})
|
|
48
|
+
|
|
49
|
+
const friendlyErrorMessage = `Você ainda não foi registrado em nenhuma organização. Por favor, entre em contato com o administrador da sua organização.`
|
|
50
|
+
console.log(`\n\x1b[1m\x1b[31m ${friendlyErrorMessage} \x1b[0m\n`)
|
|
51
|
+
process.exit(1)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async getUserBasicInfo() {
|
|
55
|
+
if (this.userInfo.id && this.userInfo.email) {
|
|
56
|
+
return this.userInfo
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const token = await this.blindGuardian.getToken().then(res => res).catch(_err => null)
|
|
60
|
+
this.userInfo = {
|
|
61
|
+
id: token?.id || "",
|
|
62
|
+
email: token?.email || ""
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
id: token?.id || "",
|
|
66
|
+
email: token?.email || ""
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
sendErrorToAnalytics(eventName = "", data = {}) {
|
|
72
|
+
TrackingEitriAnalytics.sendEvent({
|
|
73
|
+
eventName,
|
|
74
|
+
userId: this.userInfo.id,
|
|
75
|
+
data: {
|
|
76
|
+
userData: this.userInfo,
|
|
77
|
+
...data
|
|
78
|
+
}
|
|
79
|
+
}).catch(_err => null)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
module.exports = PrerequisitesValidator
|
package/src/service/Workspace.js
CHANGED
|
@@ -29,6 +29,7 @@ const VegvisirService = require("../modules/vegvisir/VegvisirService");
|
|
|
29
29
|
const HuginService = require("./HuginService");
|
|
30
30
|
const EitriAppType = require("../model/EitriAppType");
|
|
31
31
|
const chalk = require("chalk");
|
|
32
|
+
const LibsService = require("./LibsService");
|
|
32
33
|
const vegvisirService = new VegvisirService()
|
|
33
34
|
const huginService = new HuginService()
|
|
34
35
|
|
|
@@ -207,6 +208,8 @@ class Workspace {
|
|
|
207
208
|
await this.eitriAppService.writeEitriConf(remoteEitriConf, miniConf, this.folder2watch);
|
|
208
209
|
}
|
|
209
210
|
|
|
211
|
+
await LibsService.validateLibsVersions({libs: state.libs, eitriAppConf: miniConf});
|
|
212
|
+
|
|
210
213
|
this.printLibsVersion(state);
|
|
211
214
|
|
|
212
215
|
await this.loadTarget(remoteTarget);
|
|
@@ -236,10 +239,10 @@ class Workspace {
|
|
|
236
239
|
if (m) {
|
|
237
240
|
version = m[1];
|
|
238
241
|
}
|
|
239
|
-
libVersionsOutput += ` ${lib.name} [${version}]
|
|
242
|
+
libVersionsOutput += ` ${lib.name} [${version}]`;
|
|
240
243
|
}
|
|
241
244
|
});
|
|
242
|
-
console.log(libVersionsOutput);
|
|
245
|
+
console.log("\n",libVersionsOutput, "\n");
|
|
243
246
|
}
|
|
244
247
|
|
|
245
248
|
async checkVersions() {
|
package/test/e2e/cli.test.js
CHANGED
|
@@ -212,6 +212,43 @@ describe("eitri-cli", () => {
|
|
|
212
212
|
2 * minutes
|
|
213
213
|
);
|
|
214
214
|
|
|
215
|
+
it(
|
|
216
|
+
"should list eitri libs versions",
|
|
217
|
+
async () => {
|
|
218
|
+
try {
|
|
219
|
+
await execAsync(
|
|
220
|
+
`cd ${EITRI_WORK_DIR} && rm -rf ./eitri-test-*`,
|
|
221
|
+
{ env: process.env }
|
|
222
|
+
);
|
|
223
|
+
|
|
224
|
+
const executor = new Executor({env: devEnv});
|
|
225
|
+
await executor
|
|
226
|
+
.exec("eitri libs -l")
|
|
227
|
+
.waitFor(/libsVersions/);
|
|
228
|
+
await executor
|
|
229
|
+
.exec("eitri libs -l")
|
|
230
|
+
.waitFor(/luminusUiVersions/);
|
|
231
|
+
await executor
|
|
232
|
+
.exec("eitri libs -l")
|
|
233
|
+
.waitFor(/versions/);
|
|
234
|
+
await executor
|
|
235
|
+
.exec("eitri libs -l")
|
|
236
|
+
.waitFor(/bifrostVersions/);
|
|
237
|
+
await executor
|
|
238
|
+
.exec("eitri libs -l")
|
|
239
|
+
.waitFor(/betaVersions/);
|
|
240
|
+
await executor
|
|
241
|
+
.exec("eitri libs -l")
|
|
242
|
+
.waitFor(/alphaVersions/);
|
|
243
|
+
|
|
244
|
+
} catch (e) {
|
|
245
|
+
console.error(e);
|
|
246
|
+
throw e;
|
|
247
|
+
}
|
|
248
|
+
},
|
|
249
|
+
2 * minutes
|
|
250
|
+
);
|
|
251
|
+
|
|
215
252
|
const getPublishedVersion = async (version, eitriAppId) => {
|
|
216
253
|
const blindGuardian = new BlindGuardian();
|
|
217
254
|
const http = new Http(blindGuardian);
|