@soft-artel/ci 1.3.15 → 1.3.18
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/incrementBuild.d.ts +3 -0
- package/incrementBuild.d.ts.map +1 -0
- package/incrementBuild.js +44 -0
- package/incrementBuild.js.map +1 -0
- package/k8s/App.d.ts +22 -0
- package/k8s/App.d.ts.map +1 -0
- package/k8s/App.js +150 -0
- package/k8s/App.js.map +1 -0
- package/k8s/DockerImage.d.ts +15 -0
- package/k8s/DockerImage.d.ts.map +1 -0
- package/k8s/DockerImage.js +112 -0
- package/k8s/DockerImage.js.map +1 -0
- package/k8s/Node.d.ts +17 -0
- package/k8s/Node.d.ts.map +1 -0
- package/k8s/Node.js +103 -0
- package/k8s/Node.js.map +1 -0
- package/k8s-build.d.ts +3 -0
- package/k8s-build.d.ts.map +1 -0
- package/k8s-build.js +125 -0
- package/k8s-build.js.map +1 -0
- package/k8s-deploy.d.ts +3 -0
- package/k8s-deploy.d.ts.map +1 -0
- package/k8s-deploy.js +124 -0
- package/k8s-deploy.js.map +1 -0
- package/libs/Exception.d.ts +5 -0
- package/libs/Exception.d.ts.map +1 -0
- package/libs/Exception.js +13 -0
- package/libs/Exception.js.map +1 -0
- package/libs/Git.d.ts +44 -0
- package/libs/Git.d.ts.map +1 -0
- package/libs/Git.js +161 -0
- package/libs/Git.js.map +1 -0
- package/libs/Gitlab.d.ts +12 -0
- package/libs/Gitlab.d.ts.map +1 -0
- package/libs/Gitlab.js +78 -0
- package/libs/Gitlab.js.map +1 -0
- package/libs/Jira.d.ts +31 -0
- package/libs/Jira.d.ts.map +1 -0
- package/libs/Jira.js +157 -0
- package/libs/Jira.js.map +1 -0
- package/libs/Project.d.ts +39 -0
- package/libs/Project.d.ts.map +1 -0
- package/libs/Project.js +177 -0
- package/libs/Project.js.map +1 -0
- package/libs/Reporter.d.ts +34 -0
- package/libs/Reporter.d.ts.map +1 -0
- package/libs/Reporter.js +131 -0
- package/libs/Reporter.js.map +1 -0
- package/libs/Shell.d.ts +39 -0
- package/libs/Shell.d.ts.map +1 -0
- package/libs/Shell.js +107 -0
- package/libs/Shell.js.map +1 -0
- package/libs/helpers.d.ts +29 -0
- package/libs/helpers.d.ts.map +1 -0
- package/libs/helpers.js +101 -0
- package/libs/helpers.js.map +1 -0
- package/libs/prototype.d.ts +9 -0
- package/libs/prototype.d.ts.map +1 -0
- package/libs/prototype.js +186 -0
- package/libs/prototype.js.map +1 -0
- package/package.json +4 -3
- package/xcode.d.ts +3 -0
- package/xcode.d.ts.map +1 -0
- package/xcode.js +163 -0
- package/xcode.js.map +1 -0
- package/.env +0 -21
- package/.eslintcache +0 -1
- package/.eslintignore +0 -4
- package/.eslintrc +0 -246
- package/.gitlab-ci.yml +0 -12
- package/_publish.sh +0 -24
- package/k8s/App.ts +0 -200
- package/k8s/DockerImage.ts +0 -147
- package/k8s/Node.ts +0 -119
- package/k8s-build.ts +0 -175
- package/k8s-deploy.ts +0 -174
- package/libs/Exception.ts +0 -19
- package/libs/Git.ts +0 -199
- package/libs/Gitlab.ts +0 -86
- package/libs/Jira.ts +0 -239
- package/libs/Project.ts +0 -215
- package/libs/Reporter.ts +0 -181
- package/libs/Shell.ts +0 -119
- package/libs/helpers.ts +0 -114
- package/libs/prototype.ts +0 -313
- package/tsconfig.json +0 -24
- package/upd_pkg.ts +0 -21
- package/xcode.ts +0 -226
package/k8s-build.js
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
require("./libs/prototype");
|
|
17
|
+
const commander_1 = require("commander");
|
|
18
|
+
const Shell_1 = __importDefault(require("./libs/Shell"));
|
|
19
|
+
const Jira_1 = require("./libs/Jira");
|
|
20
|
+
const Git_1 = __importDefault(require("./libs/Git"));
|
|
21
|
+
const Project_1 = require("./libs/Project");
|
|
22
|
+
const Reporter_1 = require("./libs/Reporter");
|
|
23
|
+
const helpers_1 = require("./libs/helpers");
|
|
24
|
+
const DockerImage_1 = require("./k8s/DockerImage");
|
|
25
|
+
const App_1 = require("./k8s/App");
|
|
26
|
+
const ENV = process.env;
|
|
27
|
+
function main() {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
commander_1.program
|
|
30
|
+
.option('--path <project dir>', 'Path to project directory [default - current]')
|
|
31
|
+
.option('--no-prebuild', 'Skip prebuild phase')
|
|
32
|
+
.option('--no-changelog', 'Skip create gitlog')
|
|
33
|
+
.option('--no-gittag', 'Skip create and push new git tag')
|
|
34
|
+
.action(() => __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
let reporter;
|
|
36
|
+
try {
|
|
37
|
+
(0, helpers_1.checkEnvVars)(['CI_STAGES', 'REPORTER']);
|
|
38
|
+
const opts = commander_1.program.opts() || {};
|
|
39
|
+
const prj = new Project_1.Project(opts.path);
|
|
40
|
+
const reporterOpts = JSON.parse(ENV.REPORTER);
|
|
41
|
+
reporterOpts.postTitle = opts.scheme;
|
|
42
|
+
const pkg = JSON.parse((yield Shell_1.default.cat(prj.rootPath + '/package.json')) || 'no package.json file!');
|
|
43
|
+
const pkgBuild = Number(pkg.version.split('.')[2]);
|
|
44
|
+
prj.build = prj.build < pkgBuild ? pkgBuild : prj.build;
|
|
45
|
+
prj.version = `${pkg.version.split('.').splice(0, 2).join('.')}.${prj.build}`;
|
|
46
|
+
if (!pkg.ci) {
|
|
47
|
+
throw new Error('No ci config in package.json file!');
|
|
48
|
+
}
|
|
49
|
+
reporter = new Reporter_1.Reporter(prj, reporterOpts);
|
|
50
|
+
const config = pkg.ci;
|
|
51
|
+
yield run(prj, reporter, opts, config);
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
helpers_1.log.error(e);
|
|
55
|
+
if (reporter) {
|
|
56
|
+
try {
|
|
57
|
+
yield reporter.fail(e);
|
|
58
|
+
}
|
|
59
|
+
catch (e2) {
|
|
60
|
+
helpers_1.log.error(e2);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
}));
|
|
66
|
+
yield commander_1.program.parseAsync(process.argv);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
main();
|
|
70
|
+
function run(prj, reporter, opts, config) {
|
|
71
|
+
var _a;
|
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
const release = opts.changelog ? yield Jira_1.Jira.resolve(prj) : { tasks: [], bugs: [], changelog: '' };
|
|
74
|
+
Shell_1.default.cd(prj.rootPath);
|
|
75
|
+
prj.incrementBuild();
|
|
76
|
+
yield reporter.startBuild();
|
|
77
|
+
helpers_1.log.info(`1. build ${prj.stage}`);
|
|
78
|
+
yield reporter.send(` + Load apps and check updated`);
|
|
79
|
+
helpers_1.log.info(`2. Load apps and check updated`);
|
|
80
|
+
const updateFiles = yield Git_1.default.getDiffFiles();
|
|
81
|
+
helpers_1.log.info(`\n\nUPDATED FILES:\n$`, updateFiles);
|
|
82
|
+
const { apps, updated } = yield (0, App_1.getApps)(prj, config, updateFiles);
|
|
83
|
+
if (!updated) {
|
|
84
|
+
helpers_1.log.info('SKIP BUILD: NO Apps to update!');
|
|
85
|
+
yield reporter.send(`⏩ SKIP - no apps to update\n ${updateFiles.join('\n ')}`, ' ');
|
|
86
|
+
process.exit(0);
|
|
87
|
+
}
|
|
88
|
+
yield reporter.send(` ~ <b>${updated.join('</b>\n ~ <b>')}</b>`);
|
|
89
|
+
yield reporter.send(` + Write K8s manifests`);
|
|
90
|
+
helpers_1.log.info(`3. Write K8s manifests`);
|
|
91
|
+
const image = new DockerImage_1.DockerImage(prj.rootPath, prj.shortVersion, prj.build);
|
|
92
|
+
helpers_1.log.dbg(`DockerImage`, image);
|
|
93
|
+
for (const appName of updated) {
|
|
94
|
+
yield ((_a = apps[appName]) === null || _a === void 0 ? void 0 : _a.writeManifest(prj, image));
|
|
95
|
+
}
|
|
96
|
+
if (opts.prebuild) {
|
|
97
|
+
yield reporter.send(` + Test and distrib`);
|
|
98
|
+
helpers_1.log.dbg(`4. Pre build`);
|
|
99
|
+
yield image.prebuild();
|
|
100
|
+
}
|
|
101
|
+
yield reporter.send(` + Build docker image: ${image.tag}`);
|
|
102
|
+
helpers_1.log.dbg(`5. Build`);
|
|
103
|
+
yield image.build();
|
|
104
|
+
yield reporter.send(` + Push docker image to registry`);
|
|
105
|
+
helpers_1.log.dbg(`6. Docker push`);
|
|
106
|
+
yield image.push();
|
|
107
|
+
yield reporter.send(` + Save current build: ${prj.build}`);
|
|
108
|
+
helpers_1.log.dbg(`7. Put current build:${prj.build} to GitLab`);
|
|
109
|
+
yield prj.saveGitLabBuild();
|
|
110
|
+
if (opts.changelog) {
|
|
111
|
+
yield prj.updateChangeLog(release.changelog);
|
|
112
|
+
yield reporter.send(` + Update <a href=\"${prj.url}/-/blob/${ENV.CI_COMMIT_REF_NAME || 'dev'}/CHANGELOG.md\">changelog</a>.`);
|
|
113
|
+
}
|
|
114
|
+
yield Git_1.default.setOrigin();
|
|
115
|
+
yield Shell_1.default.exec(`git add -A`, { ignoreError: true, silent: false });
|
|
116
|
+
yield Shell_1.default.exec(`git commit -a -m "v${prj.version}"`, { ignoreError: true, silent: false });
|
|
117
|
+
yield Git_1.default.push(ENV.CI_COMMIT_REF_NAME || 'dev');
|
|
118
|
+
if (opts.gittag) {
|
|
119
|
+
yield reporter.send(` + Git tag new version`);
|
|
120
|
+
yield Git_1.default.makeTag(prj.version);
|
|
121
|
+
}
|
|
122
|
+
yield reporter.send(`\n✅ <b>${reporter.title}</b> builded!`, ' ');
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=k8s-build.js.map
|
package/k8s-build.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8s-build.js","sourceRoot":"","sources":["../k8s-build.ts"],"names":[],"mappings":"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"}
|
package/k8s-deploy.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8s-deploy.d.ts","sourceRoot":"","sources":["../k8s-deploy.ts"],"names":[],"mappings":";AACA,OAAO,kBAAkB,CAAC"}
|
package/k8s-deploy.js
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
require("./libs/prototype");
|
|
17
|
+
const commander_1 = require("commander");
|
|
18
|
+
const Shell_1 = __importDefault(require("./libs/Shell"));
|
|
19
|
+
const Jira_1 = require("./libs/Jira");
|
|
20
|
+
const Git_1 = __importDefault(require("./libs/Git"));
|
|
21
|
+
const Project_1 = require("./libs/Project");
|
|
22
|
+
const Reporter_1 = require("./libs/Reporter");
|
|
23
|
+
const helpers_1 = require("./libs/helpers");
|
|
24
|
+
const Node_1 = require("./k8s/Node");
|
|
25
|
+
const ENV = process.env;
|
|
26
|
+
function main() {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
commander_1.program
|
|
29
|
+
.option('--path <project dir>', 'Path to project directory [default - current]')
|
|
30
|
+
.option('--stage <stage>', 'Deploy manifests to K8s <stage>')
|
|
31
|
+
.option('--no-changelog', 'Skip create gitlog')
|
|
32
|
+
.option('--no-gitpush', 'Skip pushing to stage branch after deploy')
|
|
33
|
+
.option('--debug', 'Output extra debugging info')
|
|
34
|
+
.action(() => __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
let reporter;
|
|
36
|
+
try {
|
|
37
|
+
(0, helpers_1.checkEnvVars)(['CI_STAGES', 'REPORTER']);
|
|
38
|
+
const opts = commander_1.program.opts() || {};
|
|
39
|
+
const prj = new Project_1.Project(opts.path);
|
|
40
|
+
const reporterOpts = JSON.parse(ENV.REPORTER);
|
|
41
|
+
reporterOpts.postTitle = opts.scheme;
|
|
42
|
+
const pkg = JSON.parse((yield Shell_1.default.cat(prj.rootPath + '/package.json')) || 'no package.json file!');
|
|
43
|
+
const pkgBuild = Number(pkg.version.split('.')[2]);
|
|
44
|
+
prj.build = prj.build < pkgBuild ? pkgBuild : prj.build;
|
|
45
|
+
prj.version = `${pkg.version.split('.').splice(0, 2).join('.')}.${prj.build}`;
|
|
46
|
+
reporter = new Reporter_1.Reporter(prj, reporterOpts);
|
|
47
|
+
yield run(prj, reporter, opts);
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
helpers_1.log.error(e);
|
|
51
|
+
if (reporter) {
|
|
52
|
+
try {
|
|
53
|
+
yield reporter.fail(e);
|
|
54
|
+
}
|
|
55
|
+
catch (e2) {
|
|
56
|
+
helpers_1.log.error(e2);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
61
|
+
}));
|
|
62
|
+
yield commander_1.program.parseAsync(process.argv);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
main();
|
|
66
|
+
function run(prj, reporter, opts) {
|
|
67
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
const release = opts.changelog ? yield Jira_1.Jira.resolve(prj) : { tasks: [], bugs: [], changelog: '' };
|
|
69
|
+
const stage = opts.stage;
|
|
70
|
+
prj.stage = stage;
|
|
71
|
+
yield reporter.startDeploy(stage);
|
|
72
|
+
const node = new Node_1.Node(stage);
|
|
73
|
+
const k8s_dir = `${prj.rootPath}/_k8s/${stage}/`;
|
|
74
|
+
Shell_1.default.cd(k8s_dir);
|
|
75
|
+
const deployedApps = {};
|
|
76
|
+
const k8s_files = yield Shell_1.default.ls(k8s_dir);
|
|
77
|
+
try {
|
|
78
|
+
for (const k8s_file of k8s_files) {
|
|
79
|
+
const appName = k8s_file.replace('.yml', '');
|
|
80
|
+
const status = yield node.apply(`${k8s_dir}/${k8s_file}`, appName);
|
|
81
|
+
let msg = '';
|
|
82
|
+
if (status.valid) {
|
|
83
|
+
deployedApps[appName] = status.msg;
|
|
84
|
+
msg = ` + <b>${appName}</b>`;
|
|
85
|
+
yield reporter.send(msg);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
msg = ` ❌ <b>${appName}</b> yaml is invalid!\n${status.msg}`;
|
|
89
|
+
yield reporter.send(msg);
|
|
90
|
+
throw new Error(`FAIL: Deployment app: ${appName}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
yield node.status(reporter);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
if (Object.keys(deployedApps).length > 0) {
|
|
97
|
+
helpers_1.log.error('FAIL: Deployments to rollout', Object.keys(deployedApps));
|
|
98
|
+
yield reporter.send(` 🚫 <b>APPLAY FAIL</b>: Rollout all deployed apps`);
|
|
99
|
+
for (const appName of Object.keys(deployedApps)) {
|
|
100
|
+
yield node.exec(`rollout undo deployment/${appName}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
yield node.status(reporter);
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
if (opts.gitpush) {
|
|
107
|
+
yield Git_1.default.push(stage);
|
|
108
|
+
}
|
|
109
|
+
yield reporter.send(` + Save ${prj.stage} -> ${prj.version} to GitLab`);
|
|
110
|
+
yield prj.saveGitLabStagesVersions();
|
|
111
|
+
if (opts.changelog) {
|
|
112
|
+
yield reporter.send(` + Resolved tasks:${release.tasks.length}, bugs: ${release.bugs.length}`);
|
|
113
|
+
const bugsDeployed = yield Jira_1.Jira.moveBugsAsDeployed(release.bugs);
|
|
114
|
+
if (bugsDeployed.length > 0) {
|
|
115
|
+
yield reporter.send(` + Deployed ${bugsDeployed.length} bugs.`);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
yield reporter.send(` - Deploy bugs. [SKIPED]`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
yield reporter.release(release.changelog);
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=k8s-deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8s-deploy.js","sourceRoot":"","sources":["../k8s-deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Exception.d.ts","sourceRoot":"","sources":["../../libs/Exception.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAU,SAAQ,KAAK;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBAK5B,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAW7B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Exception = void 0;
|
|
4
|
+
class Exception extends Error {
|
|
5
|
+
constructor(message, params) {
|
|
6
|
+
super();
|
|
7
|
+
this.message = message;
|
|
8
|
+
this.params = params;
|
|
9
|
+
Object.setPrototypeOf(this, Exception.prototype);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.Exception = Exception;
|
|
13
|
+
//# sourceMappingURL=Exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Exception.js","sourceRoot":"","sources":["../../libs/Exception.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAU,SAAQ,KAAK;IAKnC,YACC,OAAe,EACf,MAA4B;QAC5B,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAKrB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;CACD;AAlBD,8BAkBC"}
|
package/libs/Git.d.ts
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
declare class Commit {
|
|
2
|
+
date: Date;
|
|
3
|
+
sha: string;
|
|
4
|
+
msg: string;
|
|
5
|
+
name: string;
|
|
6
|
+
email: string;
|
|
7
|
+
constructor(row: string, delimetr: string);
|
|
8
|
+
get issuesKeys(): RegExpMatchArray;
|
|
9
|
+
}
|
|
10
|
+
declare function setOrigin(opts?: {
|
|
11
|
+
url?: string;
|
|
12
|
+
jobId?: number;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
declare function push(branch: string): Promise<void>;
|
|
15
|
+
declare function makeTag(version: string): Promise<void>;
|
|
16
|
+
declare function getTags(limit?: number, mask?: RegExp): Promise<string[]>;
|
|
17
|
+
declare function lastTag(): Promise<string | undefined>;
|
|
18
|
+
declare function existTag(version: string): Promise<string | undefined>;
|
|
19
|
+
declare function getCommitsAndIssues(opt: {
|
|
20
|
+
onlyJira?: boolean;
|
|
21
|
+
limit?: number;
|
|
22
|
+
fromTag: string;
|
|
23
|
+
toTag: string;
|
|
24
|
+
}): Promise<{
|
|
25
|
+
commits: Record<string, any>;
|
|
26
|
+
issues: Record<string, any>;
|
|
27
|
+
}>;
|
|
28
|
+
declare function getDiffFiles(fromTag?: string, opt?: {
|
|
29
|
+
silent: boolean;
|
|
30
|
+
ignoreError: boolean;
|
|
31
|
+
}): Promise<string[]>;
|
|
32
|
+
declare const _default: {
|
|
33
|
+
Commit: typeof Commit;
|
|
34
|
+
setOrigin: typeof setOrigin;
|
|
35
|
+
push: typeof push;
|
|
36
|
+
makeTag: typeof makeTag;
|
|
37
|
+
lastTag: typeof lastTag;
|
|
38
|
+
existTag: typeof existTag;
|
|
39
|
+
getTags: typeof getTags;
|
|
40
|
+
getCommitsAndIssues: typeof getCommitsAndIssues;
|
|
41
|
+
getDiffFiles: typeof getDiffFiles;
|
|
42
|
+
};
|
|
43
|
+
export default _default;
|
|
44
|
+
//# sourceMappingURL=Git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Git.d.ts","sourceRoot":"","sources":["../../libs/Git.ts"],"names":[],"mappings":"AAYA,cAAM,MAAM;IAEX,IAAI,OAAgD;IACpD,GAAG,SAA6B;IAChC,GAAG,SAAiC;IACpC,IAAI,SAA+B;IACnC,KAAK,SAA8B;gBAEvB,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAczC,IAAI,UAAU,qBAGb;CAED;AAKD,iBAAe,SAAS,CAAC,IAAI,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAM,iBAYlE;AAID,iBAAe,IAAI,CAAC,MAAM,EAAE,MAAM,iBAIjC;AAID,iBAAe,OAAO,CAAC,OAAO,EAAE,MAAM,iBAIrC;AAID,iBAAe,OAAO,CAAC,KAAK,SAAO,EAAE,IAAI,SAA0B,qBAuBlE;AAID,iBAAe,OAAO,gCAMrB;AAID,iBAAe,QAAQ,CAAC,OAAO,EAAE,MAAM,+BAQtC;AAID,iBAAe,mBAAmB,CAAC,GAAG,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC;aAKnF,OAAO,MAAM,EAAE,GAAG,CAAC;YAAU,OAAO,MAAM,EAAE,GAAG,CAAC;GAuCzE;AAID,iBAAe,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG;;;CAAsC,qBAYtF;;;;;;;;;;;;AAID,wBAUE"}
|
package/libs/Git.js
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const Shell_1 = __importDefault(require("./Shell"));
|
|
16
|
+
const ENV = process.env;
|
|
17
|
+
const GITLAB_PASS = ENV.GITLAB_PASS;
|
|
18
|
+
class Commit {
|
|
19
|
+
constructor(row, delimetr) {
|
|
20
|
+
this.date = new Date(ENV.CI_COMMIT_TIMESTAMP || 0 * 1);
|
|
21
|
+
this.sha = ENV.CI_COMMIT_SHA || '';
|
|
22
|
+
this.msg = ENV.CI_COMMIT_MESSAGE || '';
|
|
23
|
+
this.name = ENV.GITLAB_USER_NAME || '';
|
|
24
|
+
this.email = ENV.CI_COMMIT_AUTHOR || '';
|
|
25
|
+
if (!row || !delimetr) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const cols = row.split(delimetr);
|
|
29
|
+
this.date = new Date(Date.parse(cols[3]));
|
|
30
|
+
this.sha = cols[0];
|
|
31
|
+
this.email = cols[2];
|
|
32
|
+
this.name = cols[1];
|
|
33
|
+
this.msg = cols[4];
|
|
34
|
+
}
|
|
35
|
+
get issuesKeys() {
|
|
36
|
+
const matchedIssues = this.msg.match(/[A-Z0-9]+-\d+/g);
|
|
37
|
+
return !matchedIssues || matchedIssues.length === 0 ? [] : matchedIssues;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function setOrigin(opts = {}) {
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
if (!opts.jobId && !ENV.CI_JOB_ID) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
let url = opts.url || ENV.CI_PROJECT_URL || '';
|
|
46
|
+
url = url.replace('https://', `https://gitlab:${GITLAB_PASS}@`);
|
|
47
|
+
yield Shell_1.default.exec(`git remote set-url --push origin ${url}.git`);
|
|
48
|
+
yield Shell_1.default.exec(`git remote set-url origin ${url}.git`);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function push(branch) {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
yield setOrigin();
|
|
54
|
+
yield Shell_1.default.exec(`git pull --ff origin ${branch}`);
|
|
55
|
+
yield Shell_1.default.execRepeat(`git push origin HEAD:${branch}`);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function makeTag(version) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const tag = `v${version}`;
|
|
61
|
+
yield Shell_1.default.exec(`git tag --force "${tag}"`);
|
|
62
|
+
yield Shell_1.default.execRepeat(`git push --force origin ${tag}`);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function getTags(limit = 1000, mask = /v[\d]+\.[\d]+\.[\d]+$/) {
|
|
66
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
+
yield Shell_1.default.exec(`git fetch -t`, { ignoreError: true });
|
|
68
|
+
const tagsStr = yield Shell_1.default.exec('git tag | sort --version-sort', { silent: true, ignoreError: true });
|
|
69
|
+
let list = tagsStr.split('\n').filter((f) => f.length > 2);
|
|
70
|
+
list = list.length > 0 ? list.reverse() : [tagsStr];
|
|
71
|
+
const tags = [];
|
|
72
|
+
let i = 1;
|
|
73
|
+
for (const tag of list) {
|
|
74
|
+
if (tag === '' || mask && (mask.exec(tag)) === null) {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
tags.push(tag);
|
|
78
|
+
i++;
|
|
79
|
+
if (i >= limit) {
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return tags;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
function lastTag() {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
const list = yield getTags(1);
|
|
89
|
+
if (list && Array.isArray(list) && list.length > 0) {
|
|
90
|
+
return list[0];
|
|
91
|
+
}
|
|
92
|
+
return undefined;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
function existTag(version) {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
const list = yield getTags(100);
|
|
98
|
+
if (list && Array.isArray(list) && list.includes(`v${version}`)) {
|
|
99
|
+
return `v${version}`;
|
|
100
|
+
}
|
|
101
|
+
return undefined;
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
function getCommitsAndIssues(opt) {
|
|
105
|
+
var _a, _b;
|
|
106
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
107
|
+
opt.onlyJira = (_a = opt.onlyJira) !== null && _a !== void 0 ? _a : true;
|
|
108
|
+
opt.limit = (_b = opt.limit) !== null && _b !== void 0 ? _b : 10;
|
|
109
|
+
const result = { commits: {}, issues: {} };
|
|
110
|
+
const d = '#!|!#';
|
|
111
|
+
const from = opt.fromTag;
|
|
112
|
+
const to = opt.toTag || '';
|
|
113
|
+
const par = `${from}..${from !== '' && to === '' ? 'HEAD' : to}`;
|
|
114
|
+
const commits = yield Shell_1.default.exec(`git log ${par !== '..' ? par : ''} --pretty='format:%H${d}%cN${d}%cE${d}%ci${d}%s' --max-count=${opt.limit}`, { silent: true });
|
|
115
|
+
if (!commits || commits.includes(d) === false) {
|
|
116
|
+
return result;
|
|
117
|
+
}
|
|
118
|
+
let arr = commits.split('\n');
|
|
119
|
+
if (arr.length === 0) {
|
|
120
|
+
arr = [commits];
|
|
121
|
+
}
|
|
122
|
+
for (const row of arr) {
|
|
123
|
+
const commit = new Commit(row, d);
|
|
124
|
+
const issuesKeys = commit.issuesKeys;
|
|
125
|
+
if (opt.onlyJira && issuesKeys.length === 0) {
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
result.commits[commit.sha] = commit;
|
|
129
|
+
for (const key of issuesKeys) {
|
|
130
|
+
const issue = result.issues[key] || [];
|
|
131
|
+
issue.push(commit.sha);
|
|
132
|
+
result.issues[key] = issue;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return result;
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
function getDiffFiles(fromTag, opt = { silent: true, ignoreError: true }) {
|
|
139
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
140
|
+
const from = fromTag || (yield lastTag());
|
|
141
|
+
const diffCmd = from && from !== '' ? `git diff --name-only HEAD ${from}` : "find . -not -path '*/_*' -not -path '*/\.*' -not -path '*/node_modules*' -type d -maxdepth 2";
|
|
142
|
+
const diffStr = (yield Shell_1.default.exec(diffCmd, opt)) || '';
|
|
143
|
+
let arr = diffStr.split('\n');
|
|
144
|
+
if (arr.length === 0) {
|
|
145
|
+
arr = [diffStr];
|
|
146
|
+
}
|
|
147
|
+
return arr.filter((f) => f !== '').sort();
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
exports.default = {
|
|
151
|
+
Commit,
|
|
152
|
+
setOrigin,
|
|
153
|
+
push,
|
|
154
|
+
makeTag,
|
|
155
|
+
lastTag,
|
|
156
|
+
existTag,
|
|
157
|
+
getTags,
|
|
158
|
+
getCommitsAndIssues,
|
|
159
|
+
getDiffFiles,
|
|
160
|
+
};
|
|
161
|
+
//# sourceMappingURL=Git.js.map
|
package/libs/Git.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Git.js","sourceRoot":"","sources":["../../libs/Git.ts"],"names":[],"mappings":"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"}
|
package/libs/Gitlab.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
declare class Gitlab {
|
|
2
|
+
privateToken: string;
|
|
3
|
+
configVarName: string;
|
|
4
|
+
projectId: number;
|
|
5
|
+
url: string;
|
|
6
|
+
constructor(privateToken: string, projectId: number, configGitlabUrl?: string, configVarName?: string);
|
|
7
|
+
downloadConfig(): Promise<any>;
|
|
8
|
+
uploadConfig(config: Record<string, any>): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: Gitlab;
|
|
11
|
+
export default _default;
|
|
12
|
+
//# sourceMappingURL=Gitlab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Gitlab.d.ts","sourceRoot":"","sources":["../../libs/Gitlab.ts"],"names":[],"mappings":"AAOA,cAAM,MAAM;IAEX,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;gBAEA,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,SAAkC,EAAE,aAAa,SAAW;IAQ1H,cAAc;IA8Bd,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAa9C;;AAoBD,wBAA4F"}
|
package/libs/Gitlab.js
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const axios_1 = __importDefault(require("axios"));
|
|
16
|
+
const Exception_1 = require("../libs/Exception");
|
|
17
|
+
const helpers_1 = require("../libs/helpers");
|
|
18
|
+
class Gitlab {
|
|
19
|
+
constructor(privateToken, projectId, configGitlabUrl = 'https://gitlab.soft-artel.com', configVarName = 'CONFIG') {
|
|
20
|
+
this.privateToken = privateToken;
|
|
21
|
+
this.projectId = projectId;
|
|
22
|
+
this.configVarName = configVarName;
|
|
23
|
+
this.url = `${configGitlabUrl}/api/v4/projects/${this.projectId}/variables/${configVarName}`;
|
|
24
|
+
}
|
|
25
|
+
downloadConfig() {
|
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
try {
|
|
28
|
+
const resp = yield (0, axios_1.default)({
|
|
29
|
+
method: 'GET', timeout: 600, url: this.url, headers: { 'PRIVATE-TOKEN': this.privateToken },
|
|
30
|
+
});
|
|
31
|
+
return JSON.parse(resp.data.value);
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
const errTitle = `CONFIG ERR: GitLab project [id:${this.projectId}] has not`;
|
|
35
|
+
if (e.response && (e.response.status === 401 || e.response.status === 403)) {
|
|
36
|
+
const err = new Exception_1.Exception(`${errTitle} access, HTTP-401`);
|
|
37
|
+
err.params = e.config;
|
|
38
|
+
throw err;
|
|
39
|
+
}
|
|
40
|
+
if (e.response && e.response.status === 404) {
|
|
41
|
+
const err = new Exception_1.Exception(`${errTitle} CI VARIABLE: '${this.configVarName}'`);
|
|
42
|
+
err.params = e.config;
|
|
43
|
+
throw err;
|
|
44
|
+
}
|
|
45
|
+
e.request = '...';
|
|
46
|
+
e.connection = '...';
|
|
47
|
+
throw e;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
uploadConfig(config) {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
const resp = yield (0, axios_1.default)({
|
|
54
|
+
method: 'PUT', timeout: 600, url: this.url,
|
|
55
|
+
headers: { 'PRIVATE-TOKEN': this.privateToken },
|
|
56
|
+
data: { value: JSON.stringify(config, null, 3) },
|
|
57
|
+
});
|
|
58
|
+
if (resp.status !== 200) {
|
|
59
|
+
console.error(resp);
|
|
60
|
+
throw new Error('CONFIG ERR: GitLab update VAR - HTTP' + resp.status);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const ENV = process.env;
|
|
66
|
+
const privateToken = ENV.GITLAB_PASS;
|
|
67
|
+
const projectId = ENV.CI_PROJECT_ID;
|
|
68
|
+
(0, helpers_1.checkVarsExisting)([{
|
|
69
|
+
field: privateToken,
|
|
70
|
+
exceptionMessage: 'GITLAB_PASS must be provided',
|
|
71
|
+
}, {
|
|
72
|
+
field: projectId,
|
|
73
|
+
exceptionMessage: 'CI_PROJECT_ID must be provided',
|
|
74
|
+
}]);
|
|
75
|
+
const configGitlabUrl = ENV.CONFIG_GITLAB_URL;
|
|
76
|
+
const configVarName = ENV.CONFIG_VAR_NAME;
|
|
77
|
+
exports.default = new Gitlab(privateToken, Number(projectId), configGitlabUrl, configVarName);
|
|
78
|
+
//# sourceMappingURL=Gitlab.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Gitlab.js","sourceRoot":"","sources":["../../libs/Gitlab.ts"],"names":[],"mappings":"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"}
|