@farris/cli 1.0.24 → 1.0.27
Sign up to get free protection for your applications and to get access to all the features.
- package/ci/cli.js +97 -33
- package/package.json +1 -1
package/ci/cli.js
CHANGED
@@ -168,7 +168,7 @@ function checkProjectChanges(projectInfo, lastCommit) {
|
|
168
168
|
const hasChanges = changedFiles.length > 0;
|
169
169
|
if (hasChanges) {
|
170
170
|
projectInfo.workspace.hasChanged = hasChanges;
|
171
|
-
console.log(`${packageName} has changed
|
171
|
+
console.log(`${packageName} has changed since latest tag ${lastCommit}.`)
|
172
172
|
} else {
|
173
173
|
console.log(`${packageName} has not changed.`)
|
174
174
|
}
|
@@ -241,16 +241,17 @@ function updateMonoWorkspaceVersion(monoWorkspace, updateVersionType, commitUrl)
|
|
241
241
|
monoWorkspace.version = packageConfig.version;
|
242
242
|
// 向git缓冲区中添加变更
|
243
243
|
childProcess.execSync('git', ['add', '.']);
|
244
|
-
//
|
244
|
+
// 提交变更记录
|
245
245
|
childProcess.execSync('git', ['commit', '-m', `Update MonoWorkspace version to v${packageConfig.version}. [skip ci]`]);
|
246
246
|
console.log(`Update MonoWorkspace version to v${packageConfig.version}`);
|
247
247
|
const branch = childProcess.execSync("git", ["rev-parse", "--abbrev-ref", "HEAD"]);
|
248
|
-
console.log(`executing git push ${branch}`);
|
249
248
|
// 提交变更集
|
250
249
|
if (commitUrl) {
|
251
|
-
|
250
|
+
console.log(`executing git push ${branch} to ${commitUrl}`);
|
251
|
+
return childProcess.exec("git", ["push", commitUrl]);
|
252
252
|
} else {
|
253
|
-
|
253
|
+
console.log(`executing git push ${branch}`);
|
254
|
+
return childProcess.exec('git', ['push']);
|
254
255
|
}
|
255
256
|
}
|
256
257
|
|
@@ -266,24 +267,51 @@ function builderVersionChangeMessage(prefix, updatedVersions, suffix = '') {
|
|
266
267
|
return `${versionMessage} ${suffix}`;
|
267
268
|
}
|
268
269
|
|
269
|
-
function commitVersionChanges(updatedVersions, commitUrl) {
|
270
|
-
const commitMessage = builderVersionChangeMessage('
|
271
|
-
|
270
|
+
function commitVersionChanges(updatedVersions, commitUrl, monoWorkspace, updateVersionType) {
|
271
|
+
const commitMessage = builderVersionChangeMessage('update', updatedVersions, '');
|
272
272
|
if (commitMessage) {
|
273
|
+
const updateWorkspaceVersion = ['version', '--force', '--no-git-tag-version', updateVersionType];
|
274
|
+
if (updateVersionType === 'prerelease') {
|
275
|
+
updateWorkspaceVersion.push('--preid=beta');
|
276
|
+
}
|
277
|
+
// switch (updateVersionType) {
|
278
|
+
// case 'prerelease':
|
279
|
+
// updateWorkspaceVersion = ['version', 'prerelease', '--preid=beta', '--force', '--no-git-tag-version'];
|
280
|
+
// break;
|
281
|
+
// case 'patch':
|
282
|
+
// updateWorkspaceVersion = ['version', 'patch', '--force', '--no-git-tag-version'];
|
283
|
+
// break;
|
284
|
+
// case 'minor':
|
285
|
+
// updateWorkspaceVersion = ['version', 'minor', '--force', '--no-git-tag-version'];
|
286
|
+
// break;
|
287
|
+
// case 'major':
|
288
|
+
// updateWorkspaceVersion = ['version', 'major', '--force', '--no-git-tag-version'];
|
289
|
+
// break;
|
290
|
+
// }
|
291
|
+
console.log(`executing npm ${updateWorkspaceVersion.join(' ')} in root directory.`)
|
292
|
+
childProcess.execSync('npm', updateWorkspaceVersion);
|
293
|
+
|
294
|
+
const packageJsonFilePath = `./package.json`;
|
295
|
+
const packageConfig = JSON.parse(fs.readFileSync(packageJsonFilePath, 'utf-8'));
|
296
|
+
monoWorkspace.version = packageConfig.version;
|
297
|
+
|
273
298
|
// 向git缓冲区中添加变更
|
274
299
|
childProcess.execSync('git', ['add', '.']);
|
275
|
-
//
|
276
|
-
childProcess.execSync('git', ['commit', '-m',
|
277
|
-
|
278
|
-
console.log(commitMessage);
|
300
|
+
// 提交变更记录
|
301
|
+
childProcess.execSync('git', ['commit', '-m', `Update workspace version to v${packageConfig.version} for ${commitMessage}. [skip ci]`]);
|
279
302
|
|
303
|
+
// // 向git缓冲区中添加变更
|
304
|
+
// childProcess.execSync('git', ['add', '.']);
|
305
|
+
// // // 提交变更记录
|
306
|
+
// childProcess.execSync('git', ['commit', '-m', `${commitMessage}`]);
|
280
307
|
const branch = childProcess.execSync("git", ["rev-parse", "--abbrev-ref", "HEAD"]);
|
281
|
-
console.log(`executing git push ${branch}`);
|
282
308
|
// 提交变更集
|
283
309
|
if (commitUrl) {
|
284
|
-
|
310
|
+
console.log(`executing git push ${branch} to ${commitUrl}`);
|
311
|
+
return childProcess.exec("git", ["push", commitUrl]);
|
285
312
|
} else {
|
286
|
-
|
313
|
+
console.log(`executing git push ${branch}`);
|
314
|
+
return childProcess.exec('git', ['push']);
|
287
315
|
}
|
288
316
|
}
|
289
317
|
}
|
@@ -294,9 +322,6 @@ function buildWorkspace(workspace) {
|
|
294
322
|
}
|
295
323
|
|
296
324
|
function addTagToMonoWorkspace(monoWorkspace, commitUrl) {
|
297
|
-
// const tagMessage = builderVersionChangeMessage('Publish npm packages ', monoWorkspace.updateResult, '.');
|
298
|
-
// const date = moment(new Date());
|
299
|
-
// const tagVersion = `v${date.format('YYYYMMDDHHmmss')}`;
|
300
325
|
const monoWorkspaceVersion = monoWorkspace.version;
|
301
326
|
childProcess.execSync('git', ['tag', monoWorkspaceVersion, '-m', 'Publish npm packages. [skip ci]']);
|
302
327
|
// 提交变更集
|
@@ -371,9 +396,9 @@ function publish(commitUrl, updateVersionType) {
|
|
371
396
|
// 3. 检查代码提交记录,获取自上次发布以来所有发生变化的Angular工程
|
372
397
|
chain = chain.then(monoWorkspace => {
|
373
398
|
const projects = monoWorkspace.projects;
|
399
|
+
const lastCommit = getLastCommit();
|
400
|
+
console.log(`last commit ${lastCommit}`);
|
374
401
|
const checkProjects = projects.map((projectInfo) => {
|
375
|
-
const lastCommit = getLastCommit();
|
376
|
-
console.log(`last commit ${lastCommit}`);
|
377
402
|
let checkPromise = checkProjectChanges(projectInfo, lastCommit);
|
378
403
|
let changedPromise = checkPromise.then(hasChanged => {
|
379
404
|
projectInfo.hasChanged = hasChanged;
|
@@ -399,9 +424,30 @@ function publish(commitUrl, updateVersionType) {
|
|
399
424
|
return workspace;
|
400
425
|
}, monoWorkspace);
|
401
426
|
const updatedVersions = monoWorkspace.updateResult;
|
402
|
-
|
403
|
-
|
404
|
-
|
427
|
+
if (updatedVersions) {
|
428
|
+
return commitVersionChanges(updatedVersions, commitUrl, monoWorkspace, updateVersionType)
|
429
|
+
// .then((result) => {
|
430
|
+
// if (result.stderr) {
|
431
|
+
// console.log(result.stderr);
|
432
|
+
// }
|
433
|
+
// if (result.stdout) {
|
434
|
+
// console.log(result.stdout);
|
435
|
+
// }
|
436
|
+
// return updateMonoWorkspaceVersion(monoWorkspace, updateVersionType, commitUrl);
|
437
|
+
// })
|
438
|
+
.then((result) => {
|
439
|
+
if (result.stderr) {
|
440
|
+
console.log(result.stderr);
|
441
|
+
}
|
442
|
+
if (result.stdout) {
|
443
|
+
console.log(result.stdout);
|
444
|
+
}
|
445
|
+
return Promise.resolve(monoWorkspace);
|
446
|
+
});
|
447
|
+
} else {
|
448
|
+
return Promise.resolve(monoWorkspace);
|
449
|
+
}
|
450
|
+
|
405
451
|
});
|
406
452
|
});
|
407
453
|
// 5. 编译所有Angular工作区
|
@@ -409,20 +455,38 @@ function publish(commitUrl, updateVersionType) {
|
|
409
455
|
const buildPromises = monoWorkspace.workspaces
|
410
456
|
.filter(workspace => workspace.hasChanged)
|
411
457
|
.map((workspace) => buildWorkspace(workspace));
|
412
|
-
|
413
|
-
.
|
414
|
-
|
415
|
-
|
416
|
-
|
458
|
+
if (buildPromises.length) {
|
459
|
+
return Promise.all(buildPromises)
|
460
|
+
.then((results) => {
|
461
|
+
if (results) {
|
462
|
+
results.map((result) => {
|
463
|
+
if (result.stderr) {
|
464
|
+
console.log(result.stderr);
|
465
|
+
}
|
466
|
+
if (result.stdout) {
|
467
|
+
console.log(result.stdout);
|
468
|
+
}
|
469
|
+
});
|
470
|
+
}
|
471
|
+
return Promise.resolve(monoWorkspace);
|
472
|
+
});
|
473
|
+
} else {
|
474
|
+
return Promise.resolve(monoWorkspace);
|
475
|
+
}
|
417
476
|
});
|
418
477
|
// 6. 将变更项目的内容发布为npm包,并增加发布Tag标签
|
419
478
|
chain = chain.then(monoWorkspace => {
|
420
479
|
const changedProjects = monoWorkspace.changedProjects;
|
421
|
-
|
422
|
-
|
423
|
-
.
|
424
|
-
|
425
|
-
|
480
|
+
if (changedProjects.length) {
|
481
|
+
const publishPromises = changedProjects.map(projectInfo => publishToNpmRepository(projectInfo.project.path));
|
482
|
+
Promise.all(publishPromises)
|
483
|
+
.then(() => {
|
484
|
+
return addTagToMonoWorkspace(monoWorkspace, commitUrl);
|
485
|
+
});
|
486
|
+
} else {
|
487
|
+
return Promise.resolve(monoWorkspace);
|
488
|
+
}
|
489
|
+
|
426
490
|
});
|
427
491
|
}
|
428
492
|
|