@abgov/nx-oc 2.0.0 → 3.1.0-beta.1
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/package.json +2 -2
- package/src/executors/apply/apply.js +22 -12
- package/src/executors/apply/apply.js.map +1 -1
- package/src/executors/apply/schema.d.ts +7 -2
- package/src/executors/apply/schema.json +20 -3
- package/src/generators/apply-infra/apply-infra.js +4 -4
- package/src/generators/apply-infra/apply-infra.js.map +1 -1
- package/src/generators/deployment/deployment.js +19 -12
- package/src/generators/deployment/deployment.js.map +1 -1
- package/src/generators/deployment/deployment.spec.ts +72 -84
- package/src/generators/pipeline/actions/openshift/environments.yml__tmpl__ +13 -0
- package/src/generators/pipeline/actions/workflows/pipeline.yml__tmpl__ +14 -8
- package/src/generators/pipeline/pipeline.js +8 -8
- package/src/generators/pipeline/pipeline.js.map +1 -1
- package/src/generators/pipeline/schema.json +1 -1
- package/src/pipeline-envs.d.ts +1 -0
- package/src/pipeline-envs.js +5 -0
- package/src/pipeline-envs.js.map +1 -0
- package/src/utils/git-utils.js +1 -1
- package/src/utils/git-utils.js.map +1 -1
- package/src/utils/oc-utils.js +1 -1
- package/src/utils/oc-utils.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abgov/nx-oc",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.1.0-beta.1",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"description": "Government of Alberta - DIO - Nx plugin for OpenShift.",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"executors": "./executors.json",
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"yaml": "^1.10.2",
|
|
16
|
-
"@nrwl/devkit": "
|
|
16
|
+
"@nrwl/devkit": "13.8.1"
|
|
17
17
|
},
|
|
18
18
|
"typings": "./src/index.d.ts",
|
|
19
19
|
"peerDependencies": {}
|
|
@@ -1,35 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
|
+
const pipeline_envs_1 = require("../../pipeline-envs");
|
|
4
5
|
const oc_utils_1 = require("../../utils/oc-utils");
|
|
6
|
+
function mapOcProject(project, i) {
|
|
7
|
+
if (typeof project === 'string') {
|
|
8
|
+
return { project: 'string', tag: pipeline_envs_1.pipelineEnvs[i].toLowerCase() };
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return project;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
5
14
|
function normalizeSchema(options) {
|
|
6
|
-
const ocProjects = Array.isArray(options.ocProject)
|
|
7
|
-
|
|
8
|
-
(options.ocProject
|
|
9
|
-
[options.ocProject] :
|
|
10
|
-
[]);
|
|
15
|
+
const ocProjects = Array.isArray(options.ocProject)
|
|
16
|
+
? options.ocProject.map(mapOcProject)
|
|
17
|
+
: [mapOcProject(options.ocProject, 0)];
|
|
11
18
|
return { ocProjects };
|
|
12
19
|
}
|
|
13
20
|
function runExecutor(options, { projectName }) {
|
|
14
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
|
15
22
|
console.log(`Running oc apply for ${projectName}...`);
|
|
16
23
|
const { ocProjects } = normalizeSchema(options);
|
|
17
|
-
const failed = ocProjects
|
|
18
|
-
|
|
24
|
+
const failed = ocProjects
|
|
25
|
+
.map(({ project, tag }) => {
|
|
26
|
+
const processResult = (0, oc_utils_1.runOcCommand)('process', [
|
|
19
27
|
`-f .openshift/${projectName}/${projectName}.yml`,
|
|
20
|
-
`-p PROJECT=${
|
|
28
|
+
`-p PROJECT=${project}`,
|
|
29
|
+
`-p DEPLOY_TAG=${tag}`,
|
|
21
30
|
]);
|
|
22
31
|
if (!processResult.success) {
|
|
23
32
|
return false;
|
|
24
33
|
}
|
|
25
34
|
else {
|
|
26
|
-
const { success, stdout } = oc_utils_1.runOcCommand('apply', [], processResult.stdout);
|
|
35
|
+
const { success, stdout } = (0, oc_utils_1.runOcCommand)('apply', [], processResult.stdout);
|
|
27
36
|
console.log(stdout === null || stdout === void 0 ? void 0 : stdout.toString());
|
|
28
37
|
return success;
|
|
29
38
|
}
|
|
30
|
-
})
|
|
39
|
+
})
|
|
40
|
+
.filter((success) => !success);
|
|
31
41
|
return {
|
|
32
|
-
success: !failed.length
|
|
42
|
+
success: !failed.length,
|
|
33
43
|
};
|
|
34
44
|
});
|
|
35
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../../../packages/nx-oc/src/executors/apply/apply.ts"],"names":[],"mappings":";;;AACA,mDAAoD;AAGpD,SAAS,
|
|
1
|
+
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../../../packages/nx-oc/src/executors/apply/apply.ts"],"names":[],"mappings":";;;AACA,uDAA2D;AAC3D,mDAAoD;AAGpD,SAAS,YAAY,CACnB,OAAqC,EACrC,CAAS;IAET,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,4BAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;KAC1D;SAAM;QACL,OAAO,OAAO,CAAC;KAChB;AACH,CAAC;AAED,SAAS,eAAe,CAAC,OAAe;IACtC,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QACjD,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC;QACrC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzC,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC;AAED,SAA8B,WAAW,CACvC,OAAe,EACf,EAAE,WAAW,EAAmB;;QAEhC,OAAO,CAAC,GAAG,CAAC,wBAAwB,WAAW,KAAK,CAAC,CAAC;QAEtD,MAAM,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,UAAU;aACtB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;YACxB,MAAM,aAAa,GAAG,IAAA,uBAAY,EAAC,SAAS,EAAE;gBAC5C,iBAAiB,WAAW,IAAI,WAAW,MAAM;gBACjD,cAAc,OAAO,EAAE;gBACvB,iBAAiB,GAAG,EAAE;aACvB,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;gBAC1B,OAAO,KAAK,CAAC;aACd;iBAAM;gBACL,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAA,uBAAY,EACtC,OAAO,EACP,EAAE,EACF,aAAa,CAAC,MAAM,CACrB,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE,CAAC,CAAC;gBAEhC,OAAO,OAAO,CAAC;aAChB;QACH,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAEjC,OAAO;YACL,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM;SACxB,CAAC;IACJ,CAAC;CAAA;AAlCD,8BAkCC"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
export interface PipelineEnvironment {
|
|
2
|
+
project: string;
|
|
3
|
+
tag: string;
|
|
4
|
+
}
|
|
5
|
+
|
|
1
6
|
export interface Schema {
|
|
2
|
-
ocProject: string | string[];
|
|
7
|
+
ocProject: string | string[] | PipelineEnvironment[];
|
|
3
8
|
}
|
|
4
9
|
|
|
5
10
|
export interface NormalizedSchema {
|
|
6
|
-
ocProjects:
|
|
11
|
+
ocProjects: PipelineEnvironment[];
|
|
7
12
|
}
|
|
@@ -13,11 +13,28 @@
|
|
|
13
13
|
{
|
|
14
14
|
"type": "array",
|
|
15
15
|
"items": {
|
|
16
|
-
"
|
|
16
|
+
"oneOf": [
|
|
17
|
+
{
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"type": "object",
|
|
22
|
+
"properties": {
|
|
23
|
+
"project": {
|
|
24
|
+
"type": "string"
|
|
25
|
+
},
|
|
26
|
+
"tag": {
|
|
27
|
+
"type": "string"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
]
|
|
17
32
|
}
|
|
18
33
|
}
|
|
19
34
|
]
|
|
20
35
|
}
|
|
21
36
|
},
|
|
22
|
-
"required": [
|
|
23
|
-
|
|
37
|
+
"required": [
|
|
38
|
+
"ocProject"
|
|
39
|
+
]
|
|
40
|
+
}
|
|
@@ -3,17 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const oc_utils_1 = require("../../utils/oc-utils");
|
|
5
5
|
function applyOcResources(host) {
|
|
6
|
-
const { success: pipelineApplied, stdout: pipelineOut } = oc_utils_1.runOcCommand('apply', [], host.read('.openshift/environment.infra.yml'));
|
|
6
|
+
const { success: pipelineApplied, stdout: pipelineOut } = (0, oc_utils_1.runOcCommand)('apply', [], host.read('.openshift/environment.infra.yml'));
|
|
7
7
|
console.log(pipelineOut === null || pipelineOut === void 0 ? void 0 : pipelineOut.toString());
|
|
8
|
-
const { success: envApplied, stdout: envOut } = oc_utils_1.runOcCommand('apply', [], host.read('.openshift/environments.yml'));
|
|
8
|
+
const { success: envApplied, stdout: envOut } = (0, oc_utils_1.runOcCommand)('apply', [], host.read('.openshift/environments.yml'));
|
|
9
9
|
console.log(envOut === null || envOut === void 0 ? void 0 : envOut.toString());
|
|
10
10
|
if (!pipelineApplied || !envApplied) {
|
|
11
11
|
console.log('Failed to oc apply pipeline and dev environment.');
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
function default_1(host) {
|
|
15
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
const { success } = oc_utils_1.runOcCommand('project', []);
|
|
15
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
|
16
|
+
const { success } = (0, oc_utils_1.runOcCommand)('project', []);
|
|
17
17
|
if (success) {
|
|
18
18
|
applyOcResources(host);
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apply-infra.js","sourceRoot":"","sources":["../../../../../../packages/nx-oc/src/generators/apply-infra/apply-infra.ts"],"names":[],"mappings":";;;AAGA,mDAAoD;AAEpD,SAAS,gBAAgB,CAAC,IAAU;IAElC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,uBAAY,
|
|
1
|
+
{"version":3,"file":"apply-infra.js","sourceRoot":"","sources":["../../../../../../packages/nx-oc/src/generators/apply-infra/apply-infra.ts"],"names":[],"mappings":";;;AAGA,mDAAoD;AAEpD,SAAS,gBAAgB,CAAC,IAAU;IAElC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,uBAAY,EACpE,OAAO,EACP,EAAE,EACF,IAAI,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAC9C,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,EAAE,CAAC,CAAC;IAErC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,uBAAY,EAC1D,OAAO,EACP,EAAE,EACF,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CACzC,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,EAAE,CAAC,CAAC;IAEhC,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE;QACnC,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;KACjE;AACH,CAAC;AAED,mBAA+B,IAAU;;QACvC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,uBAAY,EAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE;YACX,gBAAgB,CAAC,IAAI,CAAC,CAAC;SACxB;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;SACtE;IACH,CAAC;CAAA;AAPD,4BAOC"}
|
|
@@ -4,18 +4,19 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const devkit_1 = require("@nrwl/devkit");
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const yaml = require("yaml");
|
|
7
|
+
const pipeline_envs_1 = require("../../pipeline-envs");
|
|
7
8
|
const git_utils_1 = require("../../utils/git-utils");
|
|
8
9
|
const infraManifestFile = '.openshift/environments.yml';
|
|
9
10
|
function normalizeOptions(host, options) {
|
|
10
11
|
var _a, _b, _c, _d;
|
|
11
|
-
const projectName = devkit_1.names(options.project).fileName;
|
|
12
|
+
const projectName = (0, devkit_1.names)(options.project).fileName;
|
|
12
13
|
const result = host.read(infraManifestFile).toString();
|
|
13
14
|
const { items } = yaml.parse(result);
|
|
14
15
|
const ocInfraProject = ((_b = (_a = items[0]) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.namespace) || '';
|
|
15
16
|
const SA_PREFIX = 'system:serviceaccounts:';
|
|
16
17
|
const ocEnvProjects = (_d = (_c = items[0]) === null || _c === void 0 ? void 0 : _c.subjects) === null || _d === void 0 ? void 0 : _d.filter((s) => s.kind === 'Group' && s.name.startsWith(SA_PREFIX)).map((s) => s.name.replace(SA_PREFIX, ''));
|
|
17
18
|
// TODO: Find a better way to determine this.
|
|
18
|
-
const config = devkit_1.readProjectConfiguration(host, projectName);
|
|
19
|
+
const config = (0, devkit_1.readProjectConfiguration)(host, projectName);
|
|
19
20
|
let appType = null;
|
|
20
21
|
switch (config.targets.build.executor) {
|
|
21
22
|
case '@nrwl/web:build':
|
|
@@ -29,23 +30,23 @@ function normalizeOptions(host, options) {
|
|
|
29
30
|
appType = 'dotnet';
|
|
30
31
|
break;
|
|
31
32
|
}
|
|
32
|
-
const tenantRealm = devkit_1.names(options.tenant).fileName;
|
|
33
|
+
const tenantRealm = (0, devkit_1.names)(options.tenant).fileName;
|
|
33
34
|
const accessServiceUrl = 'https://access.alpha.alberta.ca';
|
|
34
35
|
return Object.assign(Object.assign({}, options), { projectName,
|
|
35
36
|
appType,
|
|
36
37
|
ocInfraProject,
|
|
37
38
|
ocEnvProjects, adsp: {
|
|
38
39
|
tenantRealm,
|
|
39
|
-
accessServiceUrl
|
|
40
|
+
accessServiceUrl,
|
|
40
41
|
} });
|
|
41
42
|
}
|
|
42
43
|
function addFiles(host, options) {
|
|
43
|
-
const templateOptions = Object.assign(Object.assign(Object.assign({}, options), options.adsp), { sourceRepositoryUrl: git_utils_1.getGitRemoteUrl(), tmpl: '' });
|
|
44
|
-
devkit_1.generateFiles(host, path.join(__dirname, `${options.appType}-files`), `${path.dirname(devkit_1.getWorkspacePath(host))}/.openshift/${options.projectName}`, templateOptions);
|
|
44
|
+
const templateOptions = Object.assign(Object.assign(Object.assign({}, options), options.adsp), { sourceRepositoryUrl: (0, git_utils_1.getGitRemoteUrl)(), tmpl: '' });
|
|
45
|
+
(0, devkit_1.generateFiles)(host, path.join(__dirname, `${options.appType}-files`), `${path.dirname((0, devkit_1.getWorkspacePath)(host))}/.openshift/${options.projectName}`, templateOptions);
|
|
45
46
|
}
|
|
46
47
|
function default_1(host, options) {
|
|
47
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
48
|
-
const config = devkit_1.readProjectConfiguration(host, options.project);
|
|
48
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
|
49
|
+
const config = (0, devkit_1.readProjectConfiguration)(host, options.project);
|
|
49
50
|
if (config.projectType !== 'application') {
|
|
50
51
|
console.log('Cannot generate deployment for library.');
|
|
51
52
|
return;
|
|
@@ -62,12 +63,18 @@ function default_1(host, options) {
|
|
|
62
63
|
config.targets = Object.assign(Object.assign({}, config.targets), { 'apply-envs': {
|
|
63
64
|
executor: '@abgov/nx-oc:apply',
|
|
64
65
|
options: {
|
|
65
|
-
ocProject: normalizedOptions.ocEnvProjects
|
|
66
|
-
|
|
66
|
+
ocProject: normalizedOptions.ocEnvProjects.map((project, i) => {
|
|
67
|
+
var _a;
|
|
68
|
+
return ({
|
|
69
|
+
project,
|
|
70
|
+
tag: (_a = pipeline_envs_1.pipelineEnvs[i]) === null || _a === void 0 ? void 0 : _a.toLowerCase(),
|
|
71
|
+
});
|
|
72
|
+
}),
|
|
73
|
+
},
|
|
67
74
|
} });
|
|
68
|
-
devkit_1.updateProjectConfiguration(host, options.project, config);
|
|
75
|
+
(0, devkit_1.updateProjectConfiguration)(host, options.project, config);
|
|
69
76
|
addFiles(host, normalizedOptions);
|
|
70
|
-
yield devkit_1.formatFiles(host);
|
|
77
|
+
yield (0, devkit_1.formatFiles)(host);
|
|
71
78
|
});
|
|
72
79
|
}
|
|
73
80
|
exports.default = default_1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../../../../../packages/nx-oc/src/generators/deployment/deployment.ts"],"names":[],"mappings":";;;AAAA,yCAQsB;AACtB,6BAA6B;AAC7B,6BAA6B;AAC7B,qDAAwD;AAGxD,MAAM,iBAAiB,GAAG,6BAA6B,CAAC;AAExD,SAAS,gBAAgB,
|
|
1
|
+
{"version":3,"file":"deployment.js","sourceRoot":"","sources":["../../../../../../packages/nx-oc/src/generators/deployment/deployment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
addProjectConfiguration,
|
|
3
|
+
readProjectConfiguration,
|
|
4
|
+
} from '@nrwl/devkit';
|
|
2
5
|
import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
|
|
3
6
|
import pipeline from '../pipeline/pipeline';
|
|
4
7
|
import { Schema } from './schema';
|
|
5
8
|
import generator from './deployment';
|
|
6
9
|
describe('Deployment Generator', () => {
|
|
10
|
+
const options: Schema = { project: 'test', tenant: 'test' };
|
|
7
11
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
it ('can run', async () => {
|
|
12
|
+
it('can run', async () => {
|
|
11
13
|
const host = createTreeWithEmptyWorkspace();
|
|
12
|
-
await pipeline(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
envs: 'test-dev'
|
|
19
|
-
}
|
|
20
|
-
);
|
|
14
|
+
await pipeline(host, {
|
|
15
|
+
pipeline: 'test',
|
|
16
|
+
type: 'jenkins',
|
|
17
|
+
infra: 'test-infra',
|
|
18
|
+
envs: 'test-dev',
|
|
19
|
+
});
|
|
21
20
|
|
|
22
21
|
addProjectConfiguration(host, 'test', {
|
|
23
22
|
root: 'apps/test',
|
|
24
23
|
projectType: 'application',
|
|
25
24
|
targets: {
|
|
26
25
|
build: {
|
|
27
|
-
executor: '@nrwl/web:build'
|
|
28
|
-
}
|
|
29
|
-
}
|
|
26
|
+
executor: '@nrwl/web:build',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
30
29
|
});
|
|
31
30
|
|
|
32
31
|
await generator(host, options);
|
|
33
|
-
|
|
32
|
+
|
|
34
33
|
const config = readProjectConfiguration(host, 'test');
|
|
35
34
|
expect(config.targets['apply-envs']).toBeTruthy();
|
|
36
35
|
expect(config.targets['apply-envs'].executor).toBe('@abgov/nx-oc:apply');
|
|
37
|
-
expect(config.targets['apply-envs'].options.ocProject).
|
|
36
|
+
expect(config.targets['apply-envs'].options.ocProject).toEqual(
|
|
37
|
+
expect.arrayContaining([
|
|
38
|
+
expect.objectContaining({ project: 'test-dev', tag: 'dev' }),
|
|
39
|
+
])
|
|
40
|
+
);
|
|
38
41
|
});
|
|
39
42
|
|
|
40
|
-
it
|
|
43
|
+
it('can generate deployment for react', async () => {
|
|
41
44
|
const host = createTreeWithEmptyWorkspace();
|
|
42
|
-
await pipeline(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
envs: 'test-dev'
|
|
49
|
-
}
|
|
50
|
-
);
|
|
45
|
+
await pipeline(host, {
|
|
46
|
+
pipeline: 'test',
|
|
47
|
+
type: 'jenkins',
|
|
48
|
+
infra: 'test-infra',
|
|
49
|
+
envs: 'test-dev',
|
|
50
|
+
});
|
|
51
51
|
|
|
52
52
|
addProjectConfiguration(host, 'test', {
|
|
53
53
|
root: 'apps/test',
|
|
54
54
|
projectType: 'application',
|
|
55
55
|
targets: {
|
|
56
56
|
build: {
|
|
57
|
-
executor: '@nrwl/web:build'
|
|
58
|
-
}
|
|
59
|
-
}
|
|
57
|
+
executor: '@nrwl/web:build',
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
60
|
});
|
|
61
61
|
|
|
62
62
|
await generator(host, options);
|
|
@@ -67,26 +67,23 @@ describe('Deployment Generator', () => {
|
|
|
67
67
|
expect(dockerfile).toContain('nginx');
|
|
68
68
|
});
|
|
69
69
|
|
|
70
|
-
it
|
|
70
|
+
it('can generate deployment for angular', async () => {
|
|
71
71
|
const host = createTreeWithEmptyWorkspace();
|
|
72
|
-
await pipeline(
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
envs: 'test-dev'
|
|
79
|
-
}
|
|
80
|
-
);
|
|
72
|
+
await pipeline(host, {
|
|
73
|
+
pipeline: 'test',
|
|
74
|
+
type: 'jenkins',
|
|
75
|
+
infra: 'test-infra',
|
|
76
|
+
envs: 'test-dev',
|
|
77
|
+
});
|
|
81
78
|
|
|
82
79
|
addProjectConfiguration(host, 'test', {
|
|
83
80
|
root: 'apps/test',
|
|
84
81
|
projectType: 'application',
|
|
85
82
|
targets: {
|
|
86
83
|
build: {
|
|
87
|
-
executor: '@angular-devkit/build-angular:browser'
|
|
88
|
-
}
|
|
89
|
-
}
|
|
84
|
+
executor: '@angular-devkit/build-angular:browser',
|
|
85
|
+
},
|
|
86
|
+
},
|
|
90
87
|
});
|
|
91
88
|
|
|
92
89
|
await generator(host, options);
|
|
@@ -97,26 +94,23 @@ describe('Deployment Generator', () => {
|
|
|
97
94
|
expect(dockerfile).toContain('nginx');
|
|
98
95
|
});
|
|
99
96
|
|
|
100
|
-
it
|
|
97
|
+
it('can generate deployment for express', async () => {
|
|
101
98
|
const host = createTreeWithEmptyWorkspace();
|
|
102
|
-
await pipeline(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
envs: 'test-dev'
|
|
109
|
-
}
|
|
110
|
-
);
|
|
99
|
+
await pipeline(host, {
|
|
100
|
+
pipeline: 'test',
|
|
101
|
+
type: 'jenkins',
|
|
102
|
+
infra: 'test-infra',
|
|
103
|
+
envs: 'test-dev',
|
|
104
|
+
});
|
|
111
105
|
|
|
112
106
|
addProjectConfiguration(host, 'test', {
|
|
113
107
|
root: 'apps/test',
|
|
114
108
|
projectType: 'application',
|
|
115
109
|
targets: {
|
|
116
110
|
build: {
|
|
117
|
-
executor: '@nrwl/node:build'
|
|
118
|
-
}
|
|
119
|
-
}
|
|
111
|
+
executor: '@nrwl/node:build',
|
|
112
|
+
},
|
|
113
|
+
},
|
|
120
114
|
});
|
|
121
115
|
|
|
122
116
|
await generator(host, options);
|
|
@@ -127,26 +121,23 @@ describe('Deployment Generator', () => {
|
|
|
127
121
|
expect(dockerfile).toContain('node');
|
|
128
122
|
});
|
|
129
123
|
|
|
130
|
-
it
|
|
124
|
+
it('can generate deployment for dotnet', async () => {
|
|
131
125
|
const host = createTreeWithEmptyWorkspace();
|
|
132
|
-
await pipeline(
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
envs: 'test-dev'
|
|
139
|
-
}
|
|
140
|
-
);
|
|
126
|
+
await pipeline(host, {
|
|
127
|
+
pipeline: 'test',
|
|
128
|
+
type: 'jenkins',
|
|
129
|
+
infra: 'test-infra',
|
|
130
|
+
envs: 'test-dev',
|
|
131
|
+
});
|
|
141
132
|
|
|
142
133
|
addProjectConfiguration(host, 'test', {
|
|
143
134
|
root: 'apps/test',
|
|
144
135
|
projectType: 'application',
|
|
145
136
|
targets: {
|
|
146
137
|
build: {
|
|
147
|
-
executor: '@abgov/nx-dotnet:build'
|
|
148
|
-
}
|
|
149
|
-
}
|
|
138
|
+
executor: '@abgov/nx-dotnet:build',
|
|
139
|
+
},
|
|
140
|
+
},
|
|
150
141
|
});
|
|
151
142
|
|
|
152
143
|
await generator(host, options);
|
|
@@ -157,32 +148,29 @@ describe('Deployment Generator', () => {
|
|
|
157
148
|
expect(dockerfile).toContain('dotnet');
|
|
158
149
|
});
|
|
159
150
|
|
|
160
|
-
it
|
|
151
|
+
it('can skip unknown project type', async () => {
|
|
161
152
|
const host = createTreeWithEmptyWorkspace();
|
|
162
|
-
await pipeline(
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
envs: 'test-dev'
|
|
169
|
-
}
|
|
170
|
-
);
|
|
153
|
+
await pipeline(host, {
|
|
154
|
+
pipeline: 'test',
|
|
155
|
+
type: 'jenkins',
|
|
156
|
+
infra: 'test-infra',
|
|
157
|
+
envs: 'test-dev',
|
|
158
|
+
});
|
|
171
159
|
|
|
172
160
|
addProjectConfiguration(host, 'test', {
|
|
173
161
|
root: 'apps/test',
|
|
174
162
|
projectType: 'application',
|
|
175
163
|
targets: {
|
|
176
164
|
build: {
|
|
177
|
-
executor: '@nrwl/not-real:build'
|
|
178
|
-
}
|
|
179
|
-
}
|
|
165
|
+
executor: '@nrwl/not-real:build',
|
|
166
|
+
},
|
|
167
|
+
},
|
|
180
168
|
});
|
|
181
169
|
|
|
182
170
|
await generator(host, options);
|
|
183
171
|
expect(host.exists('.openshift/test/test.yml')).toBeFalsy();
|
|
184
172
|
expect(host.exists('.openshift/test/Dockerfile')).toBeFalsy();
|
|
185
|
-
|
|
173
|
+
|
|
186
174
|
const config = readProjectConfiguration(host, 'test');
|
|
187
175
|
expect(config.targets['apply-envs']).toBeFalsy();
|
|
188
176
|
});
|
|
@@ -16,6 +16,19 @@ items:
|
|
|
16
16
|
kind: Group
|
|
17
17
|
name: 'system:serviceaccounts:<%= ocEnvProject %>'
|
|
18
18
|
<% }); -%>
|
|
19
|
+
- apiVersion: rbac.authorization.k8s.io/v1
|
|
20
|
+
kind: RoleBinding
|
|
21
|
+
metadata:
|
|
22
|
+
name: pipeline_edit
|
|
23
|
+
namespace: <%= ocInfraProject %>
|
|
24
|
+
roleRef:
|
|
25
|
+
apiGroup: rbac.authorization.k8s.io
|
|
26
|
+
kind: ClusterRole
|
|
27
|
+
name: edit
|
|
28
|
+
subjects:
|
|
29
|
+
- kind: ServiceAccount
|
|
30
|
+
name: github-actions
|
|
31
|
+
namespace: <%= ocInfraProject %>
|
|
19
32
|
<% ocEnvProjects.forEach(function(ocEnvProject){ -%>
|
|
20
33
|
- apiVersion: rbac.authorization.k8s.io/v1
|
|
21
34
|
kind: RoleBinding
|
|
@@ -60,11 +60,11 @@ jobs:
|
|
|
60
60
|
|
|
61
61
|
# Project build steps lint, test, and build
|
|
62
62
|
- name: Lint
|
|
63
|
-
run:
|
|
63
|
+
run: npx nx affected --target=lint --base=${{ env.AFFECTED_BASE }}
|
|
64
64
|
- name: Test
|
|
65
|
-
run:
|
|
65
|
+
run: npx nx affected --target=test --base=${{ env.AFFECTED_BASE }}
|
|
66
66
|
- name: Build
|
|
67
|
-
run:
|
|
67
|
+
run: npx nx affected --target=build --base=${{ env.AFFECTED_BASE }} --configuration production
|
|
68
68
|
# Set affected apps to env for later steps and jobs.
|
|
69
69
|
- name: Set AFFECTED_APPS for OC steps
|
|
70
70
|
run: echo "AFFECTED_APPS=$(npx nx affected:apps --plain --base=${{ env.AFFECTED_BASE }})" >> $GITHUB_ENV
|
|
@@ -86,7 +86,7 @@ jobs:
|
|
|
86
86
|
run: |
|
|
87
87
|
for app in $AFFECTED_APPS
|
|
88
88
|
do
|
|
89
|
-
oc start-build $app --from-dir . --follow
|
|
89
|
+
oc start-build $app --from-dir . --follow --wait
|
|
90
90
|
done
|
|
91
91
|
# Set build job outputs for subsequent jobs.
|
|
92
92
|
- id: set_outputs
|
|
@@ -95,7 +95,7 @@ jobs:
|
|
|
95
95
|
|
|
96
96
|
deploy<%= envs[i] %>:
|
|
97
97
|
runs-on: ubuntu-20.04
|
|
98
|
-
needs: build
|
|
98
|
+
needs: [build<%= envs[i - 1] ? `, deploy${envs[i - 1]}` : '' %>]
|
|
99
99
|
env:
|
|
100
100
|
AFFECTED_APPS: ${{ needs.build.outputs.affected_apps }}
|
|
101
101
|
environment:
|
|
@@ -112,13 +112,19 @@ jobs:
|
|
|
112
112
|
run: |
|
|
113
113
|
for app in $AFFECTED_APPS
|
|
114
114
|
do
|
|
115
|
-
oc tag $app:latest $app:<%= envs[i].toLowerCase() %>
|
|
115
|
+
oc tag $app:<%= envs[i - 1] ? envs[i - 1].toLowerCase() : 'latest' %> $app:<%= envs[i].toLowerCase() %>
|
|
116
116
|
done
|
|
117
|
+
- run: oc project <%= ocEnvProject %>
|
|
118
|
+
- name: Apply Manifests
|
|
119
|
+
run: |
|
|
120
|
+
for app in $AFFECTED_APPS
|
|
121
|
+
do
|
|
122
|
+
oc process -f .openshift/managed/$app.yml -p NAMESPACE=<%= ocEnvProject %> -p DEPLOY_TAG=<%= envs[i].toLowerCase() %> | oc apply -f -
|
|
123
|
+
done
|
|
117
124
|
- name: Deploy <%= envs[i] %>
|
|
118
125
|
run: |
|
|
119
126
|
for app in $AFFECTED_APPS
|
|
120
|
-
do
|
|
121
|
-
oc project <%= ocEnvProject %>
|
|
127
|
+
do
|
|
122
128
|
oc rollout latest dc/$app
|
|
123
129
|
oc rollout status dc/$app
|
|
124
130
|
done
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const devkit_1 = require("@nrwl/devkit");
|
|
5
5
|
const path = require("path");
|
|
6
|
+
const pipeline_envs_1 = require("../../pipeline-envs");
|
|
6
7
|
const git_utils_1 = require("../../utils/git-utils");
|
|
7
8
|
const apply_infra_1 = require("../apply-infra/apply-infra");
|
|
8
9
|
function normalizeOptions(host, options) {
|
|
@@ -16,23 +17,22 @@ function normalizeOptions(host, options) {
|
|
|
16
17
|
}
|
|
17
18
|
function addFiles(host, options) {
|
|
18
19
|
var _a;
|
|
19
|
-
const
|
|
20
|
-
const templateOptions = Object.assign(Object.assign({}, options), { sourceRepositoryUrl: (_a = git_utils_1.getGitRemoteUrl()) === null || _a === void 0 ? void 0 : _a.trim(), envs, tmpl: '' });
|
|
20
|
+
const templateOptions = Object.assign(Object.assign({}, options), { sourceRepositoryUrl: (_a = (0, git_utils_1.getGitRemoteUrl)()) === null || _a === void 0 ? void 0 : _a.trim(), envs: pipeline_envs_1.pipelineEnvs, tmpl: '' });
|
|
21
21
|
if (options.pipelineType === 'jenkins') {
|
|
22
|
-
devkit_1.generateFiles(host, path.join(__dirname, 'jenkins'), `${path.dirname(devkit_1.getWorkspacePath(host))}/.openshift`, templateOptions);
|
|
22
|
+
(0, devkit_1.generateFiles)(host, path.join(__dirname, 'jenkins'), `${path.dirname((0, devkit_1.getWorkspacePath)(host))}/.openshift`, templateOptions);
|
|
23
23
|
}
|
|
24
24
|
else if (options.pipelineType === 'actions') {
|
|
25
|
-
devkit_1.generateFiles(host, path.join(__dirname, 'actions/openshift'), `${path.dirname(devkit_1.getWorkspacePath(host))}/.openshift`, templateOptions);
|
|
26
|
-
devkit_1.generateFiles(host, path.join(__dirname, 'actions/workflows'), `${path.dirname(devkit_1.getWorkspacePath(host))}/.github/workflows`, templateOptions);
|
|
25
|
+
(0, devkit_1.generateFiles)(host, path.join(__dirname, 'actions/openshift'), `${path.dirname((0, devkit_1.getWorkspacePath)(host))}/.openshift`, templateOptions);
|
|
26
|
+
(0, devkit_1.generateFiles)(host, path.join(__dirname, 'actions/workflows'), `${path.dirname((0, devkit_1.getWorkspacePath)(host))}/.github/workflows`, templateOptions);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
function default_1(host, options) {
|
|
30
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
|
|
31
31
|
const normalizedOptions = normalizeOptions(host, options);
|
|
32
32
|
addFiles(host, normalizedOptions);
|
|
33
|
-
yield devkit_1.formatFiles(host);
|
|
33
|
+
yield (0, devkit_1.formatFiles)(host);
|
|
34
34
|
if (normalizedOptions.applyPipeline) {
|
|
35
|
-
yield apply_infra_1.default(host);
|
|
35
|
+
yield (0, apply_infra_1.default)(host);
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../../../packages/nx-oc/src/generators/pipeline/pipeline.ts"],"names":[],"mappings":";;;AAAA,yCAKsB;AACtB,6BAA6B;AAC7B,qDAAwD;AACxD,4DAA6D;AAG7D,SAAS,gBAAgB,CAAC,IAAU,EAAE,OAAe;;
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../../../../packages/nx-oc/src/generators/pipeline/pipeline.ts"],"names":[],"mappings":";;;AAAA,yCAKsB;AACtB,6BAA6B;AAC7B,uDAA2D;AAC3D,qDAAwD;AACxD,4DAA6D;AAG7D,SAAS,gBAAgB,CAAC,IAAU,EAAE,OAAe;;IACnD,MAAM,aAAa,GAAG,CAAA,MAAA,OAAO,CAAC,IAAI,0CAAE,KAAK,CAAC,GAAG,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAElE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/C,IAAI,eAAe,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM,EAAE;QACjD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KAC/D;IAED,uCACK,OAAO,KACV,cAAc,EAAE,OAAO,CAAC,QAAQ,EAChC,cAAc,EAAE,OAAO,CAAC,KAAK,EAC7B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAC9B,YAAY,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAChE;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAU,EAAE,OAAyB;;IACrD,MAAM,eAAe,mCAChB,OAAO,KACV,mBAAmB,EAAE,MAAA,IAAA,2BAAe,GAAE,0CAAE,IAAI,EAAE,EAC9C,IAAI,EAAJ,4BAAI,EACJ,IAAI,EAAE,EAAE,GACT,CAAC;IAEF,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;QACtC,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAC/B,GAAG,IAAI,CAAC,OAAO,CAAC,IAAA,yBAAgB,EAAC,IAAI,CAAC,CAAC,aAAa,EACpD,eAAe,CAChB,CAAC;KACH;SAAM,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE;QAC7C,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EACzC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAA,yBAAgB,EAAC,IAAI,CAAC,CAAC,aAAa,EACpD,eAAe,CAChB,CAAC;QACF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,EACzC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAA,yBAAgB,EAAC,IAAI,CAAC,CAAC,oBAAoB,EAC3D,eAAe,CAChB,CAAC;KACH;AACH,CAAC;AAED,mBAA+B,IAAU,EAAE,OAAe;;QACxD,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE1D,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAClC,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;QAExB,IAAI,iBAAiB,CAAC,aAAa,EAAE;YACnC,MAAM,IAAA,qBAAmB,EAAC,IAAI,CAAC,CAAC;SACjC;IACH,CAAC;CAAA;AATD,4BASC"}
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"type": "string",
|
|
35
35
|
"description": "Names of the OpenShift Projects for environments.",
|
|
36
36
|
"alias": "e",
|
|
37
|
-
"x-prompt": "What projects should be used for environments (dev test
|
|
37
|
+
"x-prompt": "What projects should be used for environments (dev test prod)?"
|
|
38
38
|
},
|
|
39
39
|
"apply": {
|
|
40
40
|
"type": "boolean",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const pipelineEnvs: string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-envs.js","sourceRoot":"","sources":["../../../../packages/nx-oc/src/pipeline-envs.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC"}
|
package/src/utils/git-utils.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.getGitRemoteUrl = void 0;
|
|
|
4
4
|
const child_process_1 = require("child_process");
|
|
5
5
|
function getGitRemoteUrl() {
|
|
6
6
|
try {
|
|
7
|
-
const stdout = child_process_1.execSync("git config --get remote.origin.url", { stdio: "pipe" }).toString();
|
|
7
|
+
const stdout = (0, child_process_1.execSync)("git config --get remote.origin.url", { stdio: "pipe" }).toString();
|
|
8
8
|
return stdout;
|
|
9
9
|
}
|
|
10
10
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-utils.js","sourceRoot":"","sources":["../../../../../packages/nx-oc/src/utils/git-utils.ts"],"names":[],"mappings":";;;AAAA,iDAAwC;AAExC,SAAgB,eAAe;IAC7B,IAAI;QACF,MAAM,MAAM,GAAG,wBAAQ,
|
|
1
|
+
{"version":3,"file":"git-utils.js","sourceRoot":"","sources":["../../../../../packages/nx-oc/src/utils/git-utils.ts"],"names":[],"mappings":";;;AAAA,iDAAwC;AAExC,SAAgB,eAAe;IAC7B,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,wBAAQ,EACrB,oCAAoC,EACpC,EAAE,KAAK,EAAE,MAAM,EAAE,CAClB,CAAC,QAAQ,EAAE,CAAA;QAEZ,OAAO,MAAM,CAAA;KACd;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAA;KACxC;AACH,CAAC;AAXD,0CAWC"}
|
package/src/utils/oc-utils.js
CHANGED
|
@@ -8,7 +8,7 @@ function runOcCommand(command, params, input) {
|
|
|
8
8
|
`cat | oc ${command} ${['-f -', ...params].join(' ')}`;
|
|
9
9
|
try {
|
|
10
10
|
console.log(`Executing command: ${execute}`);
|
|
11
|
-
const stdout = child_process_1.execSync(execute, { stdio: 'pipe', input });
|
|
11
|
+
const stdout = (0, child_process_1.execSync)(execute, { stdio: 'pipe', input });
|
|
12
12
|
return { success: true, stdout };
|
|
13
13
|
}
|
|
14
14
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oc-utils.js","sourceRoot":"","sources":["../../../../../packages/nx-oc/src/utils/oc-utils.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AAEzC,SAAgB,YAAY,CAC1B,OAAwD,EACxD,MAAgB,EAChB,KAAc;IAEd,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,YAAY,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAEzD,IAAI;QACF,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,wBAAQ,
|
|
1
|
+
{"version":3,"file":"oc-utils.js","sourceRoot":"","sources":["../../../../../packages/nx-oc/src/utils/oc-utils.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AAEzC,SAAgB,YAAY,CAC1B,OAAwD,EACxD,MAAgB,EAChB,KAAc;IAEd,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACrC,YAAY,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAEzD,IAAI;QACF,OAAO,CAAC,GAAG,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;KAClC;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACxD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;KAC3B;AACH,CAAC;AAjBD,oCAiBC"}
|