@clickview/ship-it 0.0.27-dev.0 → 0.0.27
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.json +1 -1
- package/lib/config.json +1 -1
- package/lib/src/api-clients/git-lab/GitLabApiClient.js +1 -20
- package/lib/src/api-clients/git-lab/GitLabMapper.js +0 -1
- package/lib/src/commands/CreateReleaseNotesCommand.js +1 -12
- package/lib/src/commands/ReleaseCommand.js +34 -22
- package/lib/src/constants/ProjectNames.js +0 -1
- package/lib/src/constants/TeamCityBuildIDs.js +1 -2
- package/lib/src/index.js +0 -0
- package/lib/src/services/GitLabService.js +3 -10
- package/lib/src/services/SlackService.js +3 -0
- package/lib/src/startup/SetupCommands.js +0 -3
- package/lib/src/tasks/StartProjectBuildsTask.js +17 -38
- package/lib/src/tasks/ValidateTask.js +30 -105
- package/package.json +1 -1
- package/dist/F1/Analytics Web.md +0 -8
- package/dist/F1/AutoCaptions.md +0 -30
- package/dist/F1/Classroom.Api.md +0 -23
- package/dist/F1/ClickView Online.md +0 -17
- package/dist/F1/ClickView.Curator.md +0 -100
- package/dist/F1/ClickView.EmailService.md +0 -53
- package/dist/F1/ClickView.OnlineApi.md +0 -13
- package/dist/F1/Clients.md +0 -19
- package/dist/F1/Domain.Api.md +0 -23
- package/dist/F1/Exchange.Web.md +0 -8
- package/dist/F1/Image.Api.md +0 -8
- package/dist/F1/Integrations.Api.md +0 -23
- package/dist/F1/Krakend.md +0 -8
- package/dist/F1/Library Editor.md +0 -0
- package/dist/F1/Lite.md +0 -60
- package/dist/F1/Master.Api.md +0 -58
- package/dist/F1/Master.Auth.md +0 -22
- package/dist/F1/Objects.Api.md +0 -12
- package/dist/F1/Permissions.Api.md +0 -12
- package/dist/F1/RealtimeSalesforceSync.md +0 -14
- package/dist/F1/Release Notes.md +0 -990
- package/dist/F1/Search.Api.md +0 -12
- package/dist/F1/StreamableLearning.Web.md +0 -35
- package/dist/F1/Users.Api.md +0 -13
- package/dist/F1/VideoProcessorService.md +0 -23
- package/dist/F1/clickview.md +0 -321
- package/dist/F2/Analytics Web.md +0 -7
- package/dist/F2/Batch.Api.md +0 -27
- package/dist/F2/ClickView Online.md +0 -12
- package/dist/F2/ClickView.Curator.md +0 -166
- package/dist/F2/Clients.md +0 -14
- package/dist/F2/CurriculumIngestion.Api.md +0 -13
- package/dist/F2/Discover.Api.md +0 -64
- package/dist/F2/Domain.Api.md +0 -16
- package/dist/F2/Exchange.Web.md +0 -7
- package/dist/F2/Krakend.md +0 -12
- package/dist/F2/Library Editor.md +0 -11
- package/dist/F2/Lite.md +0 -30
- package/dist/F2/Objects.Api.md +0 -12
- package/dist/F2/Release Notes.md +0 -759
- package/dist/F2/Search.Api.md +0 -30
- package/dist/F2/Share.Api.md +0 -12
- package/dist/F2/StreamableLearning.Web.md +0 -14
- package/dist/F2/Subjects.API.md +0 -12
- package/dist/F2/Tv.Web.md +0 -8
- package/dist/F2/Users.Api.md +0 -21
- package/dist/F2/clickview.md +0 -200
- package/dist/F2/shortcode-api.md +0 -8
- package/dist/F3.1/Analytics Web.md +0 -8
- package/dist/F3.1/ClickView.Curator.md +0 -14
- package/dist/F3.1/Discover.Api.md +0 -14
- package/dist/F3.1/Domain.Api.md +0 -7
- package/dist/F3.1/Exchange.Web.md +0 -8
- package/dist/F3.1/Library Editor.md +0 -8
- package/dist/F3.1/Lite.md +0 -8
- package/dist/F3.1/Objects.Api.md +0 -7
- package/dist/F3.1/Release Notes.md +0 -207
- package/dist/F3.1/Search.Api.md +0 -14
- package/dist/F3.1/Share.Api.md +0 -10
- package/dist/F3.1/Subjects.API.md +0 -35
- package/dist/F3.1/VideoViews.Api.md +0 -7
- package/dist/F3.1/clickview.md +0 -28
- package/lib/src/commands/StartConsumingProjectBuildsCommand.js +0 -76
- package/lib/src/tasks/StartConsumingProjectBuildsTask.js +0 -149
package/config.json
CHANGED
package/lib/config.json
CHANGED
|
@@ -359,7 +359,7 @@ var GitLabApiClient = /** @class */ (function () {
|
|
|
359
359
|
});
|
|
360
360
|
});
|
|
361
361
|
};
|
|
362
|
-
GitLabApiClient.prototype.getMilestone = function (
|
|
362
|
+
GitLabApiClient.prototype.getMilestone = function (projectId, milestoneName) {
|
|
363
363
|
return __awaiter(this, void 0, void 0, function () {
|
|
364
364
|
var groupMilestones, milestone, projectMilestones;
|
|
365
365
|
return __generator(this, function (_a) {
|
|
@@ -370,8 +370,6 @@ var GitLabApiClient = /** @class */ (function () {
|
|
|
370
370
|
milestone = groupMilestones.find(function (milestone) { return milestone.title === milestoneName; });
|
|
371
371
|
if (milestone)
|
|
372
372
|
return [2 /*return*/, GitLabMapper_1.GitLabMapper.milestone(milestone)];
|
|
373
|
-
if (!projectId)
|
|
374
|
-
return [2 /*return*/, null];
|
|
375
373
|
return [4 /*yield*/, this.client.ProjectMilestones.all(projectId)];
|
|
376
374
|
case 2:
|
|
377
375
|
projectMilestones = _a.sent();
|
|
@@ -383,23 +381,6 @@ var GitLabApiClient = /** @class */ (function () {
|
|
|
383
381
|
});
|
|
384
382
|
});
|
|
385
383
|
};
|
|
386
|
-
GitLabApiClient.prototype.updateMilestone = function (projectId, mergeRequestId, newMilestoneId) {
|
|
387
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
388
|
-
var updated;
|
|
389
|
-
return __generator(this, function (_a) {
|
|
390
|
-
switch (_a.label) {
|
|
391
|
-
case 0: return [4 /*yield*/, this.client.MergeRequests.edit(projectId, mergeRequestId, {
|
|
392
|
-
milestoneId: newMilestoneId,
|
|
393
|
-
})];
|
|
394
|
-
case 1:
|
|
395
|
-
updated = _a.sent();
|
|
396
|
-
if (!updated)
|
|
397
|
-
return [2 /*return*/, null];
|
|
398
|
-
return [2 /*return*/, GitLabMapper_1.GitLabMapper.milestone(updated.milestone)];
|
|
399
|
-
}
|
|
400
|
-
});
|
|
401
|
-
});
|
|
402
|
-
};
|
|
403
384
|
GitLabApiClient.prototype.getLabels = function (projectId) {
|
|
404
385
|
return __awaiter(this, void 0, void 0, function () {
|
|
405
386
|
var labels;
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
14
3
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
15
4
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -73,7 +62,7 @@ var CreateReleaseNotesCommand = /** @class */ (function () {
|
|
|
73
62
|
var cont;
|
|
74
63
|
return __generator(this, function (_a) {
|
|
75
64
|
switch (_a.label) {
|
|
76
|
-
case 0: return [4 /*yield*/, this.validateDescriptionsTask.run(
|
|
65
|
+
case 0: return [4 /*yield*/, this.validateDescriptionsTask.run(options)];
|
|
77
66
|
case 1:
|
|
78
67
|
cont = _a.sent();
|
|
79
68
|
if (!cont)
|
|
@@ -74,28 +74,40 @@ var ReleaseCommand = /** @class */ (function () {
|
|
|
74
74
|
// Check if we want to continue with inquirer?
|
|
75
75
|
if (!cont)
|
|
76
76
|
return [2 /*return*/, false];
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
77
|
+
return [4 /*yield*/, this.versionTask.run(options)];
|
|
78
|
+
case 2:
|
|
79
|
+
cont = _a.sent();
|
|
80
|
+
if (!cont)
|
|
81
|
+
return [2 /*return*/, false];
|
|
82
|
+
return [4 /*yield*/, this.validateDescriptionsTask.run(options)];
|
|
83
|
+
case 3:
|
|
84
|
+
cont = _a.sent();
|
|
85
|
+
if (!cont)
|
|
86
|
+
return [2 /*return*/, false];
|
|
87
|
+
return [4 /*yield*/, this.validateCommitsTask.run(options)];
|
|
88
|
+
case 4:
|
|
89
|
+
cont = _a.sent();
|
|
90
|
+
if (!cont)
|
|
91
|
+
return [2 /*return*/, false];
|
|
92
|
+
return [4 /*yield*/, this.createBranchTask.run(options)];
|
|
93
|
+
case 5:
|
|
94
|
+
cont = _a.sent();
|
|
95
|
+
if (!cont)
|
|
96
|
+
return [2 /*return*/, false];
|
|
97
|
+
return [4 /*yield*/, this.bumpVersionTxtTask.run(options)];
|
|
98
|
+
case 6:
|
|
99
|
+
cont = _a.sent();
|
|
100
|
+
if (!cont)
|
|
101
|
+
return [2 /*return*/, false];
|
|
102
|
+
return [4 /*yield*/, this.createMergeRequestTask.run(options)];
|
|
103
|
+
case 7:
|
|
104
|
+
cont = _a.sent();
|
|
105
|
+
if (!cont)
|
|
106
|
+
return [2 /*return*/, false];
|
|
107
|
+
if (!options.triggerMonorepoBuild)
|
|
108
|
+
return [2 /*return*/, true];
|
|
109
|
+
return [4 /*yield*/, this.startMonorepoBuildTask.run(options)];
|
|
110
|
+
case 8: return [2 /*return*/, _a.sent()];
|
|
99
111
|
}
|
|
100
112
|
});
|
|
101
113
|
});
|
|
@@ -9,7 +9,7 @@ exports.TeamCityBuildIds = (_a = {},
|
|
|
9
9
|
_a[constants_1.PROJECT_NAMES.frontend.curator] = 'curator_web_BuildAndPackageDocker',
|
|
10
10
|
_a[constants_1.PROJECT_NAMES.frontend.cloud] = 'ClickViewCloud_BuildAndPackageDocker',
|
|
11
11
|
_a[constants_1.PROJECT_NAMES.frontend.reports] = 'Web_AnalyticsWeb_BuildAndPackageDocker',
|
|
12
|
-
_a[constants_1.PROJECT_NAMES.frontend.lite] = '
|
|
12
|
+
_a[constants_1.PROJECT_NAMES.frontend.lite] = 'ClickViewLiteWeb_BuildAndPackageDocker',
|
|
13
13
|
_a[constants_1.PROJECT_NAMES.backend.auth] = 'auth_web_B',
|
|
14
14
|
_a[constants_1.PROJECT_NAMES.frontend.exchange] = 'ExchangeWeb_BuildAndPackageDocker',
|
|
15
15
|
_a[constants_1.PROJECT_NAMES.frontend.streamable] = 'Web_StreamableLearningWeb_BuildAndPackageDocker',
|
|
@@ -41,5 +41,4 @@ exports.TeamCityBuildIds = (_a = {},
|
|
|
41
41
|
_a[constants_1.PROJECT_NAMES.backend.tvweb] = 'tv_web_BuildAndPackageDocker',
|
|
42
42
|
_a[constants_1.PROJECT_NAMES.backend.clients] = 'Tooling_Clients_PublishToNuget',
|
|
43
43
|
_a[constants_1.PROJECT_NAMES.backend.goodstuff] = 'Tooling_GoodStuffInternal_PublishToNuget',
|
|
44
|
-
_a[constants_1.PROJECT_NAMES.backend.share] = 'Api_ShareApi_BuildAndPackageDocker',
|
|
45
44
|
_a);
|
package/lib/src/index.js
CHANGED
|
File without changes
|
|
@@ -269,7 +269,7 @@ var GitLabService = /** @class */ (function () {
|
|
|
269
269
|
var milestone;
|
|
270
270
|
return __generator(this, function (_a) {
|
|
271
271
|
switch (_a.label) {
|
|
272
|
-
case 0: return [4 /*yield*/, this.getMilestone(
|
|
272
|
+
case 0: return [4 /*yield*/, this.getMilestone(projectId, milestoneName)];
|
|
273
273
|
case 1:
|
|
274
274
|
milestone = _a.sent();
|
|
275
275
|
return [2 /*return*/, this.apiClient.createMergeRequest(projectId, branchName, 'master', branchName, description, milestone)];
|
|
@@ -277,8 +277,8 @@ var GitLabService = /** @class */ (function () {
|
|
|
277
277
|
});
|
|
278
278
|
});
|
|
279
279
|
};
|
|
280
|
-
GitLabService.prototype.getMilestone = function (
|
|
281
|
-
return this.apiClient.getMilestone(
|
|
280
|
+
GitLabService.prototype.getMilestone = function (projectId, milestoneName) {
|
|
281
|
+
return this.apiClient.getMilestone(projectId, milestoneName);
|
|
282
282
|
};
|
|
283
283
|
GitLabService.prototype.getReleaseBranchNameMilestone = function (projectId, milestone) {
|
|
284
284
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -488,13 +488,6 @@ var GitLabService = /** @class */ (function () {
|
|
|
488
488
|
});
|
|
489
489
|
});
|
|
490
490
|
};
|
|
491
|
-
GitLabService.prototype.updateMilestone = function (projectId, mergeRequestID, newMilestoneId) {
|
|
492
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
493
|
-
return __generator(this, function (_a) {
|
|
494
|
-
return [2 /*return*/, this.apiClient.updateMilestone(projectId, mergeRequestID, newMilestoneId)];
|
|
495
|
-
});
|
|
496
|
-
});
|
|
497
|
-
};
|
|
498
491
|
GitLabService = __decorate([
|
|
499
492
|
(0, inversify_1.injectable)(),
|
|
500
493
|
__param(0, (0, inversify_1.inject)(types_1.API_CLIENTS.GitLabApiClient)),
|
|
@@ -118,6 +118,9 @@ var SlackService = /** @class */ (function () {
|
|
|
118
118
|
mentionUserString = this.formatMentionUsers(userList);
|
|
119
119
|
if (!mentionUserString)
|
|
120
120
|
return [2 /*return*/];
|
|
121
|
+
return [4 /*yield*/, this.apiClient.replyInThread("Hello ".concat(mentionUserString), threadTs)];
|
|
122
|
+
case 7:
|
|
123
|
+
_d.sent();
|
|
121
124
|
return [2 /*return*/];
|
|
122
125
|
}
|
|
123
126
|
});
|
|
@@ -94,11 +94,9 @@ function setupCommands(program, container) {
|
|
|
94
94
|
.requiredOption('-m, --milestone <milestone>')
|
|
95
95
|
.option('-p, --projectIds <projectIds...>')
|
|
96
96
|
.option('-o, --omit <omittedProjectIds...>')
|
|
97
|
-
.option('-nm, --nextMilestone <nextMilestone>')
|
|
98
97
|
.option('--hotfix')
|
|
99
98
|
.option('--major')
|
|
100
99
|
.option('--trigger-monorepo-build')
|
|
101
|
-
.option('--slack-notifier')
|
|
102
100
|
.action(function (opts) { return __awaiter(_this, void 0, void 0, function () {
|
|
103
101
|
var options;
|
|
104
102
|
return __generator(this, function (_a) {
|
|
@@ -148,7 +146,6 @@ function setupCommands(program, container) {
|
|
|
148
146
|
.option('--monorepoBranchName <monorepoBranchName>')
|
|
149
147
|
.option('-p, --projectIds <projectIds...>')
|
|
150
148
|
.option('-o, --omit <omittedProjectIds...>')
|
|
151
|
-
.option('-t, --targetBranchName <targetBranchName>')
|
|
152
149
|
.action(function (opts) { return __awaiter(_this, void 0, void 0, function () {
|
|
153
150
|
var options;
|
|
154
151
|
return __generator(this, function (_a) {
|
|
@@ -62,44 +62,23 @@ var StartProjectBuildsTask = /** @class */ (function () {
|
|
|
62
62
|
}
|
|
63
63
|
StartProjectBuildsTask.prototype.run = function (_options) {
|
|
64
64
|
return __awaiter(this, void 0, void 0, function () {
|
|
65
|
-
var
|
|
65
|
+
var milestone, options, projects, consumingProjects, projectBuildMap, _i, consumingProjects_1, project, branchName, buildId, build, totalBuilds, project;
|
|
66
66
|
return __generator(this, function (_a) {
|
|
67
67
|
switch (_a.label) {
|
|
68
68
|
case 0:
|
|
69
69
|
utils_1.Logger.logTask('Starting builds for consuming projects in TeamCity');
|
|
70
|
-
if (!(_options.targetBranchName && _options.projectIds)) return [3 /*break*/, 3];
|
|
71
|
-
utils_1.Logger.logMessage("Starting consuming project build for given target branch ".concat(_options.targetBranchName));
|
|
72
|
-
if (_options.projectIds.length > 1) {
|
|
73
|
-
utils_1.Logger.logError("More than one project found!");
|
|
74
|
-
return [2 /*return*/, false];
|
|
75
|
-
}
|
|
76
|
-
projectName = _options.projectIds[0];
|
|
77
|
-
return [4 /*yield*/, this.gitLabService.getProject(projectName)];
|
|
78
|
-
case 1:
|
|
79
|
-
project = _a.sent();
|
|
80
|
-
buildId = TeamCityBuildIDs_1.TeamCityBuildIds[project.id];
|
|
81
|
-
if (!buildId) {
|
|
82
|
-
utils_1.Logger.logWarning("Skipping build for ".concat(project.title, " as no Team City build ID has been specified"));
|
|
83
|
-
return [2 /*return*/, false];
|
|
84
|
-
}
|
|
85
|
-
return [4 /*yield*/, this.teamCityService.startBuild(buildId, _options.targetBranchName)];
|
|
86
|
-
case 2:
|
|
87
|
-
build = _a.sent();
|
|
88
|
-
utils_1.Logger.logInfo("[".concat(project.title, "]: ").concat(build.webUrl));
|
|
89
|
-
return [2 /*return*/, true];
|
|
90
|
-
case 3:
|
|
91
70
|
if (!_options.monorepoBranchName && !_options.milestone) {
|
|
92
71
|
utils_1.Logger.logError('Please provide either a milestone or branch name argument.');
|
|
93
72
|
return [2 /*return*/, false];
|
|
94
73
|
}
|
|
95
74
|
milestone = _options.milestone;
|
|
96
|
-
if (!!milestone) return [3 /*break*/,
|
|
75
|
+
if (!!milestone) return [3 /*break*/, 2];
|
|
97
76
|
utils_1.Logger.logInfo("Searching for a merge request in project \"monorepo\" with branch name \"".concat(_options.monorepoBranchName, "\"..."));
|
|
98
77
|
return [4 /*yield*/, this.gitLabService.getMilestoneByBranchName(utils_1.ProjectIds.MONOREPO_PROJECT_ID, _options.monorepoBranchName)];
|
|
99
|
-
case
|
|
78
|
+
case 1:
|
|
100
79
|
milestone = _a.sent();
|
|
101
|
-
_a.label =
|
|
102
|
-
case
|
|
80
|
+
_a.label = 2;
|
|
81
|
+
case 2:
|
|
103
82
|
if (!milestone)
|
|
104
83
|
return [2 /*return*/, false];
|
|
105
84
|
utils_1.Logger.logInfo("Found milestone \"".concat(milestone, "\". Proceeding to run builds for consuming projects..."));
|
|
@@ -110,7 +89,7 @@ var StartProjectBuildsTask = /** @class */ (function () {
|
|
|
110
89
|
milestone: milestone
|
|
111
90
|
};
|
|
112
91
|
return [4 /*yield*/, this.gitLabService.getProjects(options)];
|
|
113
|
-
case
|
|
92
|
+
case 3:
|
|
114
93
|
projects = _a.sent();
|
|
115
94
|
consumingProjects = projects.filter(function (p) { return p.id.toString() !== utils_1.ProjectIds.MONOREPO_PROJECT_ID; });
|
|
116
95
|
if (!consumingProjects.length) {
|
|
@@ -119,31 +98,31 @@ var StartProjectBuildsTask = /** @class */ (function () {
|
|
|
119
98
|
}
|
|
120
99
|
projectBuildMap = {};
|
|
121
100
|
_i = 0, consumingProjects_1 = consumingProjects;
|
|
122
|
-
_a.label =
|
|
123
|
-
case
|
|
124
|
-
if (!(_i < consumingProjects_1.length)) return [3 /*break*/,
|
|
101
|
+
_a.label = 4;
|
|
102
|
+
case 4:
|
|
103
|
+
if (!(_i < consumingProjects_1.length)) return [3 /*break*/, 8];
|
|
125
104
|
project = consumingProjects_1[_i];
|
|
126
105
|
return [4 /*yield*/, this.gitLabService.getReleaseBranchNameMilestone(project.id, options.milestone)];
|
|
127
|
-
case
|
|
106
|
+
case 5:
|
|
128
107
|
branchName = _a.sent();
|
|
129
108
|
if (!branchName) {
|
|
130
109
|
utils_1.Logger.logWarning("Release branch in project \"".concat(project.title, "\" with milestone \"").concat(options.milestone, "\" was not found. Skipping project..."));
|
|
131
|
-
return [3 /*break*/,
|
|
110
|
+
return [3 /*break*/, 7];
|
|
132
111
|
}
|
|
133
112
|
buildId = TeamCityBuildIDs_1.TeamCityBuildIds[project.id.toString()];
|
|
134
113
|
if (!buildId) {
|
|
135
114
|
utils_1.Logger.logWarning("Skipping build for ".concat(project.title, " as no Team City build ID has been specified"));
|
|
136
|
-
return [3 /*break*/,
|
|
115
|
+
return [3 /*break*/, 7];
|
|
137
116
|
}
|
|
138
117
|
return [4 /*yield*/, this.teamCityService.startBuild(buildId, branchName)];
|
|
139
|
-
case
|
|
118
|
+
case 6:
|
|
140
119
|
build = _a.sent();
|
|
141
120
|
projectBuildMap[project.title] = build;
|
|
142
|
-
_a.label =
|
|
143
|
-
case
|
|
121
|
+
_a.label = 7;
|
|
122
|
+
case 7:
|
|
144
123
|
_i++;
|
|
145
|
-
return [3 /*break*/,
|
|
146
|
-
case
|
|
124
|
+
return [3 /*break*/, 4];
|
|
125
|
+
case 8:
|
|
147
126
|
totalBuilds = Object.keys(projectBuildMap).length;
|
|
148
127
|
if (!totalBuilds) {
|
|
149
128
|
utils_1.Logger.logWarning("No releases found in consuming projects with milestone \"".concat(options.milestone, "\"."));
|
|
@@ -71,14 +71,12 @@ var services_1 = require("../services");
|
|
|
71
71
|
var utils_1 = require("../utils");
|
|
72
72
|
var ValidateTask = /** @class */ (function () {
|
|
73
73
|
function ValidateTask(gitLabService, slackService) {
|
|
74
|
-
// Flag to confirm that all Merge requests have been rolled over
|
|
75
|
-
this.rollOverAllMrs = true;
|
|
76
74
|
this.gitLabService = gitLabService;
|
|
77
75
|
this.slackService = slackService;
|
|
78
76
|
}
|
|
79
77
|
ValidateTask.prototype.run = function (options) {
|
|
80
78
|
return __awaiter(this, void 0, void 0, function () {
|
|
81
|
-
var projects, cont,
|
|
79
|
+
var projects, cont, _loop_1, this_1, _i, projects_1, project, threadLabel, statusCleanMessage;
|
|
82
80
|
return __generator(this, function (_a) {
|
|
83
81
|
switch (_a.label) {
|
|
84
82
|
case 0:
|
|
@@ -88,7 +86,6 @@ var ValidateTask = /** @class */ (function () {
|
|
|
88
86
|
projects = _a.sent();
|
|
89
87
|
utils_1.Logger.logMessage("Found ".concat(projects.length, " projects that need to be released"));
|
|
90
88
|
cont = true;
|
|
91
|
-
allCorrectTargetMrs = true;
|
|
92
89
|
_loop_1 = function (project) {
|
|
93
90
|
var hasSomeTags, groupedMRs, count, ready, wrongTargetMrs, nextVersion, message_1, issues;
|
|
94
91
|
return __generator(this, function (_b) {
|
|
@@ -105,10 +102,8 @@ var ValidateTask = /** @class */ (function () {
|
|
|
105
102
|
return [4 /*yield*/, this_1.getMRsTargetingWrongBranch(project, options.version)];
|
|
106
103
|
case 2:
|
|
107
104
|
wrongTargetMrs = _b.sent();
|
|
108
|
-
if (wrongTargetMrs.length)
|
|
105
|
+
if (wrongTargetMrs.length)
|
|
109
106
|
ready = false;
|
|
110
|
-
allCorrectTargetMrs = false;
|
|
111
|
-
}
|
|
112
107
|
if (!ready)
|
|
113
108
|
cont = false;
|
|
114
109
|
if (!ready) return [3 /*break*/, 4];
|
|
@@ -149,33 +144,16 @@ var ValidateTask = /** @class */ (function () {
|
|
|
149
144
|
_i++;
|
|
150
145
|
return [3 /*break*/, 2];
|
|
151
146
|
case 5:
|
|
152
|
-
if (!!cont) return [3 /*break*/,
|
|
147
|
+
if (!!cont) return [3 /*break*/, 8];
|
|
153
148
|
utils_1.Logger.logError("\nThis release is NOT READY to go out, here are the outstanding MRs: \n");
|
|
154
|
-
|
|
155
|
-
if (!options.nextMilestone) return [3 /*break*/, 7];
|
|
156
|
-
return [4 /*yield*/, this.gitLabService.getMilestone(options.nextMilestone)];
|
|
149
|
+
return [4 /*yield*/, this.notReadyMrsLog(projects, options.version, options.milestone, options.slackNotifier)];
|
|
157
150
|
case 6:
|
|
158
|
-
// No need for project ID to get milestone since it exists in ClickView Group
|
|
159
|
-
nextMilestone = _a.sent();
|
|
160
|
-
if (!nextMilestone) {
|
|
161
|
-
utils_1.Logger.logError("Invalid roll over milestone '".concat(options.nextMilestone, "'. Exiting!"));
|
|
162
|
-
return [2 /*return*/, false];
|
|
163
|
-
}
|
|
164
|
-
_a.label = 7;
|
|
165
|
-
case 7: return [4 /*yield*/, this.notReadyMrsLog(projects, options.version, options.milestone, options.slackNotifier, nextMilestone)];
|
|
166
|
-
case 8:
|
|
167
151
|
_a.sent();
|
|
168
|
-
return [4 /*yield*/, this.wrongTargetMrsLog(projects, options.version, options.milestone, options.slackNotifier
|
|
169
|
-
case
|
|
152
|
+
return [4 /*yield*/, this.wrongTargetMrsLog(projects, options.version, options.milestone, options.slackNotifier)];
|
|
153
|
+
case 7:
|
|
170
154
|
_a.sent();
|
|
171
|
-
// Check that all MRs rolled over and all MRs targeting dev or release before creating release
|
|
172
|
-
if (options.nextMilestone && this.rollOverAllMrs && allCorrectTargetMrs) {
|
|
173
|
-
return [2 /*return*/, true];
|
|
174
|
-
}
|
|
175
|
-
if (!this.rollOverAllMrs)
|
|
176
|
-
utils_1.Logger.logError('Some or all MRs did not get successfully rolled over. Check logs to find out which ones');
|
|
177
155
|
return [2 /*return*/, false];
|
|
178
|
-
case
|
|
156
|
+
case 8:
|
|
179
157
|
if (!options.slackNotifier) {
|
|
180
158
|
utils_1.Logger.logMessage('\nRelease is ready to go out. Not sending any slack notifications.');
|
|
181
159
|
return [2 /*return*/, true];
|
|
@@ -192,7 +170,7 @@ var ValidateTask = /** @class */ (function () {
|
|
|
192
170
|
statusMessage: '',
|
|
193
171
|
statusCleanMessage: statusCleanMessage
|
|
194
172
|
})];
|
|
195
|
-
case
|
|
173
|
+
case 9:
|
|
196
174
|
// Send formated status update in slack
|
|
197
175
|
_a.sent();
|
|
198
176
|
// Send success thread for MRs not targeting Dev
|
|
@@ -205,7 +183,7 @@ var ValidateTask = /** @class */ (function () {
|
|
|
205
183
|
statusMessage: '',
|
|
206
184
|
statusCleanMessage: statusCleanMessage
|
|
207
185
|
})];
|
|
208
|
-
case
|
|
186
|
+
case 10:
|
|
209
187
|
// Send formated status update in slack
|
|
210
188
|
_a.sent();
|
|
211
189
|
utils_1.Logger.logSuccess('\nRelease is ready to go out');
|
|
@@ -214,11 +192,11 @@ var ValidateTask = /** @class */ (function () {
|
|
|
214
192
|
});
|
|
215
193
|
});
|
|
216
194
|
};
|
|
217
|
-
ValidateTask.prototype.notReadyMrsLog = function (projects, version, milestone, slackNotifier
|
|
195
|
+
ValidateTask.prototype.notReadyMrsLog = function (projects, version, milestone, slackNotifier) {
|
|
218
196
|
return __awaiter(this, void 0, void 0, function () {
|
|
219
|
-
var allNotReadyMrs, emailListNotReadyMrs, _i, projects_2, project, notReadyMrs, groupedByUser, logMessageSlack,
|
|
220
|
-
return __generator(this, function (
|
|
221
|
-
switch (
|
|
197
|
+
var allNotReadyMrs, emailListNotReadyMrs, _i, projects_2, project, notReadyMrs, groupedByUser, logMessageSlack, key, name, authorEmail, _a, _b, mr, threadLabel, statusCleanMessage;
|
|
198
|
+
return __generator(this, function (_c) {
|
|
199
|
+
switch (_c.label) {
|
|
222
200
|
case 0:
|
|
223
201
|
allNotReadyMrs = [];
|
|
224
202
|
emailListNotReadyMrs = [];
|
|
@@ -230,55 +208,25 @@ var ValidateTask = /** @class */ (function () {
|
|
|
230
208
|
}
|
|
231
209
|
groupedByUser = lodash_1.default.groupBy(allNotReadyMrs, function (mr) { return mr.author; });
|
|
232
210
|
logMessageSlack = '';
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
utils_1.Logger.logMessage(name);
|
|
248
|
-
logMessageSlack += "".concat(name, ":\n");
|
|
249
|
-
_d = 0, _e = groupedByUser[key];
|
|
250
|
-
_f.label = 2;
|
|
251
|
-
case 2:
|
|
252
|
-
if (!(_d < _e.length)) return [3 /*break*/, 5];
|
|
253
|
-
mr = _e[_d];
|
|
254
|
-
utils_1.Logger.logMessage("- ".concat(mr.url));
|
|
255
|
-
logMessageSlack += "- ".concat(mr.url, "\n");
|
|
256
|
-
if (!nextMilestone) return [3 /*break*/, 4];
|
|
257
|
-
return [4 /*yield*/, this.updateMrMilestone(nextMilestone.id, milestone, mr)];
|
|
258
|
-
case 3:
|
|
259
|
-
updated = _f.sent();
|
|
260
|
-
if (updated) {
|
|
261
|
-
logMessageSlack += " -> MR has been rolled over from '".concat(milestone, "' to '").concat(nextMilestone.name, "' successfully\n");
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
logMessageSlack += " -> Failed to roll over milestone for this MR. Check logs for error.\n";
|
|
211
|
+
for (key in groupedByUser) {
|
|
212
|
+
name = key;
|
|
213
|
+
// Pretty sure this can't happen now 😅
|
|
214
|
+
if (!name || name === 'undefined')
|
|
215
|
+
name = 'No Author';
|
|
216
|
+
authorEmail = this.slackService.convertToEmailFormat(key);
|
|
217
|
+
emailListNotReadyMrs.push(authorEmail);
|
|
218
|
+
utils_1.Logger.logMessage(name);
|
|
219
|
+
logMessageSlack += "".concat(name, ":\n");
|
|
220
|
+
for (_a = 0, _b = groupedByUser[key]; _a < _b.length; _a++) {
|
|
221
|
+
mr = _b[_a];
|
|
222
|
+
utils_1.Logger.logMessage("- ".concat(mr.url));
|
|
223
|
+
logMessageSlack += "- ".concat(mr.url, "\n");
|
|
224
|
+
}
|
|
265
225
|
}
|
|
266
|
-
_f.label = 4;
|
|
267
|
-
case 4:
|
|
268
|
-
_d++;
|
|
269
|
-
return [3 /*break*/, 2];
|
|
270
|
-
case 5:
|
|
271
|
-
_c++;
|
|
272
|
-
return [3 /*break*/, 1];
|
|
273
|
-
case 6:
|
|
274
226
|
if (!slackNotifier)
|
|
275
227
|
return [2 /*return*/];
|
|
276
228
|
threadLabel = "".concat(milestone, " Open Mrs!");
|
|
277
229
|
statusCleanMessage = 'No outstanding Mrs!';
|
|
278
|
-
if (nextMilestone) {
|
|
279
|
-
threadLabel = "".concat(milestone, " merge requests rolled over to ").concat(nextMilestone.name, "!");
|
|
280
|
-
statusCleanMessage = 'There were no outstanding MRs for this release!';
|
|
281
|
-
}
|
|
282
230
|
// Send formated status update in slack
|
|
283
231
|
return [4 /*yield*/, this.slackService.sendSlackStatusMessage({
|
|
284
232
|
emailList: emailListNotReadyMrs,
|
|
@@ -286,15 +234,15 @@ var ValidateTask = /** @class */ (function () {
|
|
|
286
234
|
statusMessage: logMessageSlack,
|
|
287
235
|
statusCleanMessage: statusCleanMessage
|
|
288
236
|
})];
|
|
289
|
-
case
|
|
237
|
+
case 1:
|
|
290
238
|
// Send formated status update in slack
|
|
291
|
-
|
|
239
|
+
_c.sent();
|
|
292
240
|
return [2 /*return*/];
|
|
293
241
|
}
|
|
294
242
|
});
|
|
295
243
|
});
|
|
296
244
|
};
|
|
297
|
-
ValidateTask.prototype.wrongTargetMrsLog = function (projects, version, milestone, slackNotifier
|
|
245
|
+
ValidateTask.prototype.wrongTargetMrsLog = function (projects, version, milestone, slackNotifier) {
|
|
298
246
|
return __awaiter(this, void 0, void 0, function () {
|
|
299
247
|
var allWrongTargetMrs, emailListWrongTargetMrs, _i, projects_3, project, wrongTargetMrs, logAllWrongTargetMrs, groupedByUser, key, name, authorEmail, _a, _b, mr, threadLabel, statusCleanMessage;
|
|
300
248
|
return __generator(this, function (_c) {
|
|
@@ -340,8 +288,6 @@ var ValidateTask = /** @class */ (function () {
|
|
|
340
288
|
}
|
|
341
289
|
if (!slackNotifier)
|
|
342
290
|
return [2 /*return*/];
|
|
343
|
-
if (nextMilestone)
|
|
344
|
-
return [2 /*return*/];
|
|
345
291
|
threadLabel = "".concat(milestone, " MRs not targeting dev!");
|
|
346
292
|
statusCleanMessage = 'All MRs targeting dev!';
|
|
347
293
|
// Send formated status update in slack
|
|
@@ -386,27 +332,6 @@ var ValidateTask = /** @class */ (function () {
|
|
|
386
332
|
});
|
|
387
333
|
});
|
|
388
334
|
};
|
|
389
|
-
ValidateTask.prototype.updateMrMilestone = function (nextMilestoneId, milestone, mr) {
|
|
390
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
391
|
-
var updatedMilestone;
|
|
392
|
-
return __generator(this, function (_a) {
|
|
393
|
-
switch (_a.label) {
|
|
394
|
-
case 0: return [4 /*yield*/, this.gitLabService.updateMilestone(mr.projectId, mr.iid, nextMilestoneId)];
|
|
395
|
-
case 1:
|
|
396
|
-
updatedMilestone = _a.sent();
|
|
397
|
-
if (updatedMilestone) {
|
|
398
|
-
utils_1.Logger.logSuccess("MR have been rolled over to next milestone (".concat(milestone, " -> ").concat(updatedMilestone.name, ")"));
|
|
399
|
-
}
|
|
400
|
-
else {
|
|
401
|
-
utils_1.Logger.logError('Failed to update the milestone for merge request!');
|
|
402
|
-
this.rollOverAllMrs = false;
|
|
403
|
-
return [2 /*return*/, false];
|
|
404
|
-
}
|
|
405
|
-
return [2 /*return*/, true];
|
|
406
|
-
}
|
|
407
|
-
});
|
|
408
|
-
});
|
|
409
|
-
};
|
|
410
335
|
ValidateTask = __decorate([
|
|
411
336
|
(0, inversify_1.injectable)(),
|
|
412
337
|
__param(0, (0, inversify_1.inject)(types_1.SERVICES.GitLabService)),
|
package/package.json
CHANGED
package/dist/F1/Analytics Web.md
DELETED
package/dist/F1/AutoCaptions.md
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
# Code changes
|
|
3
|
-
- Move all amazon transcribe logic to `ClickView.AutoCaptions.Aws`
|
|
4
|
-
- Change `IAmazonTranscribeClient` to `ITranscriptionProcessor`. Closes CORE-1374
|
|
5
|
-
- Introduce new domain models instead of using the aws client models
|
|
6
|
-
- Now contains `TranscriptionSubtitle` which has the subtitle content as a string instead of returning urls
|
|
7
|
-
- `AmazonTranscribeClient` changes:
|
|
8
|
-
- Will now download the subtitle instead of leaving it up to `CaptionTaskProcessor`
|
|
9
|
-
- Moved CdnMapping call into this service as other processors need want to use the cdn for public access
|
|
10
|
-
|
|
11
|
-
- Add `Directory.Build.props` to control common properties
|
|
12
|
-
- nullable is now enabled for all projects
|
|
13
|
-
- Misc nullable fixes
|
|
14
|
-
- `LanguageHelper` changes
|
|
15
|
-
- Define a default language for when we return a default language. HashSet does not guarantee ordering so FIrst might not be whats expected
|
|
16
|
-
- Update build files to their latest versions
|
|
17
|
-
- Use the runtime docker image not aspnet as this is not an aspnet project
|
|
18
|
-
|
|
19
|
-
- Replace local master api client with `ClickView.Clients.Master`
|
|
20
|
-
|
|
21
|
-
- Update all packages to their latest versions
|
|
22
|
-
- Replace `Serilog.AspNetCore` with `Serilog.Extensions.Hosting` since we are not in an aspnetcore context
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
# Testing
|
|
26
|
-
- CORE-1374
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|