@nrwl/workspace 14.0.0-beta.1 → 14.0.0-beta.4

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/.eslintrc.json ADDED
@@ -0,0 +1,24 @@
1
+ {
2
+ "extends": "../../.eslintrc",
3
+ "rules": {},
4
+ "overrides": [
5
+ {
6
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7
+ "rules": {}
8
+ },
9
+ {
10
+ "files": ["**/*.ts"],
11
+ "excludedFiles": ["./src/migrations/**", "./src/utils/**"],
12
+ "rules": {
13
+ "no-restricted-imports": [
14
+ "error",
15
+ "@nrwl/workspace",
16
+ "@angular-devkit/core",
17
+ "@angular-devkit/architect",
18
+ "@angular-devkit/schematics"
19
+ ]
20
+ }
21
+ }
22
+ ],
23
+ "ignorePatterns": ["!**/*"]
24
+ }
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.1",
3
+ "version": "14.0.0-beta.4",
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.1",
36
- "@nrwl/cypress": "14.0.0-beta.1",
37
- "@nrwl/devkit": "14.0.0-beta.1",
38
- "@nrwl/eslint-plugin-nx": "14.0.0-beta.1",
39
- "@nrwl/express": "14.0.0-beta.1",
40
- "@nrwl/jest": "14.0.0-beta.1",
41
- "@nrwl/linter": "14.0.0-beta.1",
42
- "@nrwl/nest": "14.0.0-beta.1",
43
- "@nrwl/next": "14.0.0-beta.1",
44
- "@nrwl/node": "14.0.0-beta.1",
45
- "@nrwl/nx-plugin": "14.0.0-beta.1",
46
- "@nrwl/react": "14.0.0-beta.1",
47
- "@nrwl/storybook": "14.0.0-beta.1",
48
- "@nrwl/web": "14.0.0-beta.1",
49
- "@nrwl/js": "14.0.0-beta.1",
50
- "@nrwl/cli": "14.0.0-beta.1",
35
+ "@nrwl/angular": "14.0.0-beta.4",
36
+ "@nrwl/cypress": "14.0.0-beta.4",
37
+ "@nrwl/devkit": "14.0.0-beta.4",
38
+ "@nrwl/eslint-plugin-nx": "14.0.0-beta.4",
39
+ "@nrwl/express": "14.0.0-beta.4",
40
+ "@nrwl/jest": "14.0.0-beta.4",
41
+ "@nrwl/linter": "14.0.0-beta.4",
42
+ "@nrwl/nest": "14.0.0-beta.4",
43
+ "@nrwl/next": "14.0.0-beta.4",
44
+ "@nrwl/node": "14.0.0-beta.4",
45
+ "@nrwl/nx-plugin": "14.0.0-beta.4",
46
+ "@nrwl/react": "14.0.0-beta.4",
47
+ "@nrwl/storybook": "14.0.0-beta.4",
48
+ "@nrwl/web": "14.0.0-beta.4",
49
+ "@nrwl/js": "14.0.0-beta.4",
50
+ "@nrwl/cli": "14.0.0-beta.4",
51
51
  "@nrwl/nx-cloud": "latest",
52
- "@nrwl/react-native": "14.0.0-beta.1",
53
- "@nrwl/detox": "14.0.0-beta.1",
54
- "nx": "14.0.0-beta.1"
52
+ "@nrwl/react-native": "14.0.0-beta.4",
53
+ "@nrwl/detox": "14.0.0-beta.4",
54
+ "nx": "14.0.0-beta.4"
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.1",
88
- "@nrwl/devkit": "14.0.0-beta.1",
89
- "@nrwl/jest": "14.0.0-beta.1",
90
- "@nrwl/linter": "14.0.0-beta.1"
87
+ "nx": "14.0.0-beta.4",
88
+ "@nrwl/devkit": "14.0.0-beta.4",
89
+ "@nrwl/jest": "14.0.0-beta.4",
90
+ "@nrwl/linter": "14.0.0-beta.4"
91
91
  }
92
92
  }
@@ -0,0 +1,6 @@
1
+ import { Tree } from '@nrwl/devkit';
2
+ export interface Schema {
3
+ name?: string;
4
+ ci: 'github' | 'azure' | 'circleci';
5
+ }
6
+ export declare function ciWorkflowGenerator(host: Tree, schema: Schema): Promise<void>;
@@ -0,0 +1,33 @@
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
+ const nxJson = (0, devkit_1.readJson)(host, 'nx.json');
12
+ const nxCloudUsed = Object.values(nxJson.tasksRunnerOptions).find((r) => r.runner == '@nrwl/nx-cloud');
13
+ if (!nxCloudUsed) {
14
+ throw new Error('This workspace is not connected to Nx Cloud.');
15
+ }
16
+ (0, devkit_1.generateFiles)(host, (0, devkit_1.joinPathFragments)(__dirname, 'files', ci), '', options);
17
+ yield (0, devkit_1.formatFiles)(host);
18
+ });
19
+ }
20
+ exports.ciWorkflowGenerator = ciWorkflowGenerator;
21
+ function normalizeOptions(options) {
22
+ const { name: workflowName, fileName: workflowFileName } = (0, devkit_1.names)(options.name || 'CI');
23
+ const { exec: packageManagerPrefix, ciInstall: packageManagerInstall } = (0, devkit_1.getPackageManagerCommand)();
24
+ return {
25
+ workflowName,
26
+ workflowFileName,
27
+ packageManagerInstall,
28
+ packageManagerPrefix,
29
+ mainBranch: (0, default_base_1.deduceDefaultBase)(),
30
+ tmpl: '',
31
+ };
32
+ }
33
+ //# 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,yCASsB;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,MAAM,MAAM,GAAwB,IAAA,iBAAQ,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAC/D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,gBAAgB,CACpC,CAAC;QACF,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;SACjE;QAED,IAAA,sBAAa,EAAC,IAAI,EAAE,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAdD,kDAcC;AAWD,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAA,cAAK,EAC9D,OAAO,CAAC,IAAI,IAAI,IAAI,CACrB,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,60 @@
1
+ name: <%= workflowName %>
2
+
3
+ trigger:
4
+ - <%= mainBranch %>
5
+ pr:
6
+ - <%= mainBranch %>
7
+
8
+ variables:
9
+ CI: 'true'
10
+ NX_CLOUD_DISTRIBUTED_EXECUTION: 'true'
11
+ ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
12
+ NX_BRANCH: $(System.PullRequest.PullRequestNumber)
13
+ TARGET_BRANCH: $[replace(variables['System.PullRequest.TargetBranch'],'refs/heads/','origin/')]
14
+ BASE_SHA: $(git merge-base $(TARGET_BRANCH) HEAD)
15
+ ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
16
+ NX_BRANCH: $(Build.SourceBranchName)
17
+ BASE_SHA: $(git rev-parse HEAD~1)
18
+ HEAD_SHA: $(git rev-parse HEAD)
19
+
20
+ jobs:
21
+ - job: agents
22
+ strategy:
23
+ parallel: 3
24
+ displayName: Nx Cloud Agent
25
+ pool:
26
+ vmImage: 'ubuntu-latest'
27
+ steps:
28
+ <% if(packageManagerPrefix == 'pnpm exec'){ %>
29
+ - script: npm install --prefix=$HOME/.local -g pnpm@6.32.4
30
+ displayName: Install PNPM
31
+ <% } %>- script: <%= packageManagerInstall %>
32
+ displayName: NPM Install Dependencies
33
+ - script: npx nx-cloud start-agent
34
+ displayName: Start Nx-Cloud agent
35
+
36
+ - job: main
37
+ displayName: Nx Cloud Main
38
+ pool:
39
+ vmImage: 'ubuntu-latest'
40
+ steps:
41
+ <% if(packageManagerPrefix == 'pnpm exec'){ %>
42
+ - script: npm install --prefix=$HOME/.local -g pnpm@6.32.4
43
+ displayName: Install PNPM
44
+ <% } %>- script: <%= packageManagerInstall %>
45
+ displayName: NPM Install Dependencies
46
+ - script: <%= packageManagerPrefix %> nx-cloud start-ci-run
47
+ displayName: Start CI run
48
+ - script: <%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx workspace-lint
49
+ displayName: Run workspace lint
50
+ - script: <%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx format:check --base=$(BASE_SHA) --head=$(HEAD_SHA)
51
+ displayName: Check format
52
+ - script: <%= packageManagerPrefix %> nx affected --base=$(BASE_SHA) --head=$(HEAD_SHA) --target=lint --parallel=3
53
+ displayName: Run lint
54
+ - script: <%= packageManagerPrefix %> nx affected --base=$(BASE_SHA) --head=$(HEAD_SHA) --target=test --parallel=3 --ci --code-coverage
55
+ displayName: Run test
56
+ - script: <%= packageManagerPrefix %> nx affected --base=$(BASE_SHA) --head=$(HEAD_SHA) --target=build --parallel=3
57
+ displayName: Run build
58
+ - script: <%= packageManagerPrefix %> nx-cloud stop-all-agents
59
+ condition: always()
60
+ displayName: Stop all Nx-Cloud agents
@@ -0,0 +1,76 @@
1
+ version: 2.1
2
+
3
+ orbs:
4
+ nx: nrwl/nx@1.4.0
5
+
6
+ jobs:
7
+ agent:
8
+ docker:
9
+ - image: cimg/node:lts-browsers
10
+ parameters:
11
+ ordinal:
12
+ type: integer
13
+ steps:
14
+ - checkout
15
+ <% if(packageManagerPrefix == 'pnpm exec'){ %>
16
+ - run:
17
+ name: Install PNPM
18
+ command: npm install --prefix=$HOME/.local -g pnpm@6.32.4
19
+ <% } %>- run:
20
+ name: Install dependencies
21
+ command: <%= packageManagerInstall %>
22
+ - run:
23
+ name: Start the agent << parameters.ordinal >>
24
+ command: <%= packageManagerPrefix %> nx-cloud start-agent
25
+ no_output_timeout: 60m
26
+ main:
27
+ docker:
28
+ - image: cimg/node:lts-browsers
29
+ environment:
30
+ NX_CLOUD_DISTRIBUTED_EXECUTION: 'true'
31
+ steps:
32
+ - checkout
33
+ <% if(packageManagerPrefix == 'pnpm exec'){ %>
34
+ - run:
35
+ name: Install PNPM
36
+ command: npm install --prefix=$HOME/.local -g pnpm@6.32.4
37
+ <% } %>- run:
38
+ name: Install dependencies
39
+ command: <%= packageManagerInstall %>
40
+ - nx/set-shas:
41
+ main-branch-name: '<%= mainBranch %>'
42
+ - run:
43
+ name: Initialize the Nx Cloud distributed CI run
44
+ command: <%= packageManagerPrefix %> nx-cloud start-ci-run
45
+ - run:
46
+ name: Run workspace lint
47
+ command: <%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx workspace-lint
48
+ - run:
49
+ name: Check format
50
+ command: <%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx format:check --base=$NX_BASE --head=$NX_HEAD
51
+ - run:
52
+ name: Run lint
53
+ command: <%= packageManagerPrefix %> nx affected --base=$NX_BASE --head=$NX_HEAD --target=lint --parallel=3
54
+ - run:
55
+ name: Run test
56
+ command: <%= packageManagerPrefix %> nx affected --base=$NX_BASE --head=$NX_HEAD --target=test --parallel=3 --ci --code-coverage
57
+ - run:
58
+ name: Run build
59
+ command: <%= packageManagerPrefix %> nx affected --base=$NX_BASE --head=$NX_HEAD --target=build --parallel=3
60
+ - run:
61
+ name: Stop all agents
62
+ command: <%= packageManagerPrefix %> nx-cloud stop-all-agents
63
+ when: always
64
+
65
+ workflows:
66
+ version: 2
67
+
68
+ <%= workflowFileName %>:
69
+ jobs:
70
+ - agent:
71
+ name: Nx Cloud Agent << matrix.ordinal >>
72
+ matrix:
73
+ parameters:
74
+ ordinal: [1, 2, 3]
75
+ - main:
76
+ name: Nx Cloud Main
@@ -0,0 +1,26 @@
1
+ name: <%= workflowName %>
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - <%= mainBranch %>
7
+ pull_request:
8
+
9
+ jobs:
10
+ main:
11
+ name: Nx Cloud - Main Job
12
+ uses: nrwl/ci/.github/workflows/nx-cloud-main.yml@v0.2
13
+ with:
14
+ parallel-commands: |
15
+ <%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx workspace-lint
16
+ <%= packageManagerPrefix %> nx-cloud record -- <%= packageManagerPrefix %> nx format:check
17
+ parallel-commands-on-agents: |
18
+ <%= packageManagerPrefix %> nx affected --target=lint --parallel=3
19
+ <%= packageManagerPrefix %> nx affected --target=test --parallel=3 --ci --code-coverage
20
+ <%= packageManagerPrefix %> nx affected --target=build --parallel=3
21
+
22
+ agents:
23
+ name: Nx Cloud - Agents
24
+ uses: nrwl/ci/.github/workflows/nx-cloud-agents.yml@v0.2
25
+ with:
26
+ number-of-agents: 3
@@ -0,0 +1,36 @@
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
+ "default": "CI",
31
+ "x-prompt": "How should we name your workflow?",
32
+ "pattern": "^[a-zA-Z].*$"
33
+ }
34
+ },
35
+ "required": ["ci"]
36
+ }
@@ -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.1';
4
+ exports.nxVersion = '14.0.0-beta.4';
5
5
  exports.angularCliVersion = '~13.3.0';
6
6
  exports.typescriptVersion = '~4.6.2';
7
7
  exports.prettierVersion = '^2.5.1';