@nrwl/workspace 14.0.0-beta.1 → 14.0.0-beta.2
Sign up to get free protection for your applications and to get access to all the features.
- package/generators.json +6 -0
- package/package.json +24 -24
- package/src/generators/ci-workflow/ci-workflow.d.ts +6 -0
- package/src/generators/ci-workflow/ci-workflow.js +27 -0
- package/src/generators/ci-workflow/ci-workflow.js.map +1 -0
- package/src/generators/ci-workflow/files/azure/azure-pipelines.yml__tmpl__ +67 -0
- package/src/generators/ci-workflow/schema.json +35 -0
- package/src/utils/versions.js +1 -1
package/generators.json
CHANGED
@@ -141,6 +141,12 @@
|
|
141
141
|
"schema": "./src/generators/npm-package/schema.json",
|
142
142
|
"description": "Create a minimal NPM package.",
|
143
143
|
"x-type": "library"
|
144
|
+
},
|
145
|
+
|
146
|
+
"ci-workflow": {
|
147
|
+
"factory": "./src/generators/ci-workflow/ci-workflow#ciWorkflowGenerator",
|
148
|
+
"schema": "./src/generators/ci-workflow/schema.json",
|
149
|
+
"description": "Generete a CI workflow."
|
144
150
|
}
|
145
151
|
}
|
146
152
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nrwl/workspace",
|
3
|
-
"version": "14.0.0-beta.
|
3
|
+
"version": "14.0.0-beta.2",
|
4
4
|
"description": "Smart, Fast and Extensible Build System.",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -32,26 +32,26 @@
|
|
32
32
|
"requirements": {},
|
33
33
|
"migrations": "./migrations.json",
|
34
34
|
"packageGroup": {
|
35
|
-
"@nrwl/angular": "14.0.0-beta.
|
36
|
-
"@nrwl/cypress": "14.0.0-beta.
|
37
|
-
"@nrwl/devkit": "14.0.0-beta.
|
38
|
-
"@nrwl/eslint-plugin-nx": "14.0.0-beta.
|
39
|
-
"@nrwl/express": "14.0.0-beta.
|
40
|
-
"@nrwl/jest": "14.0.0-beta.
|
41
|
-
"@nrwl/linter": "14.0.0-beta.
|
42
|
-
"@nrwl/nest": "14.0.0-beta.
|
43
|
-
"@nrwl/next": "14.0.0-beta.
|
44
|
-
"@nrwl/node": "14.0.0-beta.
|
45
|
-
"@nrwl/nx-plugin": "14.0.0-beta.
|
46
|
-
"@nrwl/react": "14.0.0-beta.
|
47
|
-
"@nrwl/storybook": "14.0.0-beta.
|
48
|
-
"@nrwl/web": "14.0.0-beta.
|
49
|
-
"@nrwl/js": "14.0.0-beta.
|
50
|
-
"@nrwl/cli": "14.0.0-beta.
|
35
|
+
"@nrwl/angular": "14.0.0-beta.2",
|
36
|
+
"@nrwl/cypress": "14.0.0-beta.2",
|
37
|
+
"@nrwl/devkit": "14.0.0-beta.2",
|
38
|
+
"@nrwl/eslint-plugin-nx": "14.0.0-beta.2",
|
39
|
+
"@nrwl/express": "14.0.0-beta.2",
|
40
|
+
"@nrwl/jest": "14.0.0-beta.2",
|
41
|
+
"@nrwl/linter": "14.0.0-beta.2",
|
42
|
+
"@nrwl/nest": "14.0.0-beta.2",
|
43
|
+
"@nrwl/next": "14.0.0-beta.2",
|
44
|
+
"@nrwl/node": "14.0.0-beta.2",
|
45
|
+
"@nrwl/nx-plugin": "14.0.0-beta.2",
|
46
|
+
"@nrwl/react": "14.0.0-beta.2",
|
47
|
+
"@nrwl/storybook": "14.0.0-beta.2",
|
48
|
+
"@nrwl/web": "14.0.0-beta.2",
|
49
|
+
"@nrwl/js": "14.0.0-beta.2",
|
50
|
+
"@nrwl/cli": "14.0.0-beta.2",
|
51
51
|
"@nrwl/nx-cloud": "latest",
|
52
|
-
"@nrwl/react-native": "14.0.0-beta.
|
53
|
-
"@nrwl/detox": "14.0.0-beta.
|
54
|
-
"nx": "14.0.0-beta.
|
52
|
+
"@nrwl/react-native": "14.0.0-beta.2",
|
53
|
+
"@nrwl/detox": "14.0.0-beta.2",
|
54
|
+
"nx": "14.0.0-beta.2"
|
55
55
|
}
|
56
56
|
},
|
57
57
|
"peerDependencies": {
|
@@ -84,9 +84,9 @@
|
|
84
84
|
"minimatch": "3.0.4",
|
85
85
|
"enquirer": "~2.3.6",
|
86
86
|
"tslib": "^2.3.0",
|
87
|
-
"nx": "14.0.0-beta.
|
88
|
-
"@nrwl/devkit": "14.0.0-beta.
|
89
|
-
"@nrwl/jest": "14.0.0-beta.
|
90
|
-
"@nrwl/linter": "14.0.0-beta.
|
87
|
+
"nx": "14.0.0-beta.2",
|
88
|
+
"@nrwl/devkit": "14.0.0-beta.2",
|
89
|
+
"@nrwl/jest": "14.0.0-beta.2",
|
90
|
+
"@nrwl/linter": "14.0.0-beta.2"
|
91
91
|
}
|
92
92
|
}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.ciWorkflowGenerator = void 0;
|
4
|
+
const tslib_1 = require("tslib");
|
5
|
+
const devkit_1 = require("@nrwl/devkit");
|
6
|
+
const default_base_1 = require("../../utilities/default-base");
|
7
|
+
function ciWorkflowGenerator(host, schema) {
|
8
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
9
|
+
const ci = schema.ci;
|
10
|
+
const options = normalizeOptions(schema);
|
11
|
+
(0, devkit_1.generateFiles)(host, (0, devkit_1.joinPathFragments)(__dirname, 'files', ci), '', options);
|
12
|
+
});
|
13
|
+
}
|
14
|
+
exports.ciWorkflowGenerator = ciWorkflowGenerator;
|
15
|
+
function normalizeOptions(options) {
|
16
|
+
const { name: workflowName, fileName: workflowFileName } = (0, devkit_1.names)(options.name || 'build');
|
17
|
+
const { exec: packageManagerPrefix, ciInstall: packageManagerInstall } = (0, devkit_1.getPackageManagerCommand)();
|
18
|
+
return {
|
19
|
+
workflowName,
|
20
|
+
workflowFileName,
|
21
|
+
packageManagerInstall,
|
22
|
+
packageManagerPrefix,
|
23
|
+
mainBranch: (0, default_base_1.deduceDefaultBase)(),
|
24
|
+
tmpl: '',
|
25
|
+
};
|
26
|
+
}
|
27
|
+
//# sourceMappingURL=ci-workflow.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ci-workflow.js","sourceRoot":"","sources":["../../../../../../packages/workspace/src/generators/ci-workflow/ci-workflow.ts"],"names":[],"mappings":";;;;AAAA,yCAMsB;AACtB,+DAAiE;AAOjE,SAAsB,mBAAmB,CAAC,IAAU,EAAE,MAAc;;QAClE,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;CAAA;AALD,kDAKC;AAWD,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAA,cAAK,EAC9D,OAAO,CAAC,IAAI,IAAI,OAAO,CACxB,CAAC;IACF,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,qBAAqB,EAAE,GACpE,IAAA,iCAAwB,GAAE,CAAC;IAC7B,OAAO;QACL,YAAY;QACZ,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,UAAU,EAAE,IAAA,gCAAiB,GAAE;QAC/B,IAAI,EAAE,EAAE;KACT,CAAC;AACJ,CAAC"}
|
@@ -0,0 +1,67 @@
|
|
1
|
+
name: <%= workflowName %>
|
2
|
+
|
3
|
+
trigger:
|
4
|
+
- <%= mainBranch %>
|
5
|
+
pr:
|
6
|
+
- <%= mainBranch %>
|
7
|
+
|
8
|
+
variables:
|
9
|
+
- name: NX_CLOUD_DISTRIBUTED_EXECUTION
|
10
|
+
value: 'true'
|
11
|
+
- name: NX_BRANCH
|
12
|
+
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
13
|
+
value: $(System.PullRequest.PullRequestNumber)
|
14
|
+
${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
|
15
|
+
value: $(Build.SourceBranchName)
|
16
|
+
- name: TARGET_BRANCH
|
17
|
+
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
18
|
+
value: $[replace(variables['System.PullRequest.TargetBranch'],'refs/heads/','origin/')]
|
19
|
+
- name: BASE_SHA
|
20
|
+
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
21
|
+
value: $(git merge-base $(TARGET_BRANCH) HEAD)
|
22
|
+
${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
|
23
|
+
value: $(git rev-parse HEAD~1)
|
24
|
+
- name: HEAD_SHA
|
25
|
+
value: $(git rev-parse HEAD)
|
26
|
+
|
27
|
+
jobs:
|
28
|
+
- job: agents
|
29
|
+
strategy:
|
30
|
+
parallel: 3
|
31
|
+
displayName: 'Nx Cloud Agent'
|
32
|
+
pool:
|
33
|
+
vmImage: 'ubuntu-latest'
|
34
|
+
steps:
|
35
|
+
<% if(packageManagerPrefix == 'pnpm exec'){ %>
|
36
|
+
- script: npm install --prefix=$HOME/.local -g pnpm@6.32.4
|
37
|
+
displayName: Install PNPM
|
38
|
+
<% } %>- script: <%= packageManagerInstall %>
|
39
|
+
displayName: NPM Install Dependencies
|
40
|
+
- script: npx nx-cloud start-agent
|
41
|
+
displayName: 'Start Nx-Cloud agent
|
42
|
+
|
43
|
+
- job: main
|
44
|
+
displayName: 'Nx Cloud Main'
|
45
|
+
pool:
|
46
|
+
vmImage: 'ubuntu-latest'
|
47
|
+
steps:
|
48
|
+
<% if(packageManagerPrefix == 'pnpm exec'){ %>
|
49
|
+
- script: npm install --prefix=$HOME/.local -g pnpm@6.32.4
|
50
|
+
displayName: Install PNPM
|
51
|
+
<% } %>- script: <%= packageManagerInstall %>
|
52
|
+
displayName: NPM Install Dependencies
|
53
|
+
- script: <%= packageManagerPrefix %> nx-cloud start-ci-run
|
54
|
+
displayName: Start CI run
|
55
|
+
- script: <%= packageManagerPrefix %> nx workspace-lint
|
56
|
+
displayName: Run workspace lint
|
57
|
+
- script: <%= packageManagerPrefix %> nx format:check --base=$(BASE_SHA) --head=$(HEAD_SHA)
|
58
|
+
displayName: Check format
|
59
|
+
- script: <%= packageManagerPrefix %> nx affected --base=$(BASE_SHA) --head=$(HEAD_SHA) --target=lint --parallel=3
|
60
|
+
displayName: Run lint
|
61
|
+
- script: <%= packageManagerPrefix %> nx affected --base=$(BASE_SHA) --head=$(HEAD_SHA) --target=test --parallel=3 --ci --code-coverage
|
62
|
+
displayName: Run test
|
63
|
+
- script: <%= packageManagerPrefix %> nx affected --base=$(BASE_SHA) --head=$(HEAD_SHA) --target=build --parallel=3
|
64
|
+
displayName: Run build
|
65
|
+
- script: <%= packageManagerPrefix %> nx-cloud stop-all-agents
|
66
|
+
condition: always()
|
67
|
+
displayName: Stop all Nx-Cloud agents
|
@@ -0,0 +1,35 @@
|
|
1
|
+
{
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
3
|
+
"$id": "NxWorkspaceCIWorkflow",
|
4
|
+
"title": "Generate a CI workflow.",
|
5
|
+
"description": "Generate a CI workflow.",
|
6
|
+
"cli": "nx",
|
7
|
+
"type": "object",
|
8
|
+
"properties": {
|
9
|
+
"ci": {
|
10
|
+
"type": "string",
|
11
|
+
"description": "CI provider.",
|
12
|
+
"enum": ["github", "circleci", "azure"],
|
13
|
+
"x-prompt": {
|
14
|
+
"message": "What is your target CI provider?",
|
15
|
+
"type": "list",
|
16
|
+
"items": [
|
17
|
+
{ "value": "github", "label": "Github Actions" },
|
18
|
+
{ "value": "circleci", "label": "Circle CI" },
|
19
|
+
{ "value": "azure", "label": "Azure DevOps" }
|
20
|
+
]
|
21
|
+
}
|
22
|
+
},
|
23
|
+
"name": {
|
24
|
+
"type": "string",
|
25
|
+
"description": "Workflow name.",
|
26
|
+
"$default": {
|
27
|
+
"$source": "argv",
|
28
|
+
"index": 0
|
29
|
+
},
|
30
|
+
"x-prompt": "How should we name your workflow?",
|
31
|
+
"pattern": "^[a-zA-Z].*$"
|
32
|
+
}
|
33
|
+
},
|
34
|
+
"required": ["ci"]
|
35
|
+
}
|
package/src/utils/versions.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.eslintConfigPrettierVersion = exports.eslintVersion = exports.typescriptESLintVersion = exports.tslintVersion = exports.prettierVersion = exports.typescriptVersion = exports.angularCliVersion = exports.nxVersion = void 0;
|
4
|
-
exports.nxVersion = '14.0.0-beta.
|
4
|
+
exports.nxVersion = '14.0.0-beta.2';
|
5
5
|
exports.angularCliVersion = '~13.3.0';
|
6
6
|
exports.typescriptVersion = '~4.6.2';
|
7
7
|
exports.prettierVersion = '^2.5.1';
|