@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.
- 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 +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 +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 +1 -1
- 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/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/App.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import '../libs/prototype';
|
|
2
|
+
import { Project } from '../libs/Project';
|
|
3
|
+
import { DockerImage } from './DockerImage';
|
|
4
|
+
export interface Config {
|
|
5
|
+
appFile: string;
|
|
6
|
+
sharedPaths?: string[];
|
|
7
|
+
ignorePaths?: string[];
|
|
8
|
+
}
|
|
9
|
+
export declare class App {
|
|
10
|
+
group: string;
|
|
11
|
+
app: string;
|
|
12
|
+
name: string;
|
|
13
|
+
path: string;
|
|
14
|
+
$pathComp: string[];
|
|
15
|
+
constructor(path?: string);
|
|
16
|
+
writeManifest(prj: Project, image: DockerImage): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export declare function getApps(prj: Project, config: Config, updatedPaths: string[], maxdepth?: number, ignore?: string[]): Promise<{
|
|
19
|
+
apps: Record<string, App>;
|
|
20
|
+
updated: string[] | undefined;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=App.d.ts.map
|
package/k8s/App.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../k8s/App.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAQ3B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,WAAW,MAAM;IAEtB,OAAO,EAAE,MAAM,CAAC;IAEhB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CAEvB;AAID,qBAAa,GAAG;IAEf,KAAK,SAAM;IACX,GAAG,SAAM;IAET,IAAI,SAAM;IACV,IAAI,SAAM;IAEV,SAAS,EAAE,MAAM,EAAE,CAAY;gBAInB,IAAI,GAAE,MAAW;IAsBvB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW;CA6DpD;AAID,wBAAsB,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,QAAQ,GAAE,MAAU,EAAE,MAAM,GAAE,MAAM,EAAyC,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;CAAE,CAAC,CA2ExO"}
|
package/k8s/App.js
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
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.getApps = exports.App = void 0;
|
|
16
|
+
require("../libs/prototype");
|
|
17
|
+
const mustache_1 = __importDefault(require("mustache"));
|
|
18
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
19
|
+
const fs_1 = require("fs");
|
|
20
|
+
const Shell_1 = __importDefault(require("../libs/Shell"));
|
|
21
|
+
const helpers_1 = require("../libs/helpers");
|
|
22
|
+
const Exception_1 = require("../libs/Exception");
|
|
23
|
+
class App {
|
|
24
|
+
constructor(path = '') {
|
|
25
|
+
this.group = '';
|
|
26
|
+
this.app = '';
|
|
27
|
+
this.name = '';
|
|
28
|
+
this.path = '';
|
|
29
|
+
this.$pathComp = ['./'];
|
|
30
|
+
const pathComp = path.split('/');
|
|
31
|
+
if (pathComp.length > 1) {
|
|
32
|
+
this.group = pathComp[0];
|
|
33
|
+
this.app = pathComp[1];
|
|
34
|
+
this.name = `${this.group}-${this.app}`;
|
|
35
|
+
this.path = path;
|
|
36
|
+
this.$pathComp.push(`./${this.group}/`);
|
|
37
|
+
this.$pathComp.push(`./${this.path}/`);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.app = path;
|
|
41
|
+
this.name = path;
|
|
42
|
+
this.path = '';
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
writeManifest(prj, image) {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
const k8s_tpl_fileName = 'k8s_tpl.yaml';
|
|
48
|
+
const k8s_spec_fileName = 'k8s_spec.json';
|
|
49
|
+
let k8s_tpl = '';
|
|
50
|
+
const k8s_spec = {};
|
|
51
|
+
for (const path of this.$pathComp) {
|
|
52
|
+
const k8s_tplFile = yield Shell_1.default.cat(path + k8s_tpl_fileName, { silent: helpers_1.log.debug, ignoreError: true });
|
|
53
|
+
k8s_tpl = k8s_tplFile && k8s_tplFile !== '' ? k8s_tplFile : k8s_tpl;
|
|
54
|
+
const k8s_specFile = yield Shell_1.default.cat(path + k8s_spec_fileName, { silent: helpers_1.log.debug, ignoreError: true });
|
|
55
|
+
if (k8s_specFile && k8s_specFile !== '') {
|
|
56
|
+
try {
|
|
57
|
+
const sObj = JSON.parse(k8s_specFile);
|
|
58
|
+
k8s_spec.mergeFrom(sObj, true);
|
|
59
|
+
}
|
|
60
|
+
catch (e) {
|
|
61
|
+
helpers_1.log.error(e);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (k8s_tpl.length < 10) {
|
|
66
|
+
throw new Exception_1.Exception(`No K8s template [${k8s_tpl_fileName}] found for app:${this.name}`, this.$pathComp);
|
|
67
|
+
}
|
|
68
|
+
helpers_1.log.dbg(`${this.name} k8s specs`, k8s_spec);
|
|
69
|
+
for (const stage of prj.$stages) {
|
|
70
|
+
const k8s_data = {};
|
|
71
|
+
k8s_data.stage = stage;
|
|
72
|
+
k8s_data.app = this;
|
|
73
|
+
k8s_data.image = image;
|
|
74
|
+
k8s_data.prj = prj;
|
|
75
|
+
k8s_data.spec = k8s_spec[stage] || {};
|
|
76
|
+
if (!k8s_data.spec.replicas) {
|
|
77
|
+
k8s_data.spec.replicas = 1;
|
|
78
|
+
}
|
|
79
|
+
const manifest = mustache_1.default.render(k8s_tpl, k8s_data);
|
|
80
|
+
js_yaml_1.default.loadAll(manifest);
|
|
81
|
+
yield Shell_1.default.mkdir(`${prj.rootPath}/_k8s/${stage}`, { ignoreError: false });
|
|
82
|
+
yield fs_1.promises.writeFile(`${prj.rootPath}/_k8s/${stage}/${this.name}.yml`, manifest);
|
|
83
|
+
helpers_1.log.dbg(`[${stage}] ${this.name} writed -> ${prj.rootPath}/_k8s/${stage}/${this.name}.yml `);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.App = App;
|
|
89
|
+
function getApps(prj, config, updatedPaths, maxdepth = 3, ignore = ['*/_*', '*/\.*', '*/node_modules*']) {
|
|
90
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
91
|
+
Shell_1.default.cd(prj.rootPath);
|
|
92
|
+
const appsPaths = yield Shell_1.default.find(prj.rootPath, config.appFile, maxdepth, ignore);
|
|
93
|
+
const ignorePaths = [...config.ignorePaths || [], ...config.sharedPaths || []];
|
|
94
|
+
const apps = {};
|
|
95
|
+
const watchPaths = {};
|
|
96
|
+
for (const file of appsPaths.sort()) {
|
|
97
|
+
const path = file.replace(prj.rootPath + '/', '').replace('/' + config.appFile, '');
|
|
98
|
+
let skip = false;
|
|
99
|
+
for (const i_path of ignorePaths) {
|
|
100
|
+
if (path.includes(i_path)) {
|
|
101
|
+
skip = true;
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (path === '' || skip) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const app = new App(path);
|
|
109
|
+
if (app.name === config.appFile) {
|
|
110
|
+
app.name = prj.name;
|
|
111
|
+
app.app = prj.name;
|
|
112
|
+
app.group = '';
|
|
113
|
+
app.path = '';
|
|
114
|
+
}
|
|
115
|
+
apps[app.name] = app;
|
|
116
|
+
watchPaths[app.path] = app.name;
|
|
117
|
+
}
|
|
118
|
+
helpers_1.log.dbg(`Find apps by ${config.appFile}`, Object.keys(apps).sort());
|
|
119
|
+
const sharedPaths = config.sharedPaths || [];
|
|
120
|
+
sharedPaths.push('package.json');
|
|
121
|
+
sharedPaths.push('k8s_spec.json');
|
|
122
|
+
sharedPaths.push('k8s_tpl.yaml');
|
|
123
|
+
sharedPaths.push('dockerfile');
|
|
124
|
+
const watchPathsArr = Object.keys(watchPaths);
|
|
125
|
+
let appsChanged = {};
|
|
126
|
+
for (const file of updatedPaths) {
|
|
127
|
+
let allApps = false;
|
|
128
|
+
for (const i_path of sharedPaths) {
|
|
129
|
+
if (file.includes(i_path)) {
|
|
130
|
+
allApps = true;
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (allApps) {
|
|
135
|
+
appsChanged = apps;
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
for (const testPath of watchPathsArr) {
|
|
139
|
+
const appName = watchPaths[testPath];
|
|
140
|
+
if ((RegExp(testPath).exec(file)) && apps[appName] && appsChanged[appName] === undefined) {
|
|
141
|
+
appsChanged[appName] = apps[appName];
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const changed = Object.keys(appsChanged);
|
|
146
|
+
return { apps, updated: changed.length > 0 ? changed : undefined };
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
exports.getApps = getApps;
|
|
150
|
+
//# sourceMappingURL=App.js.map
|
package/k8s/App.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../k8s/App.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare type DockerImagePrebuildAction = (img: DockerImage) => void;
|
|
2
|
+
export declare class DockerImage {
|
|
3
|
+
path: string;
|
|
4
|
+
key: string;
|
|
5
|
+
srcImage: string;
|
|
6
|
+
tag: string;
|
|
7
|
+
fullTag: string;
|
|
8
|
+
$prebuild_typed?: DockerImagePrebuildAction;
|
|
9
|
+
constructor(path: string, ver: string, build: number);
|
|
10
|
+
prebuild(): Promise<void>;
|
|
11
|
+
build(): Promise<void>;
|
|
12
|
+
push(): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=DockerImage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DockerImage.d.ts","sourceRoot":"","sources":["../../k8s/DockerImage.ts"],"names":[],"mappings":"AASA,aAAK,yBAAyB,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;AAG5D,qBAAa,WAAW;IAEvB,IAAI,SAAM;IACV,GAAG,SAAM;IAET,QAAQ,SAAM;IAEd,GAAG,SAAM;IACT,OAAO,SAAM;IAEb,eAAe,CAAC,EAAE,yBAAyB,CAAa;gBAI5C,IAAI,EAAE,MAAM,EAAG,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IA4B/C,QAAQ;IAOR,KAAK;IAOL,IAAI;CASV"}
|
|
@@ -0,0 +1,112 @@
|
|
|
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.DockerImage = void 0;
|
|
16
|
+
const fs_1 = __importDefault(require("fs"));
|
|
17
|
+
const helpers_1 = require("../libs/helpers");
|
|
18
|
+
const Shell_1 = __importDefault(require("../libs/Shell"));
|
|
19
|
+
const ENV = process.env;
|
|
20
|
+
const PREBUILD = {};
|
|
21
|
+
class DockerImage {
|
|
22
|
+
constructor(path, ver, build) {
|
|
23
|
+
this.path = '';
|
|
24
|
+
this.key = '';
|
|
25
|
+
this.srcImage = '';
|
|
26
|
+
this.tag = '';
|
|
27
|
+
this.fullTag = '';
|
|
28
|
+
this.$prebuild_typed = undefined;
|
|
29
|
+
this.path = (0, helpers_1.resolvePath)(path);
|
|
30
|
+
const dockerfile = fs_1.default.readFileSync(this.path + '/dockerfile', 'utf8');
|
|
31
|
+
this.key = (0, helpers_1.md5)(dockerfile);
|
|
32
|
+
const dockerImage = /FROM (.+)/.exec(dockerfile);
|
|
33
|
+
if (!dockerImage || dockerImage.length < 2) {
|
|
34
|
+
throw new Error(`Wrong dockerfile format:\n${dockerfile}`);
|
|
35
|
+
}
|
|
36
|
+
this.srcImage = dockerImage[1];
|
|
37
|
+
const dockerName = /#[ ]?IMAGE NAME (.+)/.exec(dockerfile);
|
|
38
|
+
const name = dockerName && dockerName.length > 1 ? dockerName[1] : ENV.CI_PROJECT_NAME || this.key;
|
|
39
|
+
this.tag = `${name}-v${ver}:${build}`;
|
|
40
|
+
this.fullTag = `${ENV.CI_REGISTRY_IMAGE}/${this.tag}`;
|
|
41
|
+
const dockerType = /#[ ]?IMAGE TYPE (.+)/.exec(dockerfile);
|
|
42
|
+
const type = dockerType && dockerType.length > 1 ? dockerType[1].toLowerCase() : this.srcImage.split(':')[0].toLowerCase();
|
|
43
|
+
this.$prebuild_typed = PREBUILD[type];
|
|
44
|
+
}
|
|
45
|
+
prebuild() {
|
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
if (!this.$prebuild_typed) {
|
|
48
|
+
throw new Error(`No prebuild action for ${this.tag}`);
|
|
49
|
+
}
|
|
50
|
+
yield this.$prebuild_typed(this);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
build() {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
Shell_1.default.cd(this.path);
|
|
56
|
+
helpers_1.log.info(`Build docker image: ${this.tag}`);
|
|
57
|
+
yield Shell_1.default.exec(`docker build --platform amd64 -t ${this.fullTag} -f ${this.path}/dockerfile ${this.path}/.`);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
push() {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
yield Shell_1.default.execRepeat(`docker login -u ${ENV.CI_REGISTRY_USER} -p ${ENV.CI_REGISTRY_PASSWORD} ${ENV.CI_REGISTRY}`);
|
|
63
|
+
helpers_1.log.info(`Push docker image: ${this.tag} to registry`);
|
|
64
|
+
yield Shell_1.default.execRepeat(`docker push ${this.fullTag}`);
|
|
65
|
+
helpers_1.log.dbg(`Clear local docker image: ${this.tag}`);
|
|
66
|
+
yield Shell_1.default.exec(`docker rmi -f ${this.fullTag}`);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.DockerImage = DockerImage;
|
|
71
|
+
PREBUILD.nginx = (img) => __awaiter(void 0, void 0, void 0, function* () {
|
|
72
|
+
Shell_1.default.cd(img.path);
|
|
73
|
+
const mounts = { '/etc/nginx': `${img.path}/nginx` };
|
|
74
|
+
helpers_1.log.info(`Test nginx configs`);
|
|
75
|
+
yield run(img.srcImage, 'nginx -t', mounts);
|
|
76
|
+
yield run('yandex/gixy', 'yandex/gixy /etc/nginx/nginx.conf', mounts);
|
|
77
|
+
helpers_1.log.info(`Nginx config file:`);
|
|
78
|
+
helpers_1.log.info(yield Shell_1.default.cat(`${img.path}/nginx/nginx.conf`));
|
|
79
|
+
});
|
|
80
|
+
PREBUILD.gateway = (img) => __awaiter(void 0, void 0, void 0, function* () {
|
|
81
|
+
Shell_1.default.cd(img.path);
|
|
82
|
+
const mounts = { '/etc/nginx': `${img.path}/nginx`, '/etc/certs': `${img.path}/certs` };
|
|
83
|
+
helpers_1.log.info(`Test gateway nginx configs`);
|
|
84
|
+
yield run(img.srcImage, 'nginx -t', mounts);
|
|
85
|
+
yield run('yandex/gixy', 'yandex/gixy /etc/nginx/nginx.conf', mounts);
|
|
86
|
+
helpers_1.log.info(`Nginx config file:`);
|
|
87
|
+
helpers_1.log.info(yield Shell_1.default.cat(`${img.path}/nginx/nginx.conf`));
|
|
88
|
+
});
|
|
89
|
+
PREBUILD.spa = (img) => __awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
+
Shell_1.default.cd(img.path);
|
|
91
|
+
yield PREBUILD.nginx(img);
|
|
92
|
+
helpers_1.log.info(`Test and Distrib WEB SPA sources`);
|
|
93
|
+
yield Shell_1.default.exec(`npm run distrib`);
|
|
94
|
+
});
|
|
95
|
+
PREBUILD.node = (img) => __awaiter(void 0, void 0, void 0, function* () {
|
|
96
|
+
Shell_1.default.cd(img.path);
|
|
97
|
+
helpers_1.log.info(`Test and Distrib Node sources`);
|
|
98
|
+
yield Shell_1.default.exec(`npm run distrib`);
|
|
99
|
+
});
|
|
100
|
+
function run(srcImage, cmd, mnt) {
|
|
101
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
let extCmd = `docker run --rm`;
|
|
103
|
+
for (const path in mnt) {
|
|
104
|
+
if (mnt.hasOwnProperty(path)) {
|
|
105
|
+
extCmd += ` -v ${mnt[path]}:${path}`;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
extCmd += ` ${srcImage} ${cmd}`;
|
|
109
|
+
yield Shell_1.default.exec(`${extCmd}`);
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=DockerImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DockerImage.js","sourceRoot":"","sources":["../../k8s/DockerImage.ts"],"names":[],"mappings":"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"}
|
package/k8s/Node.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import '../libs/prototype';
|
|
2
|
+
import { ExecOptions } from '../libs/Shell';
|
|
3
|
+
import { Stage } from '../libs/Project';
|
|
4
|
+
import { Reporter } from '../libs/Reporter';
|
|
5
|
+
export declare class Node {
|
|
6
|
+
configFile: string;
|
|
7
|
+
namespace: string;
|
|
8
|
+
constructor(stage: Stage);
|
|
9
|
+
applyObject(manifestObj: Record<string, any>): Promise<void>;
|
|
10
|
+
apply(manifestFile: string, appName: string): Promise<{
|
|
11
|
+
valid: boolean;
|
|
12
|
+
msg: string;
|
|
13
|
+
}>;
|
|
14
|
+
status(reporter?: Reporter | undefined, appsOnly?: boolean): Promise<string[]>;
|
|
15
|
+
exec(cmd: string, opt?: ExecOptions | undefined, cmdPrefix?: string): Promise<string>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=Node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../k8s/Node.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,CAAC;AAI3B,OAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAO5C,qBAAa,IAAI;IAEhB,UAAU,SAAM;IAChB,SAAS,SAAM;gBAIH,KAAK,EAAE,KAAK;IAmBlB,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAO5C,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,CAAC;IAyCpF,MAAM,CAAC,QAAQ,GAAE,QAAQ,GAAG,SAAqB,EAAE,QAAQ,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAyB/F,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,WAAW,GAAG,SAAqB,EAAE,SAAS,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC;CAIlG"}
|
package/k8s/Node.js
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
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.Node = void 0;
|
|
16
|
+
require("../libs/prototype");
|
|
17
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
18
|
+
const Shell_1 = __importDefault(require("../libs/Shell"));
|
|
19
|
+
const helpers_1 = require("../libs/helpers");
|
|
20
|
+
const Exception_1 = require("../libs/Exception");
|
|
21
|
+
const ENV = process.env;
|
|
22
|
+
class Node {
|
|
23
|
+
constructor(stage) {
|
|
24
|
+
this.configFile = '';
|
|
25
|
+
this.namespace = '';
|
|
26
|
+
this.namespace = stage;
|
|
27
|
+
const configKey = `K8S_${stage.toUpperCase()}_CONFIG`;
|
|
28
|
+
let configFile = ENV[configKey];
|
|
29
|
+
if (stage !== 'prod' && !configFile) {
|
|
30
|
+
configFile = ENV.K8S_STAGES_CONFIG;
|
|
31
|
+
}
|
|
32
|
+
if (!configFile) {
|
|
33
|
+
throw new Exception_1.Exception(`K8s config file not found: ${configKey}`);
|
|
34
|
+
}
|
|
35
|
+
this.configFile = (0, helpers_1.resolvePath)(configFile);
|
|
36
|
+
}
|
|
37
|
+
applyObject(manifestObj) {
|
|
38
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const manifestYaml = js_yaml_1.default.dump(manifestObj);
|
|
40
|
+
yield this.exec(`apply -f -\n${manifestYaml}`, { silent: false }, 'cat <<EOF | ');
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
apply(manifestFile, appName) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
let status;
|
|
46
|
+
try {
|
|
47
|
+
yield this.exec(`apply -f ${manifestFile} --dry-run=server --validate`);
|
|
48
|
+
status = (yield Shell_1.default.exec(`cat ${manifestFile} | grep 'image:'`)).replace('image: ', '').replace(ENV.CI_REGISTRY_IMAGE + '/', '').trim();
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
helpers_1.log.error(e);
|
|
52
|
+
helpers_1.log.error('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
|
|
53
|
+
helpers_1.log.error(`VALIDATE FAIL: ${appName} at ${manifestFile}`);
|
|
54
|
+
helpers_1.log.error(e.message);
|
|
55
|
+
helpers_1.log.error(`${yield Shell_1.default.cat(manifestFile)}`);
|
|
56
|
+
helpers_1.log.error('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
|
|
57
|
+
return { valid: false, msg: e.message };
|
|
58
|
+
}
|
|
59
|
+
try {
|
|
60
|
+
status = yield this.exec(`apply -f ${manifestFile}`);
|
|
61
|
+
yield this.exec(`rollout status deploy/${appName} --watch=true --timeout=300s`);
|
|
62
|
+
helpers_1.log.info('+++++++++++++++++++++++++++++');
|
|
63
|
+
helpers_1.log.info(`DEPLOYED: ${appName}`);
|
|
64
|
+
helpers_1.log.info(yield this.exec(`get pods --no-headers -l app=${appName} -o wide`, { ignoreError: true, silent: true }));
|
|
65
|
+
helpers_1.log.info('+++++++++++++++++++++++++++++');
|
|
66
|
+
return { valid: true, msg: status };
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
helpers_1.log.error('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
|
|
70
|
+
helpers_1.log.error(`DEPLOY FAIL: ${appName}`);
|
|
71
|
+
helpers_1.log.error('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
|
|
72
|
+
helpers_1.log.error(yield this.exec(`get pods --no-headers -l app=${appName} -o wide`, { ignoreError: true, silent: true }));
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
status(reporter = undefined, appsOnly = true) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
const cmd = `get pods -o=jsonpath='{range .items[*]}{"\\n"}{"<b>"}{.metadata.labels.app}{"</b> "}{range .spec.containers[*]}{.image}{end}{" "}{.metadata.labels.pod-template-hash}{" "}{.status.phase}{end}'`;
|
|
80
|
+
const statusArr = (yield this.exec(cmd)).split('\n');
|
|
81
|
+
const result = [];
|
|
82
|
+
for (const row of statusArr) {
|
|
83
|
+
if (row.length < 4 || (appsOnly && (RegExp((ENV.CI_REGISTRY_IMAGE || '')).exec(row)) === null)) {
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
result.push(row.replace(ENV.CI_REGISTRY_IMAGE + '/', ''));
|
|
87
|
+
}
|
|
88
|
+
helpers_1.log.info(`K8S Node: ${this.namespace.toUpperCase()}`, result);
|
|
89
|
+
if (reporter) {
|
|
90
|
+
const msg = `\n<b>${this.namespace.toUpperCase()}</b> Pods:\n-----------------\n ` + result.join('\n-----------------\n ');
|
|
91
|
+
yield reporter.send(msg, '');
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
exec(cmd, opt = undefined, cmdPrefix = '') {
|
|
97
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
98
|
+
return Shell_1.default.exec(`${cmdPrefix}kubectl --kubeconfig ${this.configFile} -n ${this.namespace} ${cmd}`, opt);
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
exports.Node = Node;
|
|
103
|
+
//# sourceMappingURL=Node.js.map
|
package/k8s/Node.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Node.js","sourceRoot":"","sources":["../../k8s/Node.ts"],"names":[],"mappings":"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"}
|
package/k8s-build.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8s-build.d.ts","sourceRoot":"","sources":["../k8s-build.ts"],"names":[],"mappings":";AACA,OAAO,kBAAkB,CAAC"}
|
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"}
|