@catladder/pipeline 0.0.7 → 1.0.2
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/babel-inline.json +11 -0
- package/bin/catladder-gitlab.js +3 -0
- package/dist/build/base/constants.d.ts +7 -0
- package/dist/build/base/constants.js +11 -0
- package/dist/build/base/createBuildJob.d.ts +5 -0
- package/dist/build/base/createBuildJob.js +99 -0
- package/dist/build/docker.d.ts +5 -0
- package/dist/build/docker.js +95 -0
- package/dist/build/index.d.ts +12 -0
- package/dist/build/index.js +63 -0
- package/dist/build/node/buildJob.d.ts +3 -0
- package/dist/build/node/buildJob.js +97 -0
- package/dist/build/node/cache.d.ts +4 -0
- package/dist/build/node/cache.js +67 -0
- package/dist/build/node/constants.d.ts +6 -0
- package/dist/build/node/constants.js +10 -0
- package/dist/build/node/index.d.ts +5 -0
- package/dist/build/node/index.js +63 -0
- package/dist/build/node/meteor.d.ts +3 -0
- package/dist/build/node/meteor.js +103 -0
- package/dist/build/node/testJob.d.ts +3 -0
- package/dist/build/node/testJob.js +112 -0
- package/dist/build/node/yarn.d.ts +2 -0
- package/dist/build/node/yarn.js +12 -0
- package/dist/build/tests/storybook.test.d.ts +1 -0
- package/dist/build/tests/storybook.test.js +221 -0
- package/dist/build/types.d.ts +63 -0
- package/dist/build/types.js +16 -0
- package/dist/catladder-gitlab.d.ts +1 -0
- package/dist/catladder-gitlab.js +44 -0
- package/dist/config/configruedEnvs.d.ts +4 -0
- package/dist/config/configruedEnvs.js +86 -0
- package/dist/config/configruedEnvs.test.d.ts +1 -0
- package/dist/config/configruedEnvs.test.js +103 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/index.js +24 -0
- package/dist/config/readConfig.d.ts +2 -0
- package/dist/config/readConfig.js +47 -0
- package/dist/constants.d.ts +2 -0
- package/dist/constants.js +6 -0
- package/dist/context/index.d.ts +5 -0
- package/dist/context/index.js +211 -0
- package/dist/defaults/index.d.ts +2 -0
- package/dist/defaults/index.js +8 -0
- package/dist/deploy/base.d.ts +9 -0
- package/dist/deploy/base.js +94 -0
- package/dist/deploy/index.d.ts +11 -0
- package/dist/deploy/index.js +34 -0
- package/dist/deploy/kubernetes/cloudsql.d.ts +6 -0
- package/dist/deploy/kubernetes/cloudsql.js +16 -0
- package/dist/deploy/kubernetes/deployJob.d.ts +3 -0
- package/dist/deploy/kubernetes/deployJob.js +148 -0
- package/dist/deploy/kubernetes/index.d.ts +1 -0
- package/dist/deploy/kubernetes/index.js +22 -0
- package/dist/deploy/kubernetes/mongodb.d.ts +15 -0
- package/dist/deploy/kubernetes/mongodb.js +23 -0
- package/dist/deploy/types.d.ts +92 -0
- package/dist/deploy/types.js +16 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +36 -0
- package/dist/pipeline/createChildPipeline.d.ts +9 -0
- package/dist/pipeline/createChildPipeline.js +266 -0
- package/dist/pipeline/createChildPipeline.test.d.ts +1 -0
- package/dist/pipeline/createChildPipeline.test.js +199 -0
- package/dist/pipeline/createJobs.d.ts +3 -0
- package/dist/pipeline/createJobs.js +331 -0
- package/dist/pipeline/index.d.ts +2 -0
- package/dist/pipeline/index.js +24 -0
- package/dist/pipeline/yarnInfo.d.ts +2 -0
- package/dist/pipeline/yarnInfo.js +296 -0
- package/dist/rules/index.d.ts +3 -0
- package/dist/rules/index.js +27 -0
- package/dist/runner/index.d.ts +3 -0
- package/dist/runner/index.js +12 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/config.d.ts +73 -0
- package/dist/types/config.js +80 -0
- package/dist/types/context.d.ts +36 -0
- package/dist/types/context.js +3 -0
- package/dist/types/gitlab-types.d.ts +86 -0
- package/dist/types/gitlab-types.js +5 -0
- package/dist/{scripts/magic/types → types}/index.d.ts +1 -1
- package/dist/types/index.js +26 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +18 -0
- package/package.json +30 -9
- package/src/build/base/constants.ts +7 -0
- package/src/build/base/createBuildJob.ts +46 -0
- package/{scripts/magic → src}/build/docker.ts +15 -2
- package/src/build/index.ts +42 -0
- package/src/build/node/buildJob.ts +54 -0
- package/src/build/node/cache.ts +36 -0
- package/src/build/node/constants.ts +6 -0
- package/src/build/node/index.ts +17 -0
- package/src/build/node/meteor.ts +75 -0
- package/src/build/node/testJob.ts +80 -0
- package/src/build/node/yarn.ts +8 -0
- package/src/build/tests/storybook.test.ts +46 -0
- package/src/build/types.ts +75 -0
- package/src/catladder-gitlab.ts +52 -0
- package/src/config/configruedEnvs.test.ts +97 -0
- package/src/config/configruedEnvs.ts +56 -0
- package/src/config/index.ts +2 -0
- package/src/config/readConfig.ts +36 -0
- package/src/constants.ts +2 -0
- package/src/context/index.ts +194 -0
- package/src/defaults/index.ts +6 -0
- package/src/deploy/base.ts +101 -0
- package/src/deploy/index.ts +19 -0
- package/src/deploy/kubernetes/cloudsql.ts +13 -0
- package/src/deploy/kubernetes/deployJob.ts +116 -0
- package/src/deploy/kubernetes/index.ts +1 -0
- package/src/deploy/kubernetes/mongodb.ts +20 -0
- package/src/deploy/types.ts +60 -0
- package/src/index.ts +8 -0
- package/{scripts/magic/tests/createPipeline.test.ts → src/pipeline/createChildPipeline.test.ts} +5 -4
- package/src/pipeline/createChildPipeline.ts +51 -0
- package/src/pipeline/createJobs.ts +158 -0
- package/src/pipeline/index.ts +2 -0
- package/src/pipeline/yarnInfo.ts +54 -0
- package/src/rules/index.ts +37 -0
- package/src/runner/index.ts +10 -0
- package/src/types/config.ts +88 -0
- package/src/types/context.ts +36 -0
- package/src/types/gitlab-types.ts +94 -0
- package/{scripts/magic → src}/types/index.ts +0 -0
- package/src/utils/index.ts +10 -0
- package/tsconfig.json +4 -2
- package/Dockerfile +0 -84
- package/dist/scripts/createSamplePipeline.d.ts +0 -2
- package/dist/scripts/createSamplePipeline.js +0 -14
- package/dist/scripts/magic/build/docker.d.ts +0 -2
- package/dist/scripts/magic/build/docker.js +0 -68
- package/dist/scripts/magic/build/index.d.ts +0 -9
- package/dist/scripts/magic/build/index.js +0 -12
- package/dist/scripts/magic/build/node.d.ts +0 -6
- package/dist/scripts/magic/build/node.js +0 -150
- package/dist/scripts/magic/build/types.d.ts +0 -18
- package/dist/scripts/magic/build/types.js +0 -7
- package/dist/scripts/magic/context/index.d.ts +0 -3
- package/dist/scripts/magic/context/index.js +0 -122
- package/dist/scripts/magic/createChildPipeline/index.d.ts +0 -3
- package/dist/scripts/magic/createChildPipeline/index.js +0 -68
- package/dist/scripts/magic/createPipeline.d.ts +0 -14
- package/dist/scripts/magic/createPipeline.js +0 -80
- package/dist/scripts/magic/deploy/index.d.ts +0 -9
- package/dist/scripts/magic/deploy/index.js +0 -12
- package/dist/scripts/magic/deploy/kubernetes.d.ts +0 -5
- package/dist/scripts/magic/deploy/kubernetes.js +0 -62
- package/dist/scripts/magic/deploy/types.d.ts +0 -41
- package/dist/scripts/magic/deploy/types.js +0 -7
- package/dist/scripts/magic/index.d.ts +0 -2
- package/dist/scripts/magic/index.js +0 -16
- package/dist/scripts/magic/sample-config.d.ts +0 -3
- package/dist/scripts/magic/sample-config.js +0 -77
- package/dist/scripts/magic/tests/createPipeline.test.d.ts +0 -1
- package/dist/scripts/magic/tests/createPipeline.test.js +0 -89
- package/dist/scripts/magic/types/config.d.ts +0 -49
- package/dist/scripts/magic/types/config.js +0 -17
- package/dist/scripts/magic/types/context.d.ts +0 -19
- package/dist/scripts/magic/types/context.js +0 -2
- package/dist/scripts/magic/types/gitlab-types.d.ts +0 -57
- package/dist/scripts/magic/types/gitlab-types.js +0 -2
- package/dist/scripts/magic/types/index.js +0 -15
- package/dist/scripts/magic.d.ts +0 -2
- package/dist/scripts/magic.js +0 -43
- package/dist/scripts/monorepoGenerate.d.ts +0 -2
- package/dist/scripts/monorepoGenerate.js +0 -164
- package/dist/scripts/printAllValues.d.ts +0 -2
- package/dist/scripts/printAllValues.js +0 -58
- package/dist/scripts/printBuildEnv.d.ts +0 -2
- package/dist/scripts/printBuildEnv.js +0 -77
- package/dist/scripts/utils/extractAllValues.d.ts +0 -1
- package/dist/scripts/utils/extractAllValues.js +0 -78
- package/dist/scripts/utils/extractBuildEnv.d.ts +0 -5
- package/dist/scripts/utils/extractBuildEnv.js +0 -152
- package/dist/scripts/utils/extractValuesFromEnvVars.d.ts +0 -2
- package/dist/scripts/utils/extractValuesFromEnvVars.js +0 -63
- package/dist/scripts/utils/extractValuesFromMr.d.ts +0 -2
- package/dist/scripts/utils/extractValuesFromMr.js +0 -86
- package/dist/tests/extractValuesFromMr.test.d.ts +0 -1
- package/dist/tests/extractValuesFromMr.test.js +0 -68
- package/scripts/createSamplePipeline.ts +0 -10
- package/scripts/getCommitInfo +0 -11
- package/scripts/kubernetesCreateSecret +0 -9
- package/scripts/kubernetesDelete +0 -4
- package/scripts/kubernetesDeploy +0 -55
- package/scripts/kubernetesEnsureNamespace +0 -3
- package/scripts/magic/build/index.ts +0 -18
- package/scripts/magic/build/node.ts +0 -143
- package/scripts/magic/build/types.ts +0 -21
- package/scripts/magic/context/index.ts +0 -127
- package/scripts/magic/createChildPipeline/index.ts +0 -60
- package/scripts/magic/createPipeline.ts +0 -52
- package/scripts/magic/deploy/index.ts +0 -19
- package/scripts/magic/deploy/kubernetes.ts +0 -65
- package/scripts/magic/deploy/types.ts +0 -29
- package/scripts/magic/index.ts +0 -2
- package/scripts/magic/sample-config.ts +0 -78
- package/scripts/magic/types/config.ts +0 -54
- package/scripts/magic/types/context.ts +0 -21
- package/scripts/magic/types/gitlab-types.ts +0 -69
- package/scripts/magic.ts +0 -51
- package/scripts/monorepoGenerate.ts +0 -104
- package/scripts/printAllValues.ts +0 -17
- package/scripts/printBuildEnv.ts +0 -22
- package/scripts/utils/extractAllValues.ts +0 -32
- package/scripts/utils/extractBuildEnv.ts +0 -94
- package/scripts/utils/extractValuesFromEnvVars.ts +0 -21
- package/scripts/utils/extractValuesFromMr.ts +0 -39
- package/tests/extractValuesFromMr.test.ts +0 -156
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
-
if (!m) return o;
|
|
16
|
-
var i = m.call(o), r, ar = [], e;
|
|
17
|
-
try {
|
|
18
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
-
}
|
|
20
|
-
catch (error) { e = { error: error }; }
|
|
21
|
-
finally {
|
|
22
|
-
try {
|
|
23
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
-
}
|
|
25
|
-
finally { if (e) throw e.error; }
|
|
26
|
-
}
|
|
27
|
-
return ar;
|
|
28
|
-
};
|
|
29
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from) {
|
|
30
|
-
for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
|
|
31
|
-
to[j] = from[i];
|
|
32
|
-
return to;
|
|
33
|
-
};
|
|
34
|
-
exports.__esModule = true;
|
|
35
|
-
exports.createJobs = void 0;
|
|
36
|
-
var build_1 = require("../build");
|
|
37
|
-
var context_1 = require("../context");
|
|
38
|
-
var deploy_1 = require("../deploy");
|
|
39
|
-
var createRawJobs = function (context) {
|
|
40
|
-
var buildJobs = build_1.buildJobCreators[context.componentConfig.build.type](context);
|
|
41
|
-
var deployJobs = deploy_1.deployJobCreators[context.componentConfig.deploy.type](context);
|
|
42
|
-
return __spreadArray(__spreadArray([], __read(buildJobs)), __read(deployJobs));
|
|
43
|
-
};
|
|
44
|
-
var getFullJobName = function (name, componentName, env) {
|
|
45
|
-
if (env) {
|
|
46
|
-
return env + " " + componentName + " " + name;
|
|
47
|
-
}
|
|
48
|
-
return componentName + " " + name;
|
|
49
|
-
};
|
|
50
|
-
var replaceReferences = function (def, componentName, env) {
|
|
51
|
-
var _a, _b;
|
|
52
|
-
return __assign(__assign({}, def), { needs: (_a = def.needs) === null || _a === void 0 ? void 0 : _a.map(function (n) { return getFullJobName(n, componentName, env); }), dependencies: (_b = def.dependencies) === null || _b === void 0 ? void 0 : _b.map(function (n) {
|
|
53
|
-
return getFullJobName(n, componentName, env);
|
|
54
|
-
}) });
|
|
55
|
-
};
|
|
56
|
-
var createJobs = function (envs, config, componentName) {
|
|
57
|
-
return envs.reduce(function (acc, env) {
|
|
58
|
-
var context = context_1.createContext(componentName, config, env);
|
|
59
|
-
var jobs = createRawJobs(context);
|
|
60
|
-
return __assign(__assign({}, acc), jobs.reduce(function (acc, _a) {
|
|
61
|
-
var _b;
|
|
62
|
-
var name = _a.name, job = _a.job, _c = _a.perEnv, perEnv = _c === void 0 ? true : _c;
|
|
63
|
-
var def = job;
|
|
64
|
-
return __assign(__assign({}, acc), (_b = {}, _b[getFullJobName(name, componentName, perEnv ? env : undefined)] = replaceReferences(def, componentName, perEnv ? env : undefined), _b));
|
|
65
|
-
}, {}));
|
|
66
|
-
}, {});
|
|
67
|
-
};
|
|
68
|
-
exports.createJobs = createJobs;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Config, PipelineTrigger } from "./types/config";
|
|
2
|
-
export declare const createPipeline: (trigger: PipelineTrigger, config: Config) => Promise<{
|
|
3
|
-
image: string;
|
|
4
|
-
workflow: {
|
|
5
|
-
rules: ({
|
|
6
|
-
if: string;
|
|
7
|
-
when?: undefined;
|
|
8
|
-
} | {
|
|
9
|
-
if: string;
|
|
10
|
-
when: string;
|
|
11
|
-
})[];
|
|
12
|
-
};
|
|
13
|
-
stages: string[];
|
|
14
|
-
}>;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (_) try {
|
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
exports.__esModule = true;
|
|
50
|
-
exports.createPipeline = void 0;
|
|
51
|
-
var createChildPipeline_1 = require("./createChildPipeline");
|
|
52
|
-
var config_1 = require("./types/config");
|
|
53
|
-
var createPipeline = function (trigger, config) { return __awaiter(void 0, void 0, void 0, function () {
|
|
54
|
-
var envs, components, jobs, rules, mainPipeline;
|
|
55
|
-
return __generator(this, function (_a) {
|
|
56
|
-
envs = Object.keys(config_1.ENV_TYPES).filter(function (e) { return config_1.ENV_TYPES[e].trigger === trigger; });
|
|
57
|
-
components = Object.keys(config.components);
|
|
58
|
-
jobs = components.reduce(function (acc, componentName) {
|
|
59
|
-
return __assign(__assign({}, acc), createChildPipeline_1.createJobs(envs, config, componentName));
|
|
60
|
-
}, {});
|
|
61
|
-
rules = [
|
|
62
|
-
// same as rules "always", but with `changes` to only trigger changed branches
|
|
63
|
-
{ "if": "$CI_COMMIT_TAG" },
|
|
64
|
-
{
|
|
65
|
-
"if": "$CI_COMMIT_MESSAGE =~ /^chore(release).*/",
|
|
66
|
-
when: "never"
|
|
67
|
-
},
|
|
68
|
-
{ "if": "$CI_COMMIT_BRANCH =~ /^[0-9]+.([0-9]+|x).x$/" },
|
|
69
|
-
{
|
|
70
|
-
"if": "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"
|
|
71
|
-
},
|
|
72
|
-
{ "if": "$CI_MERGE_REQUEST_ID" },
|
|
73
|
-
];
|
|
74
|
-
mainPipeline = __assign({ image: "git.panter.ch:5001/catladder/gitlab-ci/pipeline:$PIPELINE_IMAGE_TAG", workflow: {
|
|
75
|
-
rules: rules
|
|
76
|
-
}, stages: ["setup", "test", "build", "deploy", "verify", "actions"] }, jobs);
|
|
77
|
-
return [2 /*return*/, mainPipeline];
|
|
78
|
-
});
|
|
79
|
-
}); };
|
|
80
|
-
exports.createPipeline = createPipeline;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { GitlabJobs } from "../types/gitlab-types";
|
|
2
|
-
import { Context } from "../types/context";
|
|
3
|
-
import { DeployConfig } from "./types";
|
|
4
|
-
export declare const deployJobCreators: {
|
|
5
|
-
[type in DeployConfig["type"]]: (context: Context) => GitlabJobs;
|
|
6
|
-
};
|
|
7
|
-
export declare const getDeployDefaults: {
|
|
8
|
-
[type in DeployConfig["type"]]: () => Partial<DeployConfig>;
|
|
9
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
exports.__esModule = true;
|
|
3
|
-
exports.getDeployDefaults = exports.deployJobCreators = void 0;
|
|
4
|
-
var kubernetes_1 = require("./kubernetes");
|
|
5
|
-
exports.deployJobCreators = {
|
|
6
|
-
kubernetes: kubernetes_1.createKubernetesDeployJobs,
|
|
7
|
-
serverless: function () { return []; }
|
|
8
|
-
};
|
|
9
|
-
exports.getDeployDefaults = {
|
|
10
|
-
kubernetes: kubernetes_1.getKubernetesDefault,
|
|
11
|
-
serverless: function () { return ({}); }
|
|
12
|
-
};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { GitlabJobs } from "../types/gitlab-types";
|
|
2
|
-
import { Context } from "../types/context";
|
|
3
|
-
import { DeployConfigKubernetes } from "./types";
|
|
4
|
-
export declare const createKubernetesDeployJobs: (context: Context) => GitlabJobs;
|
|
5
|
-
export declare const getKubernetesDefault: () => Partial<DeployConfigKubernetes>;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
exports.__esModule = true;
|
|
14
|
-
exports.getKubernetesDefault = exports.createKubernetesDeployJobs = void 0;
|
|
15
|
-
var types_1 = require("./types");
|
|
16
|
-
var createKubernetesDeployJobs = function (context) {
|
|
17
|
-
var deployConfig = context.componentConfig.deploy;
|
|
18
|
-
if (!types_1.isOfType(deployConfig, "kubernetes")) {
|
|
19
|
-
// should not happen
|
|
20
|
-
throw new Error("deploy config is not kubernetes");
|
|
21
|
-
}
|
|
22
|
-
var defaltKubeValues = {
|
|
23
|
-
application: {
|
|
24
|
-
hostname: context.environment.hostname,
|
|
25
|
-
command: context.componentConfig.build.startCommand
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
var kubeValues = __assign(__assign({}, defaltKubeValues), deployConfig.values); // TODO: merge with some defaults
|
|
29
|
-
return [
|
|
30
|
-
{
|
|
31
|
-
name: "deploy-to-kubernetes",
|
|
32
|
-
job: {
|
|
33
|
-
variables: __assign(__assign({}, context.environment.variables), {
|
|
34
|
-
// TODO: refactor and unify with other stages
|
|
35
|
-
HELM_EXPERIMENTAL_OCI: "1", IMAGE_PULL_SECRET: "gitlab-registry-" + context.componentName, KUBE_VALUES: JSON.stringify(kubeValues), HELM_GITLAB_CHART_PATH: "catladder/helm-charts", HELM_GITLAB_CHART_NAME: "the-panter-chart", COMPONENT_NAME: context.componentName,
|
|
36
|
-
// TODO: unify with docker build stage
|
|
37
|
-
IMAGE_TAG: "$CI_COMMIT_SHA", HELM_GITLAB_CHART_VERSION: "3.2.0", RELEASE_NAME: context.fullConfig.customerName + "-" + context.fullConfig.appName + "-$CI_ENVIRONMENT_SLUG" }),
|
|
38
|
-
stage: "deploy",
|
|
39
|
-
dependencies: [],
|
|
40
|
-
script: [
|
|
41
|
-
"kubernetesEnsureNamespace",
|
|
42
|
-
"kubernetesCreateSecret",
|
|
43
|
-
"kubernetesDeploy",
|
|
44
|
-
],
|
|
45
|
-
environment: {
|
|
46
|
-
name: context.environment.fullName,
|
|
47
|
-
url: context.environment.url,
|
|
48
|
-
kubernetes: {
|
|
49
|
-
namespace: context.environment.variables.KUBE_NAMESPACE
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
];
|
|
55
|
-
};
|
|
56
|
-
exports.createKubernetesDeployJobs = createKubernetesDeployJobs;
|
|
57
|
-
var getKubernetesDefault = function () {
|
|
58
|
-
return {
|
|
59
|
-
values: {}
|
|
60
|
-
};
|
|
61
|
-
};
|
|
62
|
-
exports.getKubernetesDefault = getKubernetesDefault;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
export declare type DeployConfigBase = {};
|
|
2
|
-
export declare type DeployConfigKubernetes = {
|
|
3
|
-
type: "kubernetes";
|
|
4
|
-
additionalHelmArgs?: string[];
|
|
5
|
-
values?: {
|
|
6
|
-
application?: {
|
|
7
|
-
resources?: {
|
|
8
|
-
limits?: {
|
|
9
|
-
cpu?: any;
|
|
10
|
-
};
|
|
11
|
-
requests?: {
|
|
12
|
-
cpu?: any;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
} & Record<string, any>;
|
|
16
|
-
} & Record<string, any>;
|
|
17
|
-
} & DeployConfigBase;
|
|
18
|
-
export declare type DeployConfigServerless = {
|
|
19
|
-
type: "serverless";
|
|
20
|
-
};
|
|
21
|
-
export declare type DeployConfig = DeployConfigKubernetes | DeployConfigServerless;
|
|
22
|
-
export declare const isOfType: <T extends "kubernetes" | "serverless">(t: DeployConfig, type: T) => t is Extract<{
|
|
23
|
-
type: "kubernetes";
|
|
24
|
-
additionalHelmArgs?: string[] | undefined;
|
|
25
|
-
values?: ({
|
|
26
|
-
application?: ({
|
|
27
|
-
resources?: {
|
|
28
|
-
limits?: {
|
|
29
|
-
cpu?: any;
|
|
30
|
-
} | undefined;
|
|
31
|
-
requests?: {
|
|
32
|
-
cpu?: any;
|
|
33
|
-
} | undefined;
|
|
34
|
-
} | undefined;
|
|
35
|
-
} & Record<string, any>) | undefined;
|
|
36
|
-
} & Record<string, any>) | undefined;
|
|
37
|
-
}, {
|
|
38
|
-
type: T;
|
|
39
|
-
}> | Extract<DeployConfigServerless, {
|
|
40
|
-
type: T;
|
|
41
|
-
}>;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
-
};
|
|
12
|
-
exports.__esModule = true;
|
|
13
|
-
exports.createPipeline = void 0;
|
|
14
|
-
var createPipeline_1 = require("./createPipeline");
|
|
15
|
-
__createBinding(exports, createPipeline_1, "createPipeline");
|
|
16
|
-
__exportStar(require("./types"), exports);
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
exports.__esModule = true;
|
|
3
|
-
var sampleConfig = {
|
|
4
|
-
customerName: "pan",
|
|
5
|
-
appName: "fonsi",
|
|
6
|
-
components: {
|
|
7
|
-
web: {
|
|
8
|
-
dir: "web",
|
|
9
|
-
build: {
|
|
10
|
-
type: "node"
|
|
11
|
-
},
|
|
12
|
-
deploy: {
|
|
13
|
-
type: "kubernetes",
|
|
14
|
-
values: {
|
|
15
|
-
application: {
|
|
16
|
-
resources: {
|
|
17
|
-
limits: {
|
|
18
|
-
cpu: "100m"
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
vars: {
|
|
25
|
-
public: {
|
|
26
|
-
GOOGLE_TAG_MANAGER_ID: "1234"
|
|
27
|
-
},
|
|
28
|
-
fromComponents: {
|
|
29
|
-
api: {
|
|
30
|
-
API_URL: "ROOT_URL"
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
env: {
|
|
35
|
-
prod: {
|
|
36
|
-
hostname: "fudilo.ch",
|
|
37
|
-
vars: {},
|
|
38
|
-
deploy: {
|
|
39
|
-
type: "kubernetes",
|
|
40
|
-
values: {
|
|
41
|
-
application: {
|
|
42
|
-
resources: {
|
|
43
|
-
limits: {
|
|
44
|
-
cpu: "1000m"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
},
|
|
51
|
-
myCustomProd: {
|
|
52
|
-
type: "prod",
|
|
53
|
-
hostname: "fudilo2.ch"
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
api: {
|
|
58
|
-
env: {
|
|
59
|
-
prod: {
|
|
60
|
-
hostname: "api.fudilo.ch"
|
|
61
|
-
},
|
|
62
|
-
myCustomProd: {
|
|
63
|
-
type: "prod",
|
|
64
|
-
hostname: "api.fudilo2.ch"
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
build: {
|
|
68
|
-
type: "node"
|
|
69
|
-
},
|
|
70
|
-
deploy: {
|
|
71
|
-
type: "kubernetes"
|
|
72
|
-
},
|
|
73
|
-
dir: "api"
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
exports["default"] = sampleConfig;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,89 +0,0 @@
|
|
|
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 __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
39
|
-
var t = {};
|
|
40
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
41
|
-
t[p] = s[p];
|
|
42
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
43
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
44
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
45
|
-
t[p[i]] = s[p[i]];
|
|
46
|
-
}
|
|
47
|
-
return t;
|
|
48
|
-
};
|
|
49
|
-
exports.__esModule = true;
|
|
50
|
-
var createPipeline_1 = require("../createPipeline");
|
|
51
|
-
describe("createPipeline", function () {
|
|
52
|
-
describe("node-app to kuberntes", function () {
|
|
53
|
-
var config = {
|
|
54
|
-
appName: "test",
|
|
55
|
-
customerName: "pan",
|
|
56
|
-
components: {
|
|
57
|
-
"my-app": {
|
|
58
|
-
dir: "myapp",
|
|
59
|
-
build: {
|
|
60
|
-
type: "node"
|
|
61
|
-
},
|
|
62
|
-
deploy: {
|
|
63
|
-
type: "kubernetes"
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
it("creates a pipeline for a single app on the main branch", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
69
|
-
var _a, image, stages, workflow, jobs;
|
|
70
|
-
return __generator(this, function (_b) {
|
|
71
|
-
switch (_b.label) {
|
|
72
|
-
case 0: return [4 /*yield*/, createPipeline_1.createPipeline("mainBranch", config)];
|
|
73
|
-
case 1:
|
|
74
|
-
_a = _b.sent(), image = _a.image, stages = _a.stages, workflow = _a.workflow, jobs = __rest(_a, ["image", "stages", "workflow"]);
|
|
75
|
-
expect(image).toEqual("git.panter.ch:5001/catladder/gitlab-ci/pipeline:$PIPELINE_IMAGE_TAG");
|
|
76
|
-
expect(Object.keys(jobs)).toEqual([
|
|
77
|
-
"my-app audit",
|
|
78
|
-
"my-app lint",
|
|
79
|
-
"my-app test",
|
|
80
|
-
"dev my-app app-build",
|
|
81
|
-
"dev my-app docker-build",
|
|
82
|
-
"dev my-app deploy-to-kubernetes",
|
|
83
|
-
]);
|
|
84
|
-
return [2 /*return*/];
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
}); });
|
|
88
|
-
});
|
|
89
|
-
});
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { BuildConfig } from "../build/types";
|
|
2
|
-
import { DeployConfig } from "../deploy/types";
|
|
3
|
-
export declare type PipelineTrigger = "mainBranch" | "mr" | "taggedRelease";
|
|
4
|
-
export declare const ENV_TYPES: {
|
|
5
|
-
readonly dev: {
|
|
6
|
-
readonly trigger: "mainBranch";
|
|
7
|
-
};
|
|
8
|
-
readonly review: {
|
|
9
|
-
readonly trigger: "mr";
|
|
10
|
-
};
|
|
11
|
-
readonly prod: {
|
|
12
|
-
readonly trigger: "taggedRelease";
|
|
13
|
-
};
|
|
14
|
-
readonly stage: {
|
|
15
|
-
readonly trigger: "taggedRelease";
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
declare type EnvType = keyof typeof ENV_TYPES;
|
|
19
|
-
export declare type DefaultEnvConfig = {
|
|
20
|
-
deploy: DeployConfig;
|
|
21
|
-
build: BuildConfig;
|
|
22
|
-
vars?: {
|
|
23
|
-
public?: Record<string, any>;
|
|
24
|
-
secret?: Record<string, string>;
|
|
25
|
-
fromComponents?: {
|
|
26
|
-
[otherApp: string]: Record<string, string>;
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
declare type EnvConfig<E extends EnvType = EnvType> = {
|
|
31
|
-
type?: E;
|
|
32
|
-
hostname?: string;
|
|
33
|
-
} & Partial<DefaultEnvConfig>;
|
|
34
|
-
export declare type Env = {
|
|
35
|
-
dev?: EnvConfig<"dev">;
|
|
36
|
-
stage?: EnvConfig<"stage">;
|
|
37
|
-
review?: EnvConfig<"review">;
|
|
38
|
-
prod?: EnvConfig<"prod">;
|
|
39
|
-
} & Record<string, EnvConfig>;
|
|
40
|
-
export declare type ComponentConfig = {
|
|
41
|
-
env?: Env;
|
|
42
|
-
dir: string;
|
|
43
|
-
} & DefaultEnvConfig;
|
|
44
|
-
export declare type Config = {
|
|
45
|
-
customerName: string;
|
|
46
|
-
appName: string;
|
|
47
|
-
components: Record<string, ComponentConfig>;
|
|
48
|
-
};
|
|
49
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
exports.__esModule = true;
|
|
3
|
-
exports.ENV_TYPES = void 0;
|
|
4
|
-
exports.ENV_TYPES = {
|
|
5
|
-
dev: {
|
|
6
|
-
trigger: "mainBranch"
|
|
7
|
-
},
|
|
8
|
-
review: {
|
|
9
|
-
trigger: "mr"
|
|
10
|
-
},
|
|
11
|
-
prod: {
|
|
12
|
-
trigger: "taggedRelease"
|
|
13
|
-
},
|
|
14
|
-
stage: {
|
|
15
|
-
trigger: "taggedRelease"
|
|
16
|
-
}
|
|
17
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ComponentConfig, Config } from "./config";
|
|
2
|
-
export declare type Environment = {
|
|
3
|
-
hostname: string;
|
|
4
|
-
fullName: string;
|
|
5
|
-
shortName: string;
|
|
6
|
-
url: string;
|
|
7
|
-
variables: Record<string, string>;
|
|
8
|
-
};
|
|
9
|
-
export declare type CommitInfo = {
|
|
10
|
-
refName: string;
|
|
11
|
-
refSlug: string;
|
|
12
|
-
};
|
|
13
|
-
export declare type Context = {
|
|
14
|
-
componentConfig: ComponentConfig;
|
|
15
|
-
componentName: string;
|
|
16
|
-
fullConfig: Config;
|
|
17
|
-
environment: Environment;
|
|
18
|
-
commit: CommitInfo;
|
|
19
|
-
};
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
export declare type GitlabStage = "setup" | "test" | "build" | "deploy" | "verify" | "actions";
|
|
2
|
-
export declare type Artifacts = {
|
|
3
|
-
paths: string[];
|
|
4
|
-
};
|
|
5
|
-
export declare type GitlabJobCache = {
|
|
6
|
-
key: string;
|
|
7
|
-
policy?: string;
|
|
8
|
-
paths: string[];
|
|
9
|
-
};
|
|
10
|
-
export declare type GitlabRule = {
|
|
11
|
-
if: string;
|
|
12
|
-
when?: "always" | "on_success" | "manual" | "never";
|
|
13
|
-
};
|
|
14
|
-
export declare type Retry = {
|
|
15
|
-
max: number;
|
|
16
|
-
when: string[];
|
|
17
|
-
};
|
|
18
|
-
export declare type Service = {
|
|
19
|
-
name: string;
|
|
20
|
-
command: string[];
|
|
21
|
-
};
|
|
22
|
-
export declare type GitlabEnvironment = {
|
|
23
|
-
url: string;
|
|
24
|
-
name: string;
|
|
25
|
-
kubernetes?: {
|
|
26
|
-
namespace?: string;
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
export declare type GitlabJobDef = {
|
|
30
|
-
stage: GitlabStage;
|
|
31
|
-
before_script?: string[];
|
|
32
|
-
script: string[];
|
|
33
|
-
interruptible?: boolean;
|
|
34
|
-
needs?: string[];
|
|
35
|
-
rules?: GitlabRule[];
|
|
36
|
-
cache?: GitlabJobCache | GitlabJobCache[];
|
|
37
|
-
artifacts?: Artifacts;
|
|
38
|
-
retry?: Retry;
|
|
39
|
-
services?: Service[];
|
|
40
|
-
image?: string;
|
|
41
|
-
variables?: GitlabVariables;
|
|
42
|
-
dependencies?: string[];
|
|
43
|
-
environment?: GitlabEnvironment;
|
|
44
|
-
allow_failure?: boolean;
|
|
45
|
-
};
|
|
46
|
-
export declare type GitlabVariables = Record<string, string | undefined>;
|
|
47
|
-
export declare type GitlabJob = {
|
|
48
|
-
name: string;
|
|
49
|
-
perEnv?: boolean;
|
|
50
|
-
job: GitlabJobDef;
|
|
51
|
-
};
|
|
52
|
-
export declare type GitlabJobs = GitlabJob[];
|
|
53
|
-
export declare type GitlabPipeline = {
|
|
54
|
-
variables: GitlabVariables;
|
|
55
|
-
stages: GitlabStage[];
|
|
56
|
-
jobs: GitlabJobs;
|
|
57
|
-
};
|