@farris/cli 1.0.12 → 1.0.13
Sign up to get free protection for your applications and to get access to all the features.
- package/ci/cli.js +8 -33
- package/package.json +1 -1
package/ci/cli.js
CHANGED
@@ -81,10 +81,10 @@ cli
|
|
81
81
|
*/
|
82
82
|
function getLastCommit() {
|
83
83
|
if (hasTags()) {
|
84
|
-
|
84
|
+
log.silly("getLastTagInBranch");
|
85
85
|
return childProcess.execSync("git", ["describe", "--tags", "--abbrev=0"]);
|
86
86
|
}
|
87
|
-
|
87
|
+
log.silly("getFirstCommit");
|
88
88
|
return childProcess.execSync("git", ["rev-list", "--max-parents=0", "HEAD"]);
|
89
89
|
}
|
90
90
|
|
@@ -205,18 +205,15 @@ function buildWorkspace(workspace) {
|
|
205
205
|
}
|
206
206
|
|
207
207
|
function tagMonoWorkspace(monoWorkspace, commitUrl) {
|
208
|
-
const tagMessage = builderVersionChangeMessage('Publish npm packages ', monoWorkspace.updateResult, '.');
|
208
|
+
// const tagMessage = builderVersionChangeMessage('Publish npm packages ', monoWorkspace.updateResult, '.');
|
209
209
|
const date = moment(new Date());
|
210
|
-
const tagVersion = `v${date.format('
|
211
|
-
|
212
|
-
childProcess.execSync('git', ['tag', tagVersion, '-m', tagMessage]);
|
210
|
+
const tagVersion = `v${date.format('YYYMMDDHHmmss')}`;
|
211
|
+
childProcess.execSync('git', ['tag', tagVersion, '-m', "publish npm package"]);
|
213
212
|
// 提交变更集
|
214
213
|
if (commitUrl) {
|
215
|
-
|
216
|
-
return childProcess.exec("git", ["push", '-o', 'ci.skip', commitUrl]);
|
214
|
+
return childProcess.exec("git", ["push", '--tags', '-o', 'ci.skip', commitUrl]);
|
217
215
|
} else {
|
218
|
-
|
219
|
-
return childProcess.exec('git', ['push', '-o', 'ci.skip']);
|
216
|
+
return childProcess.exec('git', ['push', '--tags', '-o', 'ci.skip']);
|
220
217
|
}
|
221
218
|
}
|
222
219
|
|
@@ -232,55 +229,36 @@ function publish(projectPath) {
|
|
232
229
|
const dest = ngPackageConfig.dest;
|
233
230
|
const packagePath = path.normalize(`${projectPath}/${dest}`);
|
234
231
|
// 调用 npm publish 发布指定路径下的npm包
|
235
|
-
console.log(`npm publish ${packagePath}`);
|
236
232
|
return childProcess.exec('npm', ['publish', packagePath])
|
237
233
|
}
|
238
234
|
|
239
|
-
/**
|
240
|
-
* 将所有变更发布为新的npm包
|
241
|
-
* @param {string} commitUrl commit api 地址
|
242
|
-
*/
|
243
235
|
function publishAll(commitUrl) {
|
244
|
-
// 初始化当前工作目录下的多代码仓库项目
|
245
236
|
const monoRepoProject = new Project(process.cwd());
|
246
237
|
let chain = Promise.resolve();
|
247
|
-
// 1. 提取当前多代码仓库中的所有子项目,创建多项目工作区
|
248
238
|
chain = chain.then(() => {
|
249
|
-
// 提取所有子项目
|
250
239
|
return monoRepoProject.getPackages()
|
251
240
|
.then(packages => {
|
252
|
-
// 创建并返回多项目工作区
|
253
241
|
const monoWorkspace = { packages };
|
254
242
|
return monoWorkspace;
|
255
243
|
})
|
256
244
|
});
|
257
|
-
// 2. 读取多项目工作区下的Angular工作区和所有Angular项目
|
258
245
|
chain = chain.then((monoWorkspace) => {
|
259
|
-
// 提取所有子仓库项目
|
260
246
|
const packages = monoWorkspace.packages;
|
261
|
-
// 初始化Angular工作区集合
|
262
247
|
monoWorkspace.workspaces = [];
|
263
|
-
// 初始化Angular工程集合
|
264
248
|
monoWorkspace.projects = [];
|
265
|
-
// 遍历所有子仓库
|
266
249
|
packages.forEach(packageJson => {
|
267
|
-
// 读取Angular工作区路径
|
268
250
|
const workspacePath = packageJson.location;
|
269
|
-
// 读取Angular工作区下的angular.json文件内容
|
270
251
|
const angularJson = readAngularJson(workspacePath)
|
271
|
-
// 构造Angular工作区
|
272
252
|
const workspace = readWorkspace(angularJson, packageJson);
|
273
|
-
// 记录Angular工作区对象
|
274
253
|
monoWorkspace.workspaces.push(workspace);
|
275
|
-
// 遍历Angular工作区下的Angular项目,归集到根工作区中
|
276
254
|
workspace.projects.reduce((monoWorkspace, projectInfo) => {
|
277
255
|
monoWorkspace.projects.push(projectInfo);
|
278
256
|
return monoWorkspace;
|
279
257
|
}, monoWorkspace);
|
258
|
+
// .forEach((projectInfo) => monoWorkspace.projects.push(projectInfo));
|
280
259
|
});
|
281
260
|
return monoWorkspace;
|
282
261
|
});
|
283
|
-
// 3. 检查代码提交记录,获取自上次发布以来所有发生变化的Angular工程
|
284
262
|
chain = chain.then(monoWorkspace => {
|
285
263
|
const projects = monoWorkspace.projects;
|
286
264
|
const checkProjects = projects.map((projectInfo) => {
|
@@ -297,7 +275,6 @@ function publishAll(commitUrl) {
|
|
297
275
|
return Promise.resolve(monoWorkspace);
|
298
276
|
});
|
299
277
|
});
|
300
|
-
// 4. 更新所有变更项目预发布版本,提交代码仓库,供发布时使用
|
301
278
|
chain = chain.then(monoWorkspace => {
|
302
279
|
const changedProjects = monoWorkspace.changedProjects;
|
303
280
|
const prereleasePromise = changedProjects.map(projectInfo => updateProjectPrereleaseVersion(projectInfo.project.path, monoWorkspace));
|
@@ -313,7 +290,6 @@ function publishAll(commitUrl) {
|
|
313
290
|
return Promise.resolve(monoWorkspace);
|
314
291
|
});
|
315
292
|
});
|
316
|
-
// 5. 编译所有Angular工作区
|
317
293
|
chain = chain.then(monoWorkspace => {
|
318
294
|
const buildPromises = monoWorkspace.workspaces.map((workspace) => buildWorkspace(workspace));
|
319
295
|
return Promise.all(buildPromises)
|
@@ -321,7 +297,6 @@ function publishAll(commitUrl) {
|
|
321
297
|
return Promise.resolve(monoWorkspace);
|
322
298
|
});
|
323
299
|
});
|
324
|
-
// 6. 将变更项目的内容发布为npm包,并增加发布Tag标签
|
325
300
|
chain = chain.then(monoWorkspace => {
|
326
301
|
const changedProjects = monoWorkspace.changedProjects;
|
327
302
|
const publishPromises = changedProjects.map(projectInfo => publish(projectInfo.project.path));
|