@soft-artel/ci 2.3.87 → 2.3.89
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/Project.d.ts +57 -0
- package/Project.d.ts.map +1 -0
- package/Project.js +173 -0
- package/Project.js.map +1 -0
- package/commands/incrementBuild.d.ts +3 -0
- package/commands/incrementBuild.d.ts.map +1 -0
- package/commands/incrementBuild.js +34 -0
- package/commands/incrementBuild.js.map +1 -0
- package/commands/k8s-build.d.ts +30 -0
- package/commands/k8s-build.d.ts.map +1 -0
- package/commands/k8s-build.js +291 -0
- package/commands/k8s-build.js.map +1 -0
- package/commands/k8s-deploy.d.ts +11 -0
- package/commands/k8s-deploy.d.ts.map +1 -0
- package/commands/k8s-deploy.js +145 -0
- package/commands/k8s-deploy.js.map +1 -0
- package/commands/xcode.d.ts +3 -0
- package/commands/xcode.d.ts.map +1 -0
- package/commands/xcode.js +128 -0
- package/commands/xcode.js.map +1 -0
- package/package.json +3 -3
- package/services/Git.d.ts +46 -0
- package/services/Git.d.ts.map +1 -0
- package/services/Git.js +138 -0
- package/services/Git.js.map +1 -0
- package/services/Gitlab.d.ts +14 -0
- package/services/Gitlab.d.ts.map +1 -0
- package/services/Gitlab.js +101 -0
- package/services/Gitlab.js.map +1 -0
- package/services/Jira.d.ts +32 -0
- package/services/Jira.d.ts.map +1 -0
- package/services/Jira.js +136 -0
- package/services/Jira.js.map +1 -0
- package/services/Reporter.d.ts +43 -0
- package/services/Reporter.d.ts.map +1 -0
- package/services/Reporter.js +134 -0
- package/services/Reporter.js.map +1 -0
- package/utils/Exception.d.ts +5 -0
- package/utils/Exception.d.ts.map +1 -0
- package/utils/Exception.js +14 -0
- package/utils/Exception.js.map +1 -0
- package/utils/Logger.d.ts +11 -0
- package/utils/Logger.d.ts.map +1 -0
- package/utils/Logger.js +62 -0
- package/utils/Logger.js.map +1 -0
- package/utils/Shell.d.ts +39 -0
- package/utils/Shell.d.ts.map +1 -0
- package/utils/Shell.js +89 -0
- package/utils/Shell.js.map +1 -0
- package/utils/helpers.d.ts +16 -0
- package/utils/helpers.d.ts.map +1 -0
- package/utils/helpers.js +109 -0
- package/utils/helpers.js.map +1 -0
- package/utils/prototype.d.ts +9 -0
- package/utils/prototype.d.ts.map +1 -0
- package/utils/prototype.js +186 -0
- package/utils/prototype.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/README.md +0 -33
- package/_publish.sh +0 -11
- package/src/Project.ts +0 -286
- package/src/commands/incrementBuild.ts +0 -46
- package/src/commands/k8s-build.ts +0 -441
- package/src/commands/k8s-deploy.ts +0 -215
- package/src/commands/xcode.ts +0 -192
- package/src/services/Git.ts +0 -203
- package/src/services/Gitlab.ts +0 -129
- package/src/services/Jira.ts +0 -228
- package/src/services/Reporter.ts +0 -230
- package/src/utils/Exception.ts +0 -19
- package/src/utils/Logger.ts +0 -85
- package/src/utils/Shell.ts +0 -120
- package/src/utils/helpers.ts +0 -126
- package/src/utils/prototype.ts +0 -313
- package/test.ts +0 -0
- package/tsconfig.json +0 -25
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import '../utils/prototype';
|
|
3
|
+
import { ExecOptions } from '../utils/Shell';
|
|
4
|
+
import { Reporter } from '../services/Reporter';
|
|
5
|
+
export declare function k8sApply(configFile: string, manifestFile: string, appName: string, namespace?: string): Promise<{
|
|
6
|
+
valid: boolean;
|
|
7
|
+
msg: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function k8sStatus(configFile: string, stage: string, reporter?: Reporter | undefined, appsOnly?: boolean, namespace?: string): Promise<string[]>;
|
|
10
|
+
export declare function k8sExec(cmd: string, configFile: string, opt?: ExecOptions | undefined, namespace?: string, cmdPrefix?: string): Promise<string>;
|
|
11
|
+
//# sourceMappingURL=k8s-deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8s-deploy.d.ts","sourceRoot":"","sources":["../../src/commands/k8s-deploy.ts"],"names":[],"mappings":";AACA,OAAO,oBAAoB,CAAC;AAI5B,OAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAuIhD,wBAAsB,QAAQ,CAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,CAAC,CAqCrJ;AAID,wBAAuB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAQ,GAAG,SAAqB,EAAE,QAAQ,GAAE,OAAc,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqB/K;AAMD,wBAAuB,OAAO,CAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,GAAE,WAAW,GAAG,SAAqB,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,SAAS,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAE9J"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.k8sExec = exports.k8sStatus = exports.k8sApply = void 0;
|
|
8
|
+
require("../utils/prototype");
|
|
9
|
+
const commander_1 = require("commander");
|
|
10
|
+
const Shell_1 = __importDefault(require("../utils/Shell"));
|
|
11
|
+
const Jira_1 = require("../services/Jira");
|
|
12
|
+
const Git_1 = __importDefault(require("../services/Git"));
|
|
13
|
+
const Project_1 = require("../Project");
|
|
14
|
+
const Logger_1 = require("../utils/Logger");
|
|
15
|
+
const Exception_1 = require("../utils/Exception");
|
|
16
|
+
const helpers_1 = require("../utils/helpers");
|
|
17
|
+
const ENV = process.env;
|
|
18
|
+
const runHandler = async (prj, reporter, opts, config) => {
|
|
19
|
+
reporter.$message_footer_changes_from = prj.prevVersion || prj.version;
|
|
20
|
+
reporter.$message_footer_changes_to = prj.version;
|
|
21
|
+
const release = opts.changelog ? await Jira_1.Jira.resolve(prj) : { commits: [], components: [], tasks: [], bugs: [], changelog: '' };
|
|
22
|
+
const stage = opts.stage;
|
|
23
|
+
const configKey = `K8S_${stage.toUpperCase()}_CONFIG`;
|
|
24
|
+
let configFile = ENV[configKey];
|
|
25
|
+
if (!configFile) {
|
|
26
|
+
throw new Exception_1.Exception(`CI VARIABLE K8s config file not found: ${configKey}`);
|
|
27
|
+
}
|
|
28
|
+
configFile = (0, helpers_1.resolvePath)(configFile);
|
|
29
|
+
prj.stage = stage;
|
|
30
|
+
await reporter.startDeploy(stage);
|
|
31
|
+
const k8s_dir = `${prj.rootPath}/_k8s/${stage}/`;
|
|
32
|
+
Shell_1.default.cd(k8s_dir);
|
|
33
|
+
const deployedApps = {};
|
|
34
|
+
const k8s_files = await Shell_1.default.ls(k8s_dir);
|
|
35
|
+
try {
|
|
36
|
+
for (const k8s_file of k8s_files) {
|
|
37
|
+
const appName = k8s_file.replace('.yml', '');
|
|
38
|
+
const status = await k8sApply(configFile, `${k8s_dir}/${k8s_file}`, appName, opts.namespace);
|
|
39
|
+
let msg = '';
|
|
40
|
+
if (status.valid) {
|
|
41
|
+
deployedApps[appName] = status.msg;
|
|
42
|
+
msg = ` + <b>${appName}</b>`;
|
|
43
|
+
await reporter.append(msg);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
msg = ` ❌ <b>${appName}</b> yaml is invalid!\n${status.msg}`;
|
|
47
|
+
await reporter.append(msg);
|
|
48
|
+
throw new Error(`FAIL: Deployment app: ${appName}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
if (Object.keys(deployedApps).length > 0) {
|
|
54
|
+
Logger_1.log.fail('FAIL: Deployments to rollout', Object.keys(deployedApps));
|
|
55
|
+
await reporter.append(` 🚫 <b>APPLAY FAIL</b>: Rollout all deployed apps`);
|
|
56
|
+
for (const appName of Object.keys(deployedApps)) {
|
|
57
|
+
await k8sExec(`rollout undo deployment/${appName}`, configFile, undefined, opts.namespace);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
if (opts.gitpush) {
|
|
63
|
+
await Git_1.default.setOrigin();
|
|
64
|
+
await Git_1.default.push(stage);
|
|
65
|
+
}
|
|
66
|
+
await prj.saveGitLabStagesVersions();
|
|
67
|
+
if (opts.changelog) {
|
|
68
|
+
await reporter.append(` ----------------\n+ Resolved tasks:${release.tasks.length}, bugs: ${release.bugs.length}`);
|
|
69
|
+
const bugsDeployed = await Jira_1.Jira.moveBugsAsDeployed(release.bugs);
|
|
70
|
+
if (bugsDeployed.length > 0) {
|
|
71
|
+
await reporter.append(` + Deployed ${bugsDeployed.length} bugs.`);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
await reporter.succses(release);
|
|
77
|
+
};
|
|
78
|
+
async function main() {
|
|
79
|
+
commander_1.program
|
|
80
|
+
.option('--path <project dir>', 'Path to project directory [default - current]')
|
|
81
|
+
.option('--stage <stage>', 'K8s node stage <stage>')
|
|
82
|
+
.option('--namespace <namespace>', 'Deploy manifests to K8s specific namespace')
|
|
83
|
+
.option('--no-changelog', 'Skip create gitlog')
|
|
84
|
+
.option('--no-gitpush', 'Skip pushing to stage branch after deploy')
|
|
85
|
+
.option('--debug', 'Output extra debugging info')
|
|
86
|
+
.action(async () => { await Project_1.Project.run(commander_1.program.opts() || {}, runHandler); });
|
|
87
|
+
await commander_1.program.parseAsync(process.argv);
|
|
88
|
+
}
|
|
89
|
+
main();
|
|
90
|
+
async function k8sApply(configFile, manifestFile, appName, namespace) {
|
|
91
|
+
let status;
|
|
92
|
+
try {
|
|
93
|
+
await k8sExec(`apply -f ${manifestFile} --dry-run=server --validate`, configFile, undefined, namespace);
|
|
94
|
+
status = (await Shell_1.default.exec(`cat ${manifestFile} | grep 'image:'`)).replace('image: ', '').replace(ENV.CI_REGISTRY_IMAGE + '/', '').trim();
|
|
95
|
+
}
|
|
96
|
+
catch (e) {
|
|
97
|
+
Logger_1.log.error(e);
|
|
98
|
+
Logger_1.log.fail('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
|
|
99
|
+
Logger_1.log.fail(`VALIDATE FAIL: ${appName} at ${manifestFile}`);
|
|
100
|
+
Logger_1.log.fail(e.message);
|
|
101
|
+
Logger_1.log.fail(`${await Shell_1.default.cat(manifestFile)}`);
|
|
102
|
+
Logger_1.log.fail('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
|
|
103
|
+
return { valid: false, msg: e.message };
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
status = await k8sExec(`apply -f ${manifestFile}`, configFile, undefined, namespace);
|
|
107
|
+
await k8sExec(`rollout status deploy/${appName} --watch=true --timeout=300s`, configFile);
|
|
108
|
+
Logger_1.log.info('+++++++++++++++++++++++++++++');
|
|
109
|
+
Logger_1.log.info(`DEPLOYED: ${appName}`);
|
|
110
|
+
Logger_1.log.info(await k8sExec(`get pods --no-headers -l app=${appName} -o wide`, configFile, { ignoreError: true, silent: true }), namespace);
|
|
111
|
+
Logger_1.log.info('+++++++++++++++++++++++++++++');
|
|
112
|
+
return { valid: true, msg: status };
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
Logger_1.log.fail('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
|
|
116
|
+
Logger_1.log.fail(`DEPLOY FAIL: ${appName}`);
|
|
117
|
+
Logger_1.log.fail('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
|
|
118
|
+
Logger_1.log.fail(await k8sExec(`get pods --no-headers -l app=${appName} -o wide`, configFile, { ignoreError: true, silent: true }), namespace);
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.k8sApply = k8sApply;
|
|
123
|
+
async function k8sStatus(configFile, stage, reporter = undefined, appsOnly = true, namespace) {
|
|
124
|
+
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}'`;
|
|
125
|
+
const statusArr = (await k8sExec(cmd, configFile, undefined, namespace)).split('\n');
|
|
126
|
+
const result = [];
|
|
127
|
+
for (const row of statusArr) {
|
|
128
|
+
if (row.length < 4 || (appsOnly && (RegExp((ENV.CI_REGISTRY_IMAGE || '')).exec(row)) === null)) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
result.push(row.replace(ENV.CI_REGISTRY_IMAGE + '/', ''));
|
|
132
|
+
}
|
|
133
|
+
Logger_1.log.info(`K8S Node: ${stage} [${namespace || 'default'}]`, result);
|
|
134
|
+
if (reporter) {
|
|
135
|
+
const msg = `\n<b>${stage.toUpperCase()}</b> Pods:\n-----------------\n ` + result.join('\n-----------------\n ');
|
|
136
|
+
await reporter.append(msg, '');
|
|
137
|
+
}
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
exports.k8sStatus = k8sStatus;
|
|
141
|
+
async function k8sExec(cmd, configFile, opt = undefined, namespace, cmdPrefix = '') {
|
|
142
|
+
return Shell_1.default.exec(`${cmdPrefix}kubectl --kubeconfig ${configFile} ${namespace ? `-n ${namespace}` : ''} ${cmd}`, opt);
|
|
143
|
+
}
|
|
144
|
+
exports.k8sExec = k8sExec;
|
|
145
|
+
//# sourceMappingURL=k8s-deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"k8s-deploy.js","sourceRoot":"","sources":["../../src/commands/k8s-deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xcode.d.ts","sourceRoot":"","sources":["../../src/commands/xcode.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const Shell_1 = __importDefault(require("../utils/Shell"));
|
|
9
|
+
const Git_1 = __importDefault(require("../services/Git"));
|
|
10
|
+
const Jira_1 = require("../services/Jira");
|
|
11
|
+
const Logger_1 = require("../utils/Logger");
|
|
12
|
+
const helpers_1 = require("../utils/helpers");
|
|
13
|
+
const Project_1 = require("../Project");
|
|
14
|
+
const ENV = process.env;
|
|
15
|
+
const runHandler = async (prj, reporter, opts, config) => {
|
|
16
|
+
const changedFiles = await Git_1.default.getDiffFiles();
|
|
17
|
+
if (changedFiles.length === 0 && !opts.sudo) {
|
|
18
|
+
Logger_1.log.info('SKIP BUILD: NO changedFiles found in repo');
|
|
19
|
+
process.exit(0);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
Logger_1.log.info('START BUILD!');
|
|
23
|
+
Logger_1.log.info(changedFiles.join('\n'));
|
|
24
|
+
}
|
|
25
|
+
const secrets = JSON.parse(ENV.SECRETS);
|
|
26
|
+
const scheme = opts.scheme || 'iOS';
|
|
27
|
+
const bundleID = await Shell_1.default.exec(`xcodebuild -showBuildSettings -scheme ${scheme} | grep PRODUCT_BUNDLE_IDENTIFIER | tr -d 'PRODUCT_BUNDLE_IDENTIFIER = '`, { silent: true });
|
|
28
|
+
reporter.$message_footer_changes_from = prj.version;
|
|
29
|
+
reporter.$message_footer_changes_to = ENV.CI_COMMIT_REF_NAME || 'dev';
|
|
30
|
+
prj.incrementBuild();
|
|
31
|
+
await reporter.startBuild();
|
|
32
|
+
await fastlane('increment_build_number', { build_number: prj.build });
|
|
33
|
+
Logger_1.log.info('unlock_keychain');
|
|
34
|
+
await fastlane('unlock_keychain', {
|
|
35
|
+
path: (0, helpers_1.resolvePath)(secrets.keychain.path),
|
|
36
|
+
password: secrets.keychain.password || opts.sudo,
|
|
37
|
+
set_default: true,
|
|
38
|
+
}, { silent: true });
|
|
39
|
+
await reporter.append(` + Build & archive xcode project.`);
|
|
40
|
+
await fastlane('build_app', {
|
|
41
|
+
scheme,
|
|
42
|
+
configuration: 'Release',
|
|
43
|
+
silent: false,
|
|
44
|
+
export_method: 'app-store',
|
|
45
|
+
xcargs: '-allowProvisioningUpdates',
|
|
46
|
+
include_bitcode: true,
|
|
47
|
+
}, { verbose: '' });
|
|
48
|
+
const release = await Jira_1.Jira.resolve(prj);
|
|
49
|
+
await reporter.append(` + Resolved tasks:${release.tasks.length}, bugs: ${release.bugs.length}`);
|
|
50
|
+
await Git_1.default.setOrigin();
|
|
51
|
+
await Shell_1.default.exec(`git reset --hard HEAD`, { silent: false });
|
|
52
|
+
await prj.updateChangeLog(release.changelog);
|
|
53
|
+
await Shell_1.default.exec(`git commit -a -m "v${prj.version}"`, { ignoreError: true, silent: false });
|
|
54
|
+
await Git_1.default.push(ENV.CI_COMMIT_REF_NAME || 'dev');
|
|
55
|
+
await reporter.append(` + Update <a href="${prj.url}/-/blob/${ENV.CI_COMMIT_REF_NAME || 'dev'}/CHANGELOG.md">changelog</a>.`);
|
|
56
|
+
await reporter.append(` + Git tag new version`);
|
|
57
|
+
await Git_1.default.makeTag(prj.version);
|
|
58
|
+
await reporter.append(` + Save build: ${prj.build} to GitLab`);
|
|
59
|
+
await prj.saveGitLabBuild();
|
|
60
|
+
await reporter.appendDeploy('testfight');
|
|
61
|
+
await reporter.append(` + Upload to Testfilght.`);
|
|
62
|
+
await fastlane('upload_to_testflight', {
|
|
63
|
+
api_key_path: ENV.TESTFLIGHT || `${prj.rootPath}/testflight.json`,
|
|
64
|
+
changelog: (0, helpers_1.stripTags)(release.changelog),
|
|
65
|
+
}, { attempts: 3, verbose: '' });
|
|
66
|
+
if (secrets.bugsnag[scheme]) {
|
|
67
|
+
await reporter.append(` + Download DSYMs.`);
|
|
68
|
+
await (0, helpers_1.asyncSleep)(60);
|
|
69
|
+
await fastlane('download_dsyms', {
|
|
70
|
+
api_key_path: ENV.TESTFLIGHT || `${prj.rootPath}/testflight.json`,
|
|
71
|
+
version: prj.shortVersion,
|
|
72
|
+
build_number: prj.build,
|
|
73
|
+
app_identifier: bundleID,
|
|
74
|
+
wait_for_dsym_processing: true,
|
|
75
|
+
output_directory: prj.rootPath,
|
|
76
|
+
}, {
|
|
77
|
+
attempts: 10, sleep: 120, silent: false, ignoreError: true,
|
|
78
|
+
});
|
|
79
|
+
await reporter.append(` + Upload DSYMs to BugSnag.`);
|
|
80
|
+
const cmd = `bugsnag-dsym-upload --api-key ${secrets.bugsnag[scheme]} --project-root ./ ${prj.rootPath}/${bundleID}-${prj.shortVersion}-${prj.build}.dSYM.zip`;
|
|
81
|
+
await Shell_1.default.execRepeat(cmd, 10, 120, { silent: false, ignoreError: true });
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
await reporter.append(` - Upload DSYMs to BugSnag. [SKIPED]`);
|
|
85
|
+
}
|
|
86
|
+
await reporter.append(` + Resolved tasks:${release.tasks.length}, bugs: ${release.bugs.length}`);
|
|
87
|
+
const bugsDeployed = await Jira_1.Jira.moveBugsAsDeployed(release.bugs);
|
|
88
|
+
if (bugsDeployed.length > 0) {
|
|
89
|
+
await reporter.append(` + Deployed ${bugsDeployed.length} bugs.`);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
await reporter.append(` - Deploy bugs. [SKIPED]`);
|
|
93
|
+
}
|
|
94
|
+
await reporter.append(` + Save ${prj.stage} -> ${prj.version} to GitLab`);
|
|
95
|
+
await prj.saveGitLabStagesVersions();
|
|
96
|
+
await reporter.succses(release);
|
|
97
|
+
};
|
|
98
|
+
async function main() {
|
|
99
|
+
commander_1.program
|
|
100
|
+
.option('--path <xcode project dir>', 'Path to Xcode project directory [default - current]')
|
|
101
|
+
.option('--scheme <Build scheme>', 'Xcode scheme to build and deploy')
|
|
102
|
+
.option('--sudo <password>', 'Sudo password for local run build')
|
|
103
|
+
.option('--debug', 'Output extra debugging info')
|
|
104
|
+
.option('--debug', 'Output extra debugging info')
|
|
105
|
+
.action(async () => { await Project_1.Project.run(commander_1.program.opts() || {}, runHandler, ['SECRETS']); });
|
|
106
|
+
await commander_1.program.parseAsync(process.argv);
|
|
107
|
+
}
|
|
108
|
+
main();
|
|
109
|
+
function fastlane(action, pars = {}, { silent = false, attempts = 1, sleep = 60, ignoreError = false, verbose = '--verbose' } = {}) {
|
|
110
|
+
let params = '';
|
|
111
|
+
for (const key of Object.keys(pars)) {
|
|
112
|
+
switch (typeof pars[key]) {
|
|
113
|
+
case 'object':
|
|
114
|
+
params += ` ${key}:"${JSON.stringify(pars[key])}"`;
|
|
115
|
+
break;
|
|
116
|
+
case 'string':
|
|
117
|
+
params += ` ${key}:"${pars[key]}"`;
|
|
118
|
+
break;
|
|
119
|
+
case 'number':
|
|
120
|
+
params += ` ${key}:${pars[key]}`;
|
|
121
|
+
break;
|
|
122
|
+
default:
|
|
123
|
+
params += ` ${key} `;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return Shell_1.default.execRepeat(`fastlane run ${action} ${params} ${verbose}`, attempts, sleep, { silent, ignoreError });
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=xcode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xcode.js","sourceRoot":"","sources":["../../src/commands/xcode.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"url": "http://gitlab.soft-artel.com/soft-artel/ci.git"
|
|
8
8
|
},
|
|
9
9
|
"name": "@soft-artel/ci",
|
|
10
|
-
"version": "2.3.
|
|
10
|
+
"version": "2.3.89",
|
|
11
11
|
"main": "sa-ci-k8s.js",
|
|
12
12
|
"bin": {
|
|
13
13
|
"sa-ci-k8s-build": "./commands/k8s-build.js",
|
|
@@ -24,13 +24,13 @@
|
|
|
24
24
|
"pub": "ts-node ./src/commands/incrementBuild && sh _publish.sh && sa-commit -a -p"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"axios": "1.7.
|
|
27
|
+
"axios": "^1.7.7",
|
|
28
28
|
"chalk": "4.0.0",
|
|
29
29
|
"commander": "12.1.0",
|
|
30
30
|
"js-yaml": "4.1.0",
|
|
31
31
|
"mustache": "4.2.0",
|
|
32
32
|
"node-html-markdown": "1.3.0",
|
|
33
|
-
"node-telegram-bot-api": "^0.
|
|
33
|
+
"node-telegram-bot-api": "^0.66.0",
|
|
34
34
|
"shelljs": "0.8.5"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
@@ -0,0 +1,46 @@
|
|
|
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 | never[];
|
|
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 getBrunch(): Promise<string | undefined>;
|
|
18
|
+
declare function lastTag(): Promise<string | undefined>;
|
|
19
|
+
declare function existTag(version: string): Promise<string | undefined>;
|
|
20
|
+
declare function getCommitsAndIssues(opt: {
|
|
21
|
+
onlyJira?: boolean;
|
|
22
|
+
limit?: number;
|
|
23
|
+
fromTag: string;
|
|
24
|
+
toTag: string;
|
|
25
|
+
}): Promise<{
|
|
26
|
+
commits: Record<string, any>;
|
|
27
|
+
issues: Record<string, any>;
|
|
28
|
+
}>;
|
|
29
|
+
declare function getDiffFiles(fromTag?: string, opt?: {
|
|
30
|
+
silent: boolean;
|
|
31
|
+
ignoreError: boolean;
|
|
32
|
+
}): Promise<string[]>;
|
|
33
|
+
declare const _default: {
|
|
34
|
+
Commit: typeof Commit;
|
|
35
|
+
setOrigin: typeof setOrigin;
|
|
36
|
+
push: typeof push;
|
|
37
|
+
makeTag: typeof makeTag;
|
|
38
|
+
lastTag: typeof lastTag;
|
|
39
|
+
existTag: typeof existTag;
|
|
40
|
+
getTags: typeof getTags;
|
|
41
|
+
getBrunch: typeof getBrunch;
|
|
42
|
+
getCommitsAndIssues: typeof getCommitsAndIssues;
|
|
43
|
+
getDiffFiles: typeof getDiffFiles;
|
|
44
|
+
};
|
|
45
|
+
export default _default;
|
|
46
|
+
//# sourceMappingURL=Git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Git.d.ts","sourceRoot":"","sources":["../../src/services/Git.ts"],"names":[],"mappings":"AAMA,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,+BAGb;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,SAAS,IAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAGrD;AAMD,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,wBAWE"}
|
package/services/Git.js
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const Shell_1 = __importDefault(require("../utils/Shell"));
|
|
7
|
+
const ENV = process.env;
|
|
8
|
+
class Commit {
|
|
9
|
+
date = new Date(ENV.CI_COMMIT_TIMESTAMP || 0 * 1);
|
|
10
|
+
sha = ENV.CI_COMMIT_SHA || '';
|
|
11
|
+
msg = ENV.CI_COMMIT_MESSAGE || '';
|
|
12
|
+
name = ENV.GITLAB_USER_NAME || '';
|
|
13
|
+
email = ENV.CI_COMMIT_AUTHOR || '';
|
|
14
|
+
constructor(row, delimetr) {
|
|
15
|
+
if (!row || !delimetr) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const cols = row.split(delimetr);
|
|
19
|
+
this.date = new Date(Date.parse(cols[3]));
|
|
20
|
+
this.sha = cols[0];
|
|
21
|
+
this.email = cols[2];
|
|
22
|
+
this.name = cols[1];
|
|
23
|
+
this.msg = cols[4];
|
|
24
|
+
}
|
|
25
|
+
get issuesKeys() {
|
|
26
|
+
const matchedIssues = this.msg.match(/[A-Z0-9]+-\d+/g);
|
|
27
|
+
return !matchedIssues || matchedIssues.length === 0 ? [] : matchedIssues;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async function setOrigin(opts = {}) {
|
|
31
|
+
if (!opts.jobId && !ENV.CI_JOB_ID) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
let url = opts.url || ENV.CI_PROJECT_URL || '';
|
|
35
|
+
url = url.replace('https://', `https://gitlab:${ENV.GITLAB_PASS}@`);
|
|
36
|
+
await Shell_1.default.exec(`git remote set-url --push origin ${url}.git`);
|
|
37
|
+
await Shell_1.default.exec(`git remote set-url origin ${url}.git`);
|
|
38
|
+
}
|
|
39
|
+
async function push(branch) {
|
|
40
|
+
await Shell_1.default.exec(`git pull --ff --allow-unrelated-histories origin ${branch}`);
|
|
41
|
+
await Shell_1.default.execRepeat(`git push origin HEAD:${branch}`);
|
|
42
|
+
}
|
|
43
|
+
async function makeTag(version) {
|
|
44
|
+
const tag = `v${version}`;
|
|
45
|
+
await Shell_1.default.exec(`git tag --force "${tag}"`);
|
|
46
|
+
await Shell_1.default.execRepeat(`git push --force origin ${tag}`);
|
|
47
|
+
}
|
|
48
|
+
async function getTags(limit = 1000, mask = /v[\d]+\.[\d]+\.[\d]+$/) {
|
|
49
|
+
await Shell_1.default.exec(`git fetch -t`, { ignoreError: true });
|
|
50
|
+
const tagsStr = await Shell_1.default.exec('git tag | sort --version-sort', { silent: true, ignoreError: true });
|
|
51
|
+
let list = tagsStr.split('\n').filter((f) => f.length > 2);
|
|
52
|
+
list = list.length > 0 ? list.reverse() : [tagsStr];
|
|
53
|
+
const tags = [];
|
|
54
|
+
let i = 1;
|
|
55
|
+
for (const tag of list) {
|
|
56
|
+
if (tag === '' || mask && (mask.exec(tag)) === null) {
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
tags.push(tag);
|
|
60
|
+
i++;
|
|
61
|
+
if (i >= limit) {
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return tags;
|
|
66
|
+
}
|
|
67
|
+
async function getBrunch() {
|
|
68
|
+
const brunch = await Shell_1.default.exec(`git rev-parse --abbrev-ref HEAD`, { ignoreError: true });
|
|
69
|
+
return brunch.length > 3 ? brunch : undefined;
|
|
70
|
+
}
|
|
71
|
+
async function lastTag() {
|
|
72
|
+
const list = await getTags(1);
|
|
73
|
+
if (list && Array.isArray(list) && list.length > 0) {
|
|
74
|
+
return list[0];
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
async function existTag(version) {
|
|
79
|
+
const list = await getTags(100);
|
|
80
|
+
if (list && Array.isArray(list) && list.includes(`v${version}`)) {
|
|
81
|
+
return `v${version}`;
|
|
82
|
+
}
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
async function getCommitsAndIssues(opt) {
|
|
86
|
+
opt.onlyJira = opt.onlyJira ?? true;
|
|
87
|
+
opt.limit = opt.limit ?? 10;
|
|
88
|
+
const result = { commits: {}, issues: {} };
|
|
89
|
+
const d = '#!|!#';
|
|
90
|
+
const from = opt.fromTag;
|
|
91
|
+
const to = opt.toTag || '';
|
|
92
|
+
const par = `${from}..${from !== '' && to === '' ? 'HEAD' : to}`;
|
|
93
|
+
const commits = await 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 });
|
|
94
|
+
if (!commits || commits.includes(d) === false) {
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
let arr = commits.split('\n');
|
|
98
|
+
if (arr.length === 0) {
|
|
99
|
+
arr = [commits];
|
|
100
|
+
}
|
|
101
|
+
for (const row of arr) {
|
|
102
|
+
const commit = new Commit(row, d);
|
|
103
|
+
const issuesKeys = commit.issuesKeys;
|
|
104
|
+
if (opt.onlyJira && issuesKeys.length === 0) {
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
result.commits[commit.sha] = commit;
|
|
108
|
+
for (const key of issuesKeys) {
|
|
109
|
+
const issue = result.issues[key] || [];
|
|
110
|
+
issue.push(commit.sha);
|
|
111
|
+
result.issues[key] = issue;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
async function getDiffFiles(fromTag, opt = { silent: true, ignoreError: true }) {
|
|
117
|
+
const from = fromTag || await lastTag();
|
|
118
|
+
const diffCmd = from && from !== '' ? `git diff --name-only HEAD ${from}` : "find . -not -path '*/_*' -not -path '*/\.*' -not -path '*/node_modules*' -type d -maxdepth 2";
|
|
119
|
+
const diffStr = await Shell_1.default.exec(diffCmd, opt) || '';
|
|
120
|
+
let arr = diffStr.split('\n');
|
|
121
|
+
if (arr.length === 0) {
|
|
122
|
+
arr = [diffStr];
|
|
123
|
+
}
|
|
124
|
+
return arr.filter((f) => f !== '').sort();
|
|
125
|
+
}
|
|
126
|
+
exports.default = {
|
|
127
|
+
Commit,
|
|
128
|
+
setOrigin,
|
|
129
|
+
push,
|
|
130
|
+
makeTag,
|
|
131
|
+
lastTag,
|
|
132
|
+
existTag,
|
|
133
|
+
getTags,
|
|
134
|
+
getBrunch,
|
|
135
|
+
getCommitsAndIssues,
|
|
136
|
+
getDiffFiles,
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=Git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Git.js","sourceRoot":"","sources":["../../src/services/Git.ts"],"names":[],"mappings":";;;;;AAAA,2DAAmC;AAEnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AAIxB,MAAM,MAAM;IAEX,IAAI,GAAI,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,GAAI,CAAC,CAAC,CAAC;IACpD,GAAG,GAAK,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IAChC,GAAG,GAAK,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;IACpC,IAAI,GAAI,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;IACnC,KAAK,GAAG,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAEnC,YAAY,GAAW,EAAE,QAAgB;QACxC,IAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAC,CAAC;YACrB,OAAO;QACR,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,GAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,UAAU;QACb,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACvD,OAAO,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1E,CAAC;CAED;AAKD,KAAK,UAAU,SAAS,CAAC,OAAwC,EAAE;IAClE,IAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,SAAS,EAAC,CAAC;QAEjC,OAAO;IACR,CAAC;IAED,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC;IAE/C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,kBAAmB,GAAG,CAAC,WAAY,GAAG,CAAC,CAAC;IACtE,MAAM,eAAK,CAAC,IAAI,CAAC,oCAAqC,GAAI,MAAM,CAAC,CAAC;IAClE,MAAM,eAAK,CAAC,IAAI,CAAC,6BAA8B,GAAI,MAAM,CAAC,CAAC;AAE5D,CAAC;AAID,KAAK,UAAU,IAAI,CAAC,MAAc;IACjC,MAAM,eAAK,CAAC,IAAI,CAAC,oDAAqD,MAAO,EAAE,CAAC,CAAC;IACjF,MAAM,eAAK,CAAC,UAAU,CAAC,wBAAyB,MAAO,EAAE,CAAC,CAAC;AAC5D,CAAC;AAID,KAAK,UAAU,OAAO,CAAC,OAAe;IACrC,MAAM,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;IAC1B,MAAM,eAAK,CAAC,IAAI,CAAC,oBAAqB,GAAI,GAAG,CAAC,CAAC;IAC/C,MAAM,eAAK,CAAC,UAAU,CAAC,2BAA4B,GAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAID,KAAK,UAAU,OAAO,CAAC,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,uBAAuB;IAClE,MAAM,eAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAExD,MAAM,OAAO,GAAI,MAAM,eAAK,CAAC,IAAI,CAAC,+BAA+B,EAAE,EAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAC,IAAI,EAAC,CAAC,CAAC;IAErG,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,EAAE,CAAA,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzD,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAEpD,MAAM,IAAI,GAAG,EAAE,CAAC;IAEhB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,IAAG,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAI,IAAI,EAAC,CAAC;YAClD,SAAS;QACV,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,CAAC,EAAE,CAAC;QACJ,IAAG,CAAC,IAAI,KAAK,EAAC,CAAC;YACd,MAAM;QACP,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAID,KAAK,UAAU,SAAS;IACvB,MAAM,MAAM,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1F,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9C,CAAC;AAMD,KAAK,UAAU,OAAO;IACrB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;QAClD,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAID,KAAK,UAAU,QAAQ,CAAC,OAAe;IACtC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAEhC,IAAG,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAK,OAAQ,EAAE,CAAC,EAAC,CAAC;QACjE,OAAO,IAAK,OAAQ,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAID,KAAK,UAAU,mBAAmB,CAAC,GAA0E;IAE5G,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,IAAI,CAAC;IACpC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IAE5B,MAAM,MAAM,GAAkE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAE1G,MAAM,CAAC,GAAG,OAAO,CAAC;IAElB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,MAAM,EAAE,GAAK,GAAG,CAAC,KAAK,IAAM,EAAE,CAAC;IAE/B,MAAM,GAAG,GAAG,GAAG,IAAI,KAAM,IAAI,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAG,EAAE,CAAC;IAEnE,MAAM,OAAO,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,WAAY,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAoB,GAAG,CAAC,KAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtK,IAAG,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,EAAC,CAAC;QAC7C,OAAO,MAAM,CAAC;IACf,CAAC;IAED,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAG,GAAG,CAAC,MAAM,KAAK,CAAC,EAAC,CAAC;QACpB,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QAEvB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAErC,IAAG,GAAG,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAC,CAAC;YAC3C,SAAS;QACV,CAAC;QAED,MAAM,CAAC,OAAO,CAAE,MAAM,CAAC,GAAG,CAAE,GAAG,MAAM,CAAC;QAEtC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAE,GAAG,CAAE,IAAI,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,CAAC,MAAM,CAAE,GAAG,CAAE,GAAG,KAAK,CAAC;QAC9B,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAID,KAAK,UAAU,YAAY,CAAC,OAAgB,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAEtF,MAAM,IAAI,GAAG,OAAO,IAAI,MAAM,OAAO,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,6BAA8B,IAAK,EAAE,CAAC,CAAC,CAAC,8FAA8F,CAAC;IAC7K,MAAM,OAAO,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAErD,IAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAG,GAAG,CAAC,MAAM,KAAK,CAAC,EAAC,CAAC;QACpB,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,EAAE,CAAA,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC;AAID,kBAAe;IACd,MAAM;IACN,SAAS;IACT,IAAI;IACJ,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,SAAS;IACT,mBAAmB;IACnB,YAAY;CACZ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Project } from '../Project';
|
|
2
|
+
declare class Gitlab {
|
|
3
|
+
privateToken: string;
|
|
4
|
+
configVarName: string;
|
|
5
|
+
projectId: number;
|
|
6
|
+
url: string;
|
|
7
|
+
constructor(privateToken: string, projectId: number, configGitlabUrl?: string, configVarName?: string);
|
|
8
|
+
downloadConfig(): Promise<any>;
|
|
9
|
+
uploadConfig(config: Record<string, any>): Promise<void>;
|
|
10
|
+
saveVariable(prj: Project, name: string, value: any): Promise<any>;
|
|
11
|
+
}
|
|
12
|
+
declare const _default: Gitlab;
|
|
13
|
+
export default _default;
|
|
14
|
+
//# sourceMappingURL=Gitlab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Gitlab.d.ts","sourceRoot":"","sources":["../../src/services/Gitlab.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC,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;IAexC,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;CAuCzD;;AAoBD,wBAA4F"}
|