@soft-artel/ci 1.3.15 → 1.3.16

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.
Files changed (88) hide show
  1. package/k8s/App.d.ts +22 -0
  2. package/k8s/App.d.ts.map +1 -0
  3. package/k8s/App.js +150 -0
  4. package/k8s/App.js.map +1 -0
  5. package/k8s/DockerImage.d.ts +15 -0
  6. package/k8s/DockerImage.d.ts.map +1 -0
  7. package/k8s/DockerImage.js +112 -0
  8. package/k8s/DockerImage.js.map +1 -0
  9. package/k8s/Node.d.ts +17 -0
  10. package/k8s/Node.d.ts.map +1 -0
  11. package/k8s/Node.js +103 -0
  12. package/k8s/Node.js.map +1 -0
  13. package/k8s-build.d.ts +3 -0
  14. package/k8s-build.d.ts.map +1 -0
  15. package/k8s-build.js +125 -0
  16. package/k8s-build.js.map +1 -0
  17. package/k8s-deploy.d.ts +3 -0
  18. package/k8s-deploy.d.ts.map +1 -0
  19. package/k8s-deploy.js +124 -0
  20. package/k8s-deploy.js.map +1 -0
  21. package/libs/Exception.d.ts +5 -0
  22. package/libs/Exception.d.ts.map +1 -0
  23. package/libs/Exception.js +13 -0
  24. package/libs/Exception.js.map +1 -0
  25. package/libs/Git.d.ts +44 -0
  26. package/libs/Git.d.ts.map +1 -0
  27. package/libs/Git.js +160 -0
  28. package/libs/Git.js.map +1 -0
  29. package/libs/Gitlab.d.ts +12 -0
  30. package/libs/Gitlab.d.ts.map +1 -0
  31. package/libs/Gitlab.js +78 -0
  32. package/libs/Gitlab.js.map +1 -0
  33. package/libs/Jira.d.ts +31 -0
  34. package/libs/Jira.d.ts.map +1 -0
  35. package/libs/Jira.js +157 -0
  36. package/libs/Jira.js.map +1 -0
  37. package/libs/Project.d.ts +39 -0
  38. package/libs/Project.d.ts.map +1 -0
  39. package/libs/Project.js +177 -0
  40. package/libs/Project.js.map +1 -0
  41. package/libs/Reporter.d.ts +34 -0
  42. package/libs/Reporter.d.ts.map +1 -0
  43. package/libs/Reporter.js +131 -0
  44. package/libs/Reporter.js.map +1 -0
  45. package/libs/Shell.d.ts +39 -0
  46. package/libs/Shell.d.ts.map +1 -0
  47. package/libs/Shell.js +107 -0
  48. package/libs/Shell.js.map +1 -0
  49. package/libs/helpers.d.ts +29 -0
  50. package/libs/helpers.d.ts.map +1 -0
  51. package/libs/helpers.js +101 -0
  52. package/libs/helpers.js.map +1 -0
  53. package/libs/prototype.d.ts +9 -0
  54. package/libs/prototype.d.ts.map +1 -0
  55. package/libs/prototype.js +186 -0
  56. package/libs/prototype.js.map +1 -0
  57. package/package.json +1 -1
  58. package/upd_pkg.d.ts +3 -0
  59. package/upd_pkg.d.ts.map +1 -0
  60. package/upd_pkg.js +28 -0
  61. package/upd_pkg.js.map +1 -0
  62. package/xcode.d.ts +3 -0
  63. package/xcode.d.ts.map +1 -0
  64. package/xcode.js +163 -0
  65. package/xcode.js.map +1 -0
  66. package/.env +0 -21
  67. package/.eslintcache +0 -1
  68. package/.eslintignore +0 -4
  69. package/.eslintrc +0 -246
  70. package/.gitlab-ci.yml +0 -12
  71. package/_publish.sh +0 -24
  72. package/k8s/App.ts +0 -200
  73. package/k8s/DockerImage.ts +0 -147
  74. package/k8s/Node.ts +0 -119
  75. package/k8s-build.ts +0 -175
  76. package/k8s-deploy.ts +0 -174
  77. package/libs/Exception.ts +0 -19
  78. package/libs/Git.ts +0 -199
  79. package/libs/Gitlab.ts +0 -86
  80. package/libs/Jira.ts +0 -239
  81. package/libs/Project.ts +0 -215
  82. package/libs/Reporter.ts +0 -181
  83. package/libs/Shell.ts +0 -119
  84. package/libs/helpers.ts +0 -114
  85. package/libs/prototype.ts +0 -313
  86. package/tsconfig.json +0 -24
  87. package/upd_pkg.ts +0 -21
  88. package/xcode.ts +0 -226
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,5 @@
1
+ export declare class Exception extends Error {
2
+ params?: Record<string, any>;
3
+ constructor(message: string, params?: Record<string, any>);
4
+ }
5
+ //# sourceMappingURL=Exception.d.ts.map
@@ -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,iBAGjC;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,160 @@
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 Shell_1.default.exec(`git pull --ff origin ${branch}`);
54
+ yield Shell_1.default.execRepeat(`git push origin HEAD:${branch}`);
55
+ });
56
+ }
57
+ function makeTag(version) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ const tag = `v${version}`;
60
+ yield Shell_1.default.exec(`git tag --force "${tag}"`);
61
+ yield Shell_1.default.execRepeat(`git push --force origin ${tag}`);
62
+ });
63
+ }
64
+ function getTags(limit = 1000, mask = /v[\d]+\.[\d]+\.[\d]+$/) {
65
+ return __awaiter(this, void 0, void 0, function* () {
66
+ yield Shell_1.default.exec(`git fetch -t`, { ignoreError: true });
67
+ const tagsStr = yield Shell_1.default.exec('git tag | sort --version-sort', { silent: true, ignoreError: true });
68
+ let list = tagsStr.split('\n').filter((f) => f.length > 2);
69
+ list = list.length > 0 ? list.reverse() : [tagsStr];
70
+ const tags = [];
71
+ let i = 1;
72
+ for (const tag of list) {
73
+ if (tag === '' || mask && (mask.exec(tag)) === null) {
74
+ continue;
75
+ }
76
+ tags.push(tag);
77
+ i++;
78
+ if (i >= limit) {
79
+ break;
80
+ }
81
+ }
82
+ return tags;
83
+ });
84
+ }
85
+ function lastTag() {
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ const list = yield getTags(1);
88
+ if (list && Array.isArray(list) && list.length > 0) {
89
+ return list[0];
90
+ }
91
+ return undefined;
92
+ });
93
+ }
94
+ function existTag(version) {
95
+ return __awaiter(this, void 0, void 0, function* () {
96
+ const list = yield getTags(100);
97
+ if (list && Array.isArray(list) && list.includes(`v${version}`)) {
98
+ return `v${version}`;
99
+ }
100
+ return undefined;
101
+ });
102
+ }
103
+ function getCommitsAndIssues(opt) {
104
+ var _a, _b;
105
+ return __awaiter(this, void 0, void 0, function* () {
106
+ opt.onlyJira = (_a = opt.onlyJira) !== null && _a !== void 0 ? _a : true;
107
+ opt.limit = (_b = opt.limit) !== null && _b !== void 0 ? _b : 10;
108
+ const result = { commits: {}, issues: {} };
109
+ const d = '#!|!#';
110
+ const from = opt.fromTag;
111
+ const to = opt.toTag || '';
112
+ const par = `${from}..${from !== '' && to === '' ? 'HEAD' : to}`;
113
+ 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 });
114
+ if (!commits || commits.includes(d) === false) {
115
+ return result;
116
+ }
117
+ let arr = commits.split('\n');
118
+ if (arr.length === 0) {
119
+ arr = [commits];
120
+ }
121
+ for (const row of arr) {
122
+ const commit = new Commit(row, d);
123
+ const issuesKeys = commit.issuesKeys;
124
+ if (opt.onlyJira && issuesKeys.length === 0) {
125
+ continue;
126
+ }
127
+ result.commits[commit.sha] = commit;
128
+ for (const key of issuesKeys) {
129
+ const issue = result.issues[key] || [];
130
+ issue.push(commit.sha);
131
+ result.issues[key] = issue;
132
+ }
133
+ }
134
+ return result;
135
+ });
136
+ }
137
+ function getDiffFiles(fromTag, opt = { silent: true, ignoreError: true }) {
138
+ return __awaiter(this, void 0, void 0, function* () {
139
+ const from = fromTag || (yield lastTag());
140
+ const diffCmd = from && from !== '' ? `git diff --name-only HEAD ${from}` : "find . -not -path '*/_*' -not -path '*/\.*' -not -path '*/node_modules*' -type d -maxdepth 2";
141
+ const diffStr = (yield Shell_1.default.exec(diffCmd, opt)) || '';
142
+ let arr = diffStr.split('\n');
143
+ if (arr.length === 0) {
144
+ arr = [diffStr];
145
+ }
146
+ return arr.filter((f) => f !== '').sort();
147
+ });
148
+ }
149
+ exports.default = {
150
+ Commit,
151
+ setOrigin,
152
+ push,
153
+ makeTag,
154
+ lastTag,
155
+ existTag,
156
+ getTags,
157
+ getCommitsAndIssues,
158
+ getDiffFiles,
159
+ };
160
+ //# sourceMappingURL=Git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Git.js","sourceRoot":"","sources":["../../libs/Git.ts"],"names":[],"mappings":"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"}
@@ -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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"}
package/libs/Jira.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ import { Project } from './Project';
2
+ export interface ReleaseInfo {
3
+ components: string[];
4
+ bugs: Issue[];
5
+ tasks: Issue[];
6
+ changelog: string;
7
+ }
8
+ declare function resolve(prj: Project, head?: boolean): Promise<ReleaseInfo>;
9
+ export declare class Issue {
10
+ key: string;
11
+ updated: Date;
12
+ type: string;
13
+ status: string;
14
+ summary: string;
15
+ assignee: {
16
+ name: string;
17
+ email: string;
18
+ login: string;
19
+ };
20
+ components: string[];
21
+ constructor(fields: Record<string, any>);
22
+ }
23
+ declare function moveBugsAsDeployed(bugs: {
24
+ key: string;
25
+ }[]): Promise<any>;
26
+ export declare const Jira: {
27
+ resolve: typeof resolve;
28
+ moveBugsAsDeployed: typeof moveBugsAsDeployed;
29
+ };
30
+ export {};
31
+ //# sourceMappingURL=Jira.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Jira.d.ts","sourceRoot":"","sources":["../../libs/Jira.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,MAAM,WAAW,WAAW;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CAClB;AAID,iBAAe,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,UAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CA4GtE;AAID,qBAAa,KAAK;IAEjB,GAAG,SAAM;IACT,OAAO,OAAgB;IAEvB,IAAI,SAAM;IACV,MAAM,SAAM;IACZ,OAAO,SAAM;IACb,QAAQ;;;;MAAsC;IAC9C,UAAU,EAAE,MAAM,EAAE,CAAM;gBAEd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAavC;AAID,iBAAe,kBAAkB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,gBA4BxD;AAKD,eAAO,MAAM,IAAI;;;CAGhB,CAAC"}