@soft-artel/ci 1.0.0
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/k8s/App.d.ts +22 -0
- package/k8s/App.d.ts.map +1 -0
- package/k8s/App.js +130 -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 +108 -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/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 +160 -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 +135 -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 +6 -0
- package/libs/prototype.d.ts.map +1 -0
- package/libs/prototype.js +176 -0
- package/libs/prototype.js.map +1 -0
- package/package.json +53 -0
- package/sa-ci-k8s.d.ts +3 -0
- package/sa-ci-k8s.d.ts.map +1 -0
- package/sa-ci-k8s.js +183 -0
- package/sa-ci-k8s.js.map +1 -0
- package/sa-ci-xcode.d.ts +3 -0
- package/sa-ci-xcode.d.ts.map +1 -0
- package/sa-ci-xcode.js +163 -0
- package/sa-ci-xcode.js.map +1 -0
- package/upd_pkg.d.ts +3 -0
- package/upd_pkg.d.ts.map +1 -0
- package/upd_pkg.js +28 -0
- package/upd_pkg.js.map +1 -0
package/libs/helpers.js
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
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
|
+
exports.objectFromIniFile = exports.md5 = exports.stripTags = exports.asyncSleep = exports.resolvePath = exports.log = exports.htmlToMd = exports.capitalizeFirstLetter = exports.checkEnvVars = exports.checkVarsExisting = void 0;
|
|
16
|
+
const node_html_markdown_1 = require("node-html-markdown");
|
|
17
|
+
const fs_1 = require("fs");
|
|
18
|
+
const path_1 = __importDefault(require("path"));
|
|
19
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
20
|
+
const ENV = process.env;
|
|
21
|
+
function checkVarsExisting(variables) {
|
|
22
|
+
for (const { field, exceptionMessage } of variables) {
|
|
23
|
+
if (field === undefined) {
|
|
24
|
+
throw new Error(exceptionMessage);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.checkVarsExisting = checkVarsExisting;
|
|
29
|
+
function checkEnvVars(variables) {
|
|
30
|
+
for (const key of variables) {
|
|
31
|
+
if (ENV[key] === undefined) {
|
|
32
|
+
throw new Error(`Missed variable in ENV: ${key}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.checkEnvVars = checkEnvVars;
|
|
37
|
+
function capitalizeFirstLetter(str) {
|
|
38
|
+
return str.replace(/^\w/, (c) => c.toUpperCase());
|
|
39
|
+
}
|
|
40
|
+
exports.capitalizeFirstLetter = capitalizeFirstLetter;
|
|
41
|
+
function nlToBr(str) {
|
|
42
|
+
return str.replace(/\n/g, '<br>\n');
|
|
43
|
+
}
|
|
44
|
+
function htmlToMd(html) {
|
|
45
|
+
return node_html_markdown_1.NodeHtmlMarkdown.translate(nlToBr(html));
|
|
46
|
+
}
|
|
47
|
+
exports.htmlToMd = htmlToMd;
|
|
48
|
+
exports.log = {
|
|
49
|
+
dbg: console.log, info: console.log, error: console.error, debug: true,
|
|
50
|
+
};
|
|
51
|
+
function resolvePath(filepath) {
|
|
52
|
+
if (filepath.startsWith('~')) {
|
|
53
|
+
filepath = path_1.default.join(process.env.HOME, filepath.slice(1));
|
|
54
|
+
}
|
|
55
|
+
return path_1.default.resolve(filepath);
|
|
56
|
+
}
|
|
57
|
+
exports.resolvePath = resolvePath;
|
|
58
|
+
function asyncSleep(sec, fn) {
|
|
59
|
+
return new Promise((resolve) => {
|
|
60
|
+
const id = setTimeout(resolve, sec * 1000);
|
|
61
|
+
if (fn) {
|
|
62
|
+
fn(id);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
exports.asyncSleep = asyncSleep;
|
|
67
|
+
function stripTags(html) {
|
|
68
|
+
return nlToBr(html)
|
|
69
|
+
.replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>?/gi, '').replace(/\s{2,}/g, ' ')
|
|
70
|
+
.trim()
|
|
71
|
+
.replace(/🛠/g, '')
|
|
72
|
+
.replace(/🐞/g, '');
|
|
73
|
+
}
|
|
74
|
+
exports.stripTags = stripTags;
|
|
75
|
+
const md5 = (contents) => crypto_1.default.createHash('md5').update(contents).digest('hex');
|
|
76
|
+
exports.md5 = md5;
|
|
77
|
+
function objectFromIniFile(path) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
const file = yield fs_1.promises.readFile(path, 'utf8');
|
|
80
|
+
if (!file || file === '') {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
const rows = file.split('\n');
|
|
84
|
+
if (!rows || rows.length < 1) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
const obj = {};
|
|
88
|
+
for (const row of rows) {
|
|
89
|
+
const rowParts = row.split('=');
|
|
90
|
+
if (rowParts.length !== 2) {
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
const key = rowParts[0].trim();
|
|
94
|
+
const value = rowParts[1];
|
|
95
|
+
obj[key] = value;
|
|
96
|
+
}
|
|
97
|
+
return obj;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
exports.objectFromIniFile = objectFromIniFile;
|
|
101
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../libs/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prototype.d.ts","sourceRoot":"","sources":["../../libs/prototype.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,KAAK,CAAC,CAAC;IACvB,aAAa,EAAE,CAAC,CAAC;IACjB,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;IACpB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B"}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
Object.defineProperties(Array.prototype, {
|
|
4
|
+
randomElement: {
|
|
5
|
+
value() {
|
|
6
|
+
return this[Math.round(Math.random() * (this.length - 1))];
|
|
7
|
+
},
|
|
8
|
+
enumerable: false,
|
|
9
|
+
writable: true,
|
|
10
|
+
},
|
|
11
|
+
delete: {
|
|
12
|
+
value(elm) {
|
|
13
|
+
const index = this.indexOf(elm);
|
|
14
|
+
if (index === -1) {
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
this.splice(index, 1);
|
|
18
|
+
return this;
|
|
19
|
+
},
|
|
20
|
+
enumerable: false,
|
|
21
|
+
writable: true,
|
|
22
|
+
},
|
|
23
|
+
match: {
|
|
24
|
+
value(str) {
|
|
25
|
+
for (const item of this) {
|
|
26
|
+
if (typeof item === 'string' && (RegExp(item).exec(str))) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
},
|
|
32
|
+
enumerable: false,
|
|
33
|
+
writable: true,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
function isObjectDefined(obj) {
|
|
37
|
+
return obj !== undefined && typeof (obj) === 'object' && obj !== null && (obj instanceof Date) === false && Array.isArray(obj) === false;
|
|
38
|
+
}
|
|
39
|
+
Object.defineProperties(Object.prototype, {
|
|
40
|
+
copy: {
|
|
41
|
+
value(maxDepth, excludeKeysStart) {
|
|
42
|
+
const maxDeep = maxDepth === undefined ? 5 : maxDepth - 1;
|
|
43
|
+
const excludeKeys = excludeKeysStart === undefined ? ['_', '$'] : excludeKeysStart;
|
|
44
|
+
const objCopy = {};
|
|
45
|
+
for (const key of Object.keys(this)) {
|
|
46
|
+
if (excludeKeys.includes(key[0])) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const value = (this)[key];
|
|
50
|
+
if (isObjectDefined(value)) {
|
|
51
|
+
objCopy[key] = (maxDeep >= 0) ? value.copy(maxDeep, excludeKeys) : {};
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
objCopy[key] = value;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return objCopy;
|
|
58
|
+
},
|
|
59
|
+
enumerable: false,
|
|
60
|
+
writable: true,
|
|
61
|
+
},
|
|
62
|
+
diff: {
|
|
63
|
+
value(toObj, excludeKeysStart) {
|
|
64
|
+
if (isObjectDefined(toObj) === false) {
|
|
65
|
+
return { from: this.copy(), to: toObj };
|
|
66
|
+
}
|
|
67
|
+
const excludeKeys = excludeKeysStart === undefined ? ['_', '$'] : excludeKeysStart;
|
|
68
|
+
const result = {};
|
|
69
|
+
const fromKeys = Object.keys(this);
|
|
70
|
+
const toKeys = Object.keys(toObj);
|
|
71
|
+
if (fromKeys.length === toKeys.length && toKeys.length === 0) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
for (const key of toKeys) {
|
|
75
|
+
const i = fromKeys.indexOf(key);
|
|
76
|
+
if (i !== -1) {
|
|
77
|
+
fromKeys.splice(i, 1);
|
|
78
|
+
}
|
|
79
|
+
if (excludeKeys.includes(key[0])) {
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
const oldVal = (this)[key];
|
|
83
|
+
const newVal = toObj[key];
|
|
84
|
+
if (oldVal === newVal
|
|
85
|
+
|| (isObjectDefined(oldVal) && isObjectDefined(newVal) && Object.keys(oldVal).length === 0 && Object.keys(newVal).length === 0)
|
|
86
|
+
|| (oldVal instanceof Date && newVal instanceof Date && oldVal.getTime() === newVal.getTime())) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (oldVal === undefined || oldVal === null || oldVal === '' || isObjectDefined(oldVal) && Object.keys(oldVal).length === 0) {
|
|
90
|
+
result[key] = { to: newVal };
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
if (isObjectDefined(oldVal) && isObjectDefined(newVal)) {
|
|
94
|
+
const nestedResult = oldVal.diff(newVal);
|
|
95
|
+
if (nestedResult && Object.keys(nestedResult).length > 0) {
|
|
96
|
+
result[key] = nestedResult;
|
|
97
|
+
}
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
result[key] = {
|
|
101
|
+
from: oldVal,
|
|
102
|
+
to: newVal,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
for (const key of fromKeys) {
|
|
106
|
+
if (excludeKeys.includes(key[0])) {
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
const oldVal = (this)[key];
|
|
110
|
+
if (oldVal !== undefined || oldVal !== null) {
|
|
111
|
+
result[key] = {
|
|
112
|
+
from: oldVal,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return result;
|
|
117
|
+
},
|
|
118
|
+
enumerable: false,
|
|
119
|
+
writable: true,
|
|
120
|
+
},
|
|
121
|
+
pickKeys: {
|
|
122
|
+
value(keys) {
|
|
123
|
+
if (!Array.isArray(keys) || keys.length === 0)
|
|
124
|
+
return {};
|
|
125
|
+
const obj = {};
|
|
126
|
+
for (const key of keys) {
|
|
127
|
+
obj[key] = (this)[key];
|
|
128
|
+
}
|
|
129
|
+
return obj;
|
|
130
|
+
},
|
|
131
|
+
enumerable: false,
|
|
132
|
+
writable: true,
|
|
133
|
+
},
|
|
134
|
+
mergeFrom: {
|
|
135
|
+
value(fromObj, addFromObjKeys = true) {
|
|
136
|
+
if (!fromObj || typeof fromObj !== 'object')
|
|
137
|
+
return this;
|
|
138
|
+
const keys = Object.keys(this);
|
|
139
|
+
const fromKeys = Object.keys(fromObj);
|
|
140
|
+
keys.forEach(key => {
|
|
141
|
+
const i = fromKeys.indexOf(key);
|
|
142
|
+
if (i !== -1) {
|
|
143
|
+
fromKeys.splice(i, 1);
|
|
144
|
+
}
|
|
145
|
+
const fromValue = fromObj[key];
|
|
146
|
+
if (fromValue === undefined || fromValue === null) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (typeof this[key] !== 'object' ||
|
|
150
|
+
typeof this[key] !== typeof fromValue ||
|
|
151
|
+
Array.isArray(this[key])) {
|
|
152
|
+
this[key] = fromValue;
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
this[key].mergeFrom(fromValue);
|
|
156
|
+
});
|
|
157
|
+
if (addFromObjKeys && fromKeys.length > 0) {
|
|
158
|
+
fromKeys.forEach(key => {
|
|
159
|
+
this[key] = fromObj[key];
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
return this;
|
|
163
|
+
},
|
|
164
|
+
enumerable: false,
|
|
165
|
+
writable: true,
|
|
166
|
+
},
|
|
167
|
+
isEqual: {
|
|
168
|
+
value(toObj) {
|
|
169
|
+
const diff = this.diff(toObj);
|
|
170
|
+
return diff ? Object.keys(diff).length === 0 : true;
|
|
171
|
+
},
|
|
172
|
+
enumerable: false,
|
|
173
|
+
writable: true,
|
|
174
|
+
},
|
|
175
|
+
});
|
|
176
|
+
//# sourceMappingURL=prototype.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prototype.js","sourceRoot":"","sources":["../../libs/prototype.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"author": "Nikolay Ilin",
|
|
3
|
+
"license": "ISC",
|
|
4
|
+
"description": "Soft-Artel CI",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "http://gitlab.soft-artel.com/sp/cluster.git"
|
|
8
|
+
},
|
|
9
|
+
"name": "@soft-artel/ci",
|
|
10
|
+
"version": "1.0.0",
|
|
11
|
+
"main": "sa-ci-k8s.js",
|
|
12
|
+
"bin": {
|
|
13
|
+
"sa-ci-k8s": "./sa-ci-k8s.js",
|
|
14
|
+
"sa-ci-xcode": "./sa-ci-xcode.js"
|
|
15
|
+
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"sa-ci-xcode": "export TS_NODE_FILES=true && export $(cat .env 2>/dev/null || echo t=t | xargs) && ts-node sa-ci-xcode --scheme iOS",
|
|
18
|
+
"sa-ci-k8s": "export TS_NODE_FILES=true && export $(cat .env 2>/dev/null || echo t=t | xargs) && ts-node sa-ci-k8s --build --deploy alpha",
|
|
19
|
+
"lint+fix": "eslint --cache \"./**/*.ts\" --fix",
|
|
20
|
+
"sa-commit": "sa-commit -a -p",
|
|
21
|
+
"build": "rm -rf _publish && tsc -p tsconfig.json && cp package.json _publish/",
|
|
22
|
+
"pub": "sh ./_publish.sh"
|
|
23
|
+
},
|
|
24
|
+
"dependencies": {
|
|
25
|
+
"axios": "0.27.2",
|
|
26
|
+
"commander": "7.2.0",
|
|
27
|
+
"js-yaml": "4.0.0",
|
|
28
|
+
"mustache": "4.2.0",
|
|
29
|
+
"node-html-markdown": "1.2.0",
|
|
30
|
+
"node-telegram-bot-api": "0.52.0",
|
|
31
|
+
"shelljs": "0.8.5"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@types/js-yaml": "4.0.0",
|
|
35
|
+
"@types/mustache": "4.1.1",
|
|
36
|
+
"@types/node": "^14.14.37",
|
|
37
|
+
"@types/node-telegram-bot-api": "0.51.1",
|
|
38
|
+
"@types/shelljs": "0.8.8",
|
|
39
|
+
"@typescript-eslint/eslint-plugin": "4.21.0",
|
|
40
|
+
"@typescript-eslint/parser": "4.20.0",
|
|
41
|
+
"eslint": "7.16.0",
|
|
42
|
+
"eslint-config-prettier": "6.10.1",
|
|
43
|
+
"eslint-plugin-import": "2.22.1",
|
|
44
|
+
"eslint-plugin-prettier": "3.1.2",
|
|
45
|
+
"markdown-table": "2.0.0",
|
|
46
|
+
"mocha": "10.0.0",
|
|
47
|
+
"prettier": "2.2.1",
|
|
48
|
+
"supertest": "4.0.2",
|
|
49
|
+
"ts-mocha": "7.0.0",
|
|
50
|
+
"ts-node": "8.8.2",
|
|
51
|
+
"typescript": "4.6.3"
|
|
52
|
+
}
|
|
53
|
+
}
|
package/sa-ci-k8s.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sa-ci-k8s.d.ts","sourceRoot":"","sources":["../sa-ci-k8s.ts"],"names":[],"mappings":";AACA,OAAO,kBAAkB,CAAC"}
|
package/sa-ci-k8s.js
ADDED
|
@@ -0,0 +1,183 @@
|
|
|
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 Node_1 = require("./k8s/Node");
|
|
26
|
+
const App_1 = require("./k8s/App");
|
|
27
|
+
const ENV = process.env;
|
|
28
|
+
function main() {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
commander_1.program
|
|
31
|
+
.option('--path <project dir>', 'Path to project directory [default - current]')
|
|
32
|
+
.option('--build', 'Build and push docker image to registry')
|
|
33
|
+
.option('--deploy <stage>', 'Deploy manifests to K8s <stage>')
|
|
34
|
+
.option('--debug', 'Output extra debugging info')
|
|
35
|
+
.action(() => __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
let reporter;
|
|
37
|
+
try {
|
|
38
|
+
(0, helpers_1.checkEnvVars)(['CI_STAGES', 'REPORTER']);
|
|
39
|
+
const opts = commander_1.program.opts() || {};
|
|
40
|
+
const prj = new Project_1.Project(opts.path);
|
|
41
|
+
const reporterOpts = JSON.parse(ENV.REPORTER);
|
|
42
|
+
reporterOpts.postTitle = opts.scheme;
|
|
43
|
+
const pkg = JSON.parse((yield Shell_1.default.cat(prj.rootPath + '/package.json')) || 'no package.json file!');
|
|
44
|
+
const pkgBuild = Number(pkg.version.split('.')[2]);
|
|
45
|
+
prj.build = prj.build < pkgBuild ? pkgBuild : prj.build;
|
|
46
|
+
prj.version = `${pkg.version.split('.').splice(0, 2).join('.')}.${prj.build}`;
|
|
47
|
+
if (!pkg.ci) {
|
|
48
|
+
throw new Error('No ci config in package.json file!');
|
|
49
|
+
}
|
|
50
|
+
reporter = new Reporter_1.Reporter(prj, reporterOpts);
|
|
51
|
+
const config = pkg.ci;
|
|
52
|
+
yield run(prj, reporter, opts, config);
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
helpers_1.log.error(e);
|
|
56
|
+
if (reporter) {
|
|
57
|
+
try {
|
|
58
|
+
yield reporter.fail(e);
|
|
59
|
+
}
|
|
60
|
+
catch (e2) {
|
|
61
|
+
helpers_1.log.error(e2);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
66
|
+
}));
|
|
67
|
+
yield commander_1.program.parseAsync(process.argv);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
main();
|
|
71
|
+
function run(prj, reporter, opts, config) {
|
|
72
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
73
|
+
const release = yield Jira_1.Jira.resolve(prj);
|
|
74
|
+
if (opts.build) {
|
|
75
|
+
const apps = yield build(prj, reporter, config);
|
|
76
|
+
if (!apps) {
|
|
77
|
+
process.exit(0);
|
|
78
|
+
}
|
|
79
|
+
yield prj.updateChangeLog(release.changelog);
|
|
80
|
+
yield Git_1.default.setOrigin();
|
|
81
|
+
yield Shell_1.default.exec(`git commit -a -m "v${prj.version}"`, { ignoreError: true, silent: false });
|
|
82
|
+
yield Git_1.default.push(ENV.CI_COMMIT_REF_NAME || 'dev');
|
|
83
|
+
yield reporter.send(` + Update <a href=\"${prj.url}/-/blob/${ENV.CI_COMMIT_REF_NAME || 'dev'}/CHANGELOG.md\">changelog</a>.`);
|
|
84
|
+
yield reporter.send(` + Git tag new version`);
|
|
85
|
+
yield Git_1.default.makeTag(prj.version);
|
|
86
|
+
}
|
|
87
|
+
if (opts.deploy) {
|
|
88
|
+
yield deploy(prj, reporter, opts.deploy);
|
|
89
|
+
yield reporter.send(` + Resolved tasks:${release.tasks.length}, bugs: ${release.bugs.length}`);
|
|
90
|
+
yield reporter.send(` + Save ${prj.stage} -> ${prj.version} to GitLab`);
|
|
91
|
+
yield prj.saveGitLabStagesVersions();
|
|
92
|
+
const bugsDeployed = yield Jira_1.Jira.moveBugsAsDeployed(release.bugs);
|
|
93
|
+
if (bugsDeployed.length > 0) {
|
|
94
|
+
yield reporter.send(` + Deployed ${bugsDeployed.length} bugs.`);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
yield reporter.send(` - Deploy bugs. [SKIPED]`);
|
|
98
|
+
}
|
|
99
|
+
yield reporter.release(release.changelog);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
function build(prj, reporter, config) {
|
|
104
|
+
var _a;
|
|
105
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
106
|
+
Shell_1.default.cd(prj.rootPath);
|
|
107
|
+
prj.incrementBuild();
|
|
108
|
+
yield reporter.start('build', prj.stage, true);
|
|
109
|
+
helpers_1.log.info(`1. build ${prj.stage}`);
|
|
110
|
+
yield reporter.send(` + Load apps and check updated`);
|
|
111
|
+
helpers_1.log.info(`2. Load apps and check updated`);
|
|
112
|
+
const updateFiles = yield Git_1.default.getDiffFiles();
|
|
113
|
+
helpers_1.log.info(`\n\nUPDATED FILES:\n$`, updateFiles);
|
|
114
|
+
const { apps, updated } = yield (0, App_1.getApps)(prj, config, updateFiles);
|
|
115
|
+
if (!updated) {
|
|
116
|
+
helpers_1.log.info('SKIP BUILD: NO Apps to update!');
|
|
117
|
+
yield reporter.send(`⏩ SKIP - no apps to update\n ${updateFiles.join('\n ')}`, ' ');
|
|
118
|
+
return undefined;
|
|
119
|
+
}
|
|
120
|
+
yield reporter.send(` ~ <b>${updated.join('</b>\n ~ <b>')}</b>`);
|
|
121
|
+
yield reporter.send(` + Write K8s manifests`);
|
|
122
|
+
helpers_1.log.info(`3. Write K8s manifests`);
|
|
123
|
+
const image = new DockerImage_1.DockerImage(prj.rootPath, prj.shortVersion, prj.build);
|
|
124
|
+
helpers_1.log.dbg(`DockerImage`, image);
|
|
125
|
+
for (const appName of updated) {
|
|
126
|
+
yield ((_a = apps[appName]) === null || _a === void 0 ? void 0 : _a.writeManifest(prj, image));
|
|
127
|
+
}
|
|
128
|
+
yield reporter.send(` + Test and distrib`);
|
|
129
|
+
helpers_1.log.dbg(`4. Pre build`);
|
|
130
|
+
yield image.prebuild();
|
|
131
|
+
yield reporter.send(` + Build docker image: ${image.tag}`);
|
|
132
|
+
helpers_1.log.dbg(`5. Build`);
|
|
133
|
+
yield image.build();
|
|
134
|
+
yield reporter.send(` + Push docker image to registry`);
|
|
135
|
+
helpers_1.log.dbg(`6. Docker push`);
|
|
136
|
+
yield image.push();
|
|
137
|
+
yield reporter.send(` + Save current build: ${prj.build}`);
|
|
138
|
+
helpers_1.log.dbg(`7. Put current build:${prj.build} to GitLab`);
|
|
139
|
+
yield prj.saveGitLabBuild();
|
|
140
|
+
return apps;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
function deploy(prj, reporter, stage) {
|
|
144
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
145
|
+
prj.stage = stage;
|
|
146
|
+
yield reporter.start('deploy', prj.stage, false);
|
|
147
|
+
const node = new Node_1.Node(stage);
|
|
148
|
+
const k8s_dir = `${prj.rootPath}/_k8s/${stage}/`;
|
|
149
|
+
Shell_1.default.cd(k8s_dir);
|
|
150
|
+
const deployedApps = {};
|
|
151
|
+
const k8s_files = yield Shell_1.default.ls(k8s_dir);
|
|
152
|
+
try {
|
|
153
|
+
for (const k8s_file of k8s_files) {
|
|
154
|
+
const appName = k8s_file.replace('.yml', '');
|
|
155
|
+
const status = yield node.apply(`${k8s_dir}/${k8s_file}`, appName);
|
|
156
|
+
let msg = '';
|
|
157
|
+
if (status.valid) {
|
|
158
|
+
deployedApps[appName] = status.msg;
|
|
159
|
+
msg = ` ✅ <b>${appName}</b> ${status.msg}`;
|
|
160
|
+
yield reporter.send(msg);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
msg = ` ❌ <b>${appName}</b> yaml is invalid!\n${status.msg}`;
|
|
164
|
+
yield reporter.send(msg);
|
|
165
|
+
throw new Error(`FAIL: Deployment app: ${appName}`);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
yield node.status(reporter);
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
if (Object.keys(deployedApps).length > 0) {
|
|
172
|
+
helpers_1.log.error('FAIL: Deployments to rollout', Object.keys(deployedApps));
|
|
173
|
+
yield reporter.send(` 🚫 <b>APPLAY FAIL</b>: Rollout all deployed apps`);
|
|
174
|
+
for (const appName of Object.keys(deployedApps)) {
|
|
175
|
+
yield node.exec(`rollout undo deployment/${appName}`);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
yield node.status(reporter);
|
|
179
|
+
throw error;
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=sa-ci-k8s.js.map
|
package/sa-ci-k8s.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sa-ci-k8s.js","sourceRoot":"","sources":["../sa-ci-k8s.ts"],"names":[],"mappings":"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"}
|
package/sa-ci-xcode.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sa-ci-xcode.d.ts","sourceRoot":"","sources":["../sa-ci-xcode.ts"],"names":[],"mappings":""}
|