@eui/tools 6.2.10 → 6.2.12

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.
@@ -0,0 +1,154 @@
1
+ 'use strict';
2
+
3
+ // GLOBAL
4
+ const path = require('path');
5
+
6
+ // UTILS
7
+ const utils = require('../../../utils');
8
+
9
+ // CSDR RELATED
10
+ const configUtils = require('../../config/config-utils');
11
+
12
+ // INNER MODULES
13
+ const innerCommon = require('./common');
14
+ const innerRemote = require('./remote');
15
+
16
+
17
+
18
+
19
+ module.exports.run = () => {
20
+ utils.tools.logBanner('Starting virtual remote pipeline');
21
+
22
+ // fetching package from config based on default arg
23
+ const pkg = configUtils.remotes.getRemote();
24
+
25
+ // checking if the package can be retrieved from args
26
+ if (!pkg.name) {
27
+ utils.tools.logError('ERROR : "package" NOT PROVIDED as argument !!!');
28
+ process.exit(1);
29
+ }
30
+
31
+ // Get branches flags
32
+ const branches = innerCommon.getBranches();
33
+
34
+ // Get envTarget (used by remotes)
35
+ const envTarget = innerCommon.getEnvTarget();
36
+
37
+ // Get compositeType (used by remotes)
38
+ const compositeType = innerCommon.getCompositeType();
39
+
40
+
41
+ // local saved vars
42
+ var newVersion, pkgMetadata, pkgCompositeDeps;
43
+
44
+
45
+ return Promise.resolve()
46
+
47
+ // RELEASE PACKAGE START
48
+ .then(() => {
49
+ return innerCommon.init(pkg, envTarget, compositeType);
50
+ })
51
+
52
+ // FOR UI and REMOTES clone metadata repositories
53
+ .then(() => {
54
+ return innerCommon.cloneMetadataRepos();
55
+ })
56
+
57
+
58
+ // EXECUTING PRE BUILD SCRIPT IF AVAILABLE
59
+ .then(() => {
60
+ return innerCommon.preBuild(pkg);
61
+ })
62
+
63
+
64
+ // INSTALL dependencies by type
65
+ .then(() => {
66
+ return innerRemote.install(pkg, envTarget, compositeType);
67
+ })
68
+ .then((compositeDeps) => {
69
+ // storing for later use
70
+ pkgCompositeDeps = compositeDeps;
71
+ })
72
+
73
+
74
+ // BUILD PACKAGE
75
+ .then(() => {
76
+ return utils.buildPackage.build(pkg, true);
77
+ })
78
+
79
+
80
+ // GENERATE and UPDATE new version
81
+ .then(() => {
82
+ return innerCommon.updateVersion(pkg, pkgMetadata, envTarget);
83
+ })
84
+ .then((version) => {
85
+ // storing version for later use
86
+ newVersion = version;
87
+ })
88
+
89
+
90
+ // EXECUTING GLOBAL POST BUILD
91
+ .then(() => {
92
+ return innerCommon.postBuild(pkg, newVersion);
93
+ })
94
+
95
+
96
+ // STORING METADATA ASSETS
97
+ .then(() => {
98
+ return innerCommon.storeMetadataAssets(pkg, pkgCompositeDeps);
99
+ })
100
+
101
+
102
+ // PUBLISH PACKAGE
103
+ .then(() => {
104
+ return utils.publish.publish(pkg);
105
+ })
106
+
107
+
108
+ // EXECUTING POST PUBLISH SCRIPT IF AVAILABLE
109
+ .then(() => {
110
+ return utils.publish.postPublish(pkg);
111
+ })
112
+
113
+
114
+ // STORING CENTRALIZED METADATA
115
+ .then(() => {
116
+ // get run duration
117
+ const duration = utils.pipeline.getTimerDuration();
118
+ return innerCommon.storeMetadata(pkg, newVersion, pkgMetadata, pkgCompositeDeps, duration, envTarget);
119
+ })
120
+
121
+ // STORING PACKAGE HISTORY
122
+ .then(() => {
123
+ if (branches.isMaster && pkg.remote) {
124
+ return innerCommon.generateDiffReport(pkg, newVersion);
125
+ }
126
+ })
127
+
128
+ // COMMITING METADATA
129
+ .then(() => {
130
+ return innerCommon.commitMetadata(pkg, newVersion);
131
+ })
132
+
133
+
134
+ // EXPORT ADDITIONAL PIPELINE VARIABLES
135
+ .then(() => {
136
+ return innerCommon.exportPipelineVariables(pkg, compositeType);
137
+ })
138
+
139
+ // SEND SUCCESS NOTIFICATION
140
+ .then(() => {
141
+ return innerCommon.sendSuccessNotification(pkg, newVersion, pkgMetadata)
142
+ .then(() => {
143
+ innerCommon.close(pkg);
144
+ });
145
+ })
146
+
147
+ .catch((e) => {
148
+ return innerCommon.sendErrorNotification(pkg, e, pkgMetadata)
149
+ .then(() => {
150
+ innerCommon.close(pkg);
151
+ process.exit(1);
152
+ });
153
+ })
154
+ }
@@ -54,7 +54,7 @@ const writePackageJson = (pkg, newVersion, isSnapshot, isNextBranch, isSupportBr
54
54
  if (!pkg.parent) {
55
55
  return Promise.resolve()
56
56
  .then(() => {
57
- return writePackageJsonCore(newVersion, pkg.paths.pkgDirectory, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch, envTarget);
57
+ return writePackageJsonCore(newVersion, pkg.paths.root, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch, envTarget);
58
58
  })
59
59
  .then(() => {
60
60
  if (!pkg.element && !pkg.config) {
@@ -68,7 +68,7 @@ const writePackageJson = (pkg, newVersion, isSnapshot, isNextBranch, isSupportBr
68
68
  } else {
69
69
  return Promise.resolve()
70
70
  .then(() => {
71
- return writePackageJsonCore(newVersion, pkg.paths.pkgDirectory, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch, envTarget);
71
+ return writePackageJsonCore(newVersion, pkg.paths.root, isSnapshot, isNextBranch, isSupportBranch, isHotfixBranch, envTarget);
72
72
  })
73
73
  .then(() => {
74
74
  let linkedPackages = Object.keys(pkg.packages)
@@ -119,18 +119,18 @@ const writePomXml = (pkg, newVersion, isSnapshot, isForceTimestamp = true) => {
119
119
 
120
120
  .then((mavenSettingsFile) => {
121
121
 
122
- tools.logInfo(`Executing mvn versions on : ${pkg.paths.pkgDirectory}`);
122
+ tools.logInfo(`Executing mvn versions on : ${pkg.paths.root}`);
123
123
 
124
- execa.shellSync('mvn versions:set -T1 -DnewVersion=' + newVersion + ' -s ' + mavenSettingsFile, { cwd: pkg.paths.pkgDirectory });
125
- execa.shellSync('mvn versions:commit -T1' + ' -s ' + mavenSettingsFile, { cwd: pkg.paths.pkgDirectory });
124
+ execa.shellSync('mvn versions:set -T1 -DnewVersion=' + newVersion + ' -s ' + mavenSettingsFile, { cwd: pkg.paths.root });
125
+ execa.shellSync('mvn versions:commit -T1' + ' -s ' + mavenSettingsFile, { cwd: pkg.paths.root });
126
126
 
127
127
  if (isForceTimestamp) {
128
128
  // timestamp file is forced to have at least one file to commit, as snapshot release
129
129
  // for backend can keep the same version until its latest
130
- const tsversionFile = path.resolve(pkg.paths.pkgDirectory, '.tsversion');
130
+ const tsversionFile = path.resolve(pkg.paths.root, '.tsversion');
131
131
  tools.writeFileContent(tsversionFile, Date.now().toString());
132
132
 
133
- const versionFile = path.resolve(pkg.paths.pkgDirectory, '.version.properties');
133
+ const versionFile = path.resolve(pkg.paths.root, '.version.properties');
134
134
  tools.writeFileContent(versionFile, newVersion);
135
135
  }
136
136
  })
@@ -170,14 +170,14 @@ module.exports.getCurrentVersion = (pkg) => {
170
170
  if (pkg.build && pkg.build.nodejs) {
171
171
  tools.logInfo('UI package => extracting from package.json');
172
172
 
173
- const pathPkgJson = path.resolve(pkg.paths.pkgDirectory, 'package.json');
173
+ const pathPkgJson = path.resolve(pkg.paths.root, 'package.json');
174
174
  const pkgJson = require(pathPkgJson);
175
175
  currentVersion = pkgJson.version;
176
176
 
177
177
  // by default maven java backend is taken into account
178
178
  } else {
179
179
  tools.logInfo('Backend => extracting pom.xml');
180
- const xmlContent = tools.getXMLJsContent(path.join(pkg.paths.pkgDirectory, 'pom.xml'));
180
+ const xmlContent = tools.getXMLJsContent(path.join(pkg.paths.root, 'pom.xml'));
181
181
 
182
182
  tools.logInfo('Content found:');
183
183
  console.log(xmlContent);
@@ -188,7 +188,7 @@ module.exports.getCurrentVersion = (pkg) => {
188
188
  } else {
189
189
  tools.logInfo('UI package => extracting from package.json');
190
190
 
191
- const pathPkgJson = path.resolve(pkg.paths.pkgDirectory, 'package.json');
191
+ const pathPkgJson = path.resolve(pkg.paths.root, 'package.json');
192
192
  const pkgJson = require(pathPkgJson);
193
193
  currentVersion = pkgJson.version;
194
194
  }
@@ -134,7 +134,7 @@ module.exports.preBuild = (pkg) => {
134
134
 
135
135
  return Promise.resolve()
136
136
  .then(() => {
137
- const prebuildScript = path.join(pkg.paths.pkgDirectory, 'pre-build.js');
137
+ const prebuildScript = path.join(pkg.paths.root, 'pre-build.js');
138
138
  if (!dryRun && tools.isFileExists(prebuildScript)) {
139
139
  return tools.runScript(`node ${prebuildScript}`);
140
140
  } else {
@@ -159,7 +159,7 @@ module.exports.postBuild = (pkg) => {
159
159
  return Promise.resolve()
160
160
  .then(() => {
161
161
  tools.logInfo('Executing post-build.js script if present in package');
162
- const postbuildScript = path.join(pkg.paths.pkgDirectory, 'post-build.js');
162
+ const postbuildScript = path.join(pkg.paths.root, 'post-build.js');
163
163
  if (!dryRun && tools.isFileExists(postbuildScript)) {
164
164
  return tools.runScript(`node ${postbuildScript}`);
165
165
  } else {
@@ -170,7 +170,7 @@ module.exports.postBuild = (pkg) => {
170
170
  // Clean up temporary sonar generated folder and files
171
171
  .then(() => {
172
172
  tools.logInfo('Cleaning sonar temporary assets if exist');
173
- const sonarTempPath = path.join(pkg.paths.pkgDirectory, '.scannerwork');
173
+ const sonarTempPath = path.join(pkg.paths.root, '.scannerwork');
174
174
  if (tools.isDirExists(sonarTempPath)) {
175
175
  return tools.rimraf(sonarTempPath);
176
176
  }
@@ -190,7 +190,7 @@ module.exports.buildSubEntry = (pkg, subEntry) => {
190
190
  .then(() => {
191
191
  tools.logInfo(`Building sub-entry : ${subEntry} of package : ${pkg.name}`);
192
192
  // console.log(pkg);
193
- return tools.getFilesGlob(pkg.paths.pkgRootDirectory, `**/package.json`);
193
+ return tools.getFilesGlob(pkg.paths.root, `**/package.json`);
194
194
  })
195
195
 
196
196
  .then((files) => {
@@ -227,8 +227,8 @@ module.exports.buildSubEntry = (pkg, subEntry) => {
227
227
  tools.logInfo('Testing...');
228
228
  const ng = path.resolve(process.cwd(), 'node_modules', '@angular', 'cli', 'bin', 'ng');
229
229
  let args = ['--max_old_space_size=8096', ng, 'test', subEntry, '--code-coverage', '--watch=false'];
230
- tools.logInfo(`running ng test : with args: ${args} on folder : ${pkg.paths.pkgRootDirectory}`);
231
- return execa('node', args, { cwd: pkg.paths.pkgRootDirectory, stdio: 'inherit' });
230
+ tools.logInfo(`running ng test : with args: ${args} on folder : ${pkg.paths.root}`);
231
+ return execa('node', args, { cwd: pkg.paths.root, stdio: 'inherit' });
232
232
  }
233
233
  }
234
234
  })
@@ -237,7 +237,7 @@ module.exports.buildSubEntry = (pkg, subEntry) => {
237
237
 
238
238
  let args = ['--max_old_space_size=8096', ng, 'build', subEntry];
239
239
 
240
- return execa('node', args, { cwd: pkg.paths.pkgRootDirectory, stdio: 'inherit' });
240
+ return execa('node', args, { cwd: pkg.paths.root, stdio: 'inherit' });
241
241
  })
242
242
 
243
243
  .then(() => {
@@ -15,7 +15,7 @@ const { dryRun, registry } = tools.getArgs();
15
15
 
16
16
 
17
17
  const getPkgVersion = (pkg) => {
18
- const pathPkgJson = path.resolve(pkg.paths.pkgPublish, 'package.json');
18
+ const pathPkgJson = path.resolve(pkg.paths.publish, 'package.json');
19
19
  delete require.cache[pathPkgJson];
20
20
  require(pathPkgJson);
21
21
  const { version } = require(pathPkgJson);
@@ -23,9 +23,9 @@ const getPkgVersion = (pkg) => {
23
23
  }
24
24
 
25
25
  const publishCore = (pkg, registry, isPublicAccess) => {
26
- tools.logInfo(`Publishing package "${pkg.name}" from "${pkg.paths.pkgPublish}" on ${registry}`);
26
+ tools.logInfo(`Publishing package "${pkg.name}" from "${pkg.paths.publish}" on ${registry}`);
27
27
 
28
- let command = `npm publish ${pkg.paths.pkgPublish} --registry ${registry}`;
28
+ let command = `npm publish ${pkg.paths.publish} --registry ${registry}`;
29
29
 
30
30
  if (isPublicAccess) {
31
31
  command += ' --access public';
@@ -59,7 +59,7 @@ const publishCore = (pkg, registry, isPublicAccess) => {
59
59
  .then(() => {
60
60
  tools.logInfo('Write version properties file');
61
61
 
62
- const versionFile = path.resolve(pkg.paths.pkgDirectory, '.version.properties');
62
+ const versionFile = path.resolve(pkg.paths.root, '.version.properties');
63
63
  tools.writeFileContent(versionFile, version);
64
64
  })
65
65
 
@@ -164,9 +164,14 @@ module.exports.publish = (pkg) => {
164
164
  .then(() => {
165
165
 
166
166
  if (!pkg.parent) {
167
- // building normal package without linked children
168
- const pkgFull = configUtils.packages.getPackage(pkg.name); // TO CHECK
169
- return publishPackage(pkgFull);
167
+ if (pkg.remote && pkg.virtual) {
168
+ return publishPackage(pkg);
169
+
170
+ } else {
171
+ // building normal package without linked children
172
+ const pkgFull = configUtils.packages.getPackage(pkg.name); // TO CHECK
173
+ return publishPackage(pkgFull);
174
+ }
170
175
 
171
176
  } else {
172
177
 
@@ -25,7 +25,7 @@ module.exports.publish = (pkg) => {
25
25
  }
26
26
 
27
27
  module.exports.postPublish = (pkg) => {
28
- const postpublishScript = path.join(pkg.paths.pkgDirectory, 'post-publish.js');
28
+ const postpublishScript = path.join(pkg.paths.root, 'post-publish.js');
29
29
  if (!dryRun && tools.isFileExists(postpublishScript)) {
30
30
  return tools.runScript(`node ${postpublishScript}`);
31
31
  } else {
@@ -81,6 +81,29 @@ function getArgs() {
81
81
  }
82
82
 
83
83
 
84
+ function convertBooleanArg(arg) {
85
+ if (arg && typeof(arg) === 'boolean') {
86
+ return false;
87
+ } else {
88
+ if (arg) {
89
+ return true;
90
+ } else {
91
+ return false;
92
+ }
93
+ }
94
+ }
95
+
96
+ function convertStringArg(arg, defaultValue = null) {
97
+ if (arg && typeof(arg) === 'boolean') {
98
+ return defaultValue
99
+ } else {
100
+ if (arg) {
101
+ return arg;
102
+ } else {
103
+ return defaultValue;
104
+ }
105
+ }
106
+ }
84
107
 
85
108
 
86
109
  /* -------------------------------------------------------------------------------------------
@@ -796,6 +819,8 @@ module.exports.sortArray = sortArray;
796
819
  module.exports.removeArrayDuplicates = removeArrayDuplicates;
797
820
  module.exports.getArraySum = getArraySum;
798
821
  module.exports.getArgs = getArgs;
822
+ module.exports.convertBooleanArg = convertBooleanArg;
823
+ module.exports.convertStringArg = convertStringArg;
799
824
  module.exports.getXMLJsContent = getXMLJsContent;
800
825
  module.exports.getFolders = getFolders;
801
826
  module.exports.getFiles = getFiles;