From 457bbcbe5778fc7f4e8183ac7a1a6148b4867995 Mon Sep 17 00:00:00 2001 From: Isaac Mann Date: Tue, 7 Nov 2023 08:40:29 -0500 Subject: [PATCH] docs(core): nx cloud features section (#20043) --- docs/generated/manifests/cloud.json | 548 ++++++++++++------ docs/generated/manifests/menus.json | 468 +++++++++------ docs/generated/manifests/nx.json | 64 +- docs/generated/manifests/tags.json | 129 +++-- .../packages/jest/executors/jest.json | 2 +- docs/map.json | 153 ++--- docs/nx-cloud/intro/ci-with-nx.md | 6 +- docs/nx-cloud/private/ami-setup.md | 10 +- docs/nx-cloud/private/auth-single-admin.md | 8 +- docs/nx-cloud/private/get-started.md | 16 +- .../angular-standalone.md | 6 +- .../angular-tutorial/angular-monorepo.md | 10 +- .../concepts/improve-worst-case-ci-times.md | 2 +- .../core-features/cache-task-results.md | 4 +- .../distribute-task-execution.md | 2 +- docs/shared/core-features/run-tasks.md | 2 +- docs/shared/core-tutorial/06-summary.md | 2 +- docs/shared/getting-started/intro.md | 2 +- docs/shared/getting-started/why-nx.md | 2 +- .../guides/define-environment-variables.md | 2 +- docs/shared/guides/nx-and-angular-cli.md | 10 +- docs/shared/migration/adding-to-monorepo.md | 4 +- docs/shared/migration/angular-manual.md | 2 +- docs/shared/migration/from-turborepo.md | 2 +- docs/shared/migration/lerna-and-nx.md | 2 +- docs/shared/migration/migration-angular.md | 2 +- docs/shared/monorepo-ci-azure.md | 2 +- .../shared/monorepo-ci-bitbucket-pipelines.md | 2 +- docs/shared/monorepo-ci-circle-ci.md | 2 +- docs/shared/monorepo-ci-github-actions.md | 2 +- docs/shared/monorepo-ci-gitlab.md | 2 +- docs/shared/monorepo-ci-jenkins.md | 2 +- .../react-standalone.md | 4 +- docs/shared/react-tutorial/react-monorepo.md | 8 +- docs/shared/recipes/add-stack/add-astro.md | 4 +- docs/shared/recipes/add-stack/add-deno.md | 4 +- docs/shared/recipes/add-stack/add-dotnet.md | 4 +- docs/shared/recipes/add-stack/add-express.md | 4 +- docs/shared/recipes/add-stack/add-fastify.md | 4 +- docs/shared/recipes/add-stack/add-lit.md | 4 +- docs/shared/recipes/add-stack/add-nuxt.md | 4 +- docs/shared/recipes/add-stack/add-qwik.md | 4 +- docs/shared/recipes/add-stack/add-rust.md | 4 +- docs/shared/recipes/add-stack/add-solid.md | 4 +- docs/shared/recipes/add-stack/add-svelte.md | 4 +- docs/shared/recipes/add-stack/add-vue.md | 4 +- .../running-tasks/running-custom-commands.md | 4 +- docs/shared/reference/glossary.md | 4 +- docs/shared/reference/sitemap.md | 27 +- docs/shared/using-nx/affected.md | 134 ++++- .../vue-standalone-tutorial/vue-standalone.md | 4 +- nx-dev/data-access-menu/src/lib/menu.utils.ts | 2 +- nx-dev/nx-dev/redirect-rules.js | 20 + .../src/lib/tags/graph.component.tsx | 5 + .../ui-markdoc/src/lib/tags/graph.schema.ts | 3 + packages/jest/docs/jest-examples.md | 2 +- .../generate-workspace-files.spec.ts.snap | 44 +- .../new/files-readme/README.md.template | 2 +- 58 files changed, 1096 insertions(+), 687 deletions(-) diff --git a/docs/generated/manifests/cloud.json b/docs/generated/manifests/cloud.json index eca8aea084..c33bb56098 100644 --- a/docs/generated/manifests/cloud.json +++ b/docs/generated/manifests/cloud.json @@ -50,6 +50,97 @@ "path": "/nx-cloud/intro/nx-cloud-workflows", "tags": [] }, + "/nx-cloud/features": { + "id": "features", + "name": "Features", + "description": "Features of Nx and Nx Cloud that improve CI", + "file": "", + "itemList": [ + { + "id": "remote-cache", + "name": "Use Remote Caching", + "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", + "file": "shared/core-features/remote-cache", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/features/remote-cache", + "tags": ["remote-cache"] + }, + { + "id": "affected", + "name": "Run Only Tasks Affected by a PR", + "description": "", + "file": "shared/using-nx/affected", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/features/affected", + "tags": ["run-tasks"] + }, + { + "id": "distribute-task-execution", + "name": "Distribute Task Execution", + "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Cloud has a built-in DTE mechanism which makes this a trivial task.", + "file": "shared/core-features/distribute-task-execution", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/features/distribute-task-execution", + "tags": ["distribute-task-execution"] + }, + { + "id": "on-premise", + "name": "Set up Nx Cloud On-Premise", + "description": "Set up Nx Cloud on machines that you control", + "file": "nx-cloud/private/get-started", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/features/on-premise", + "tags": ["on-premise"] + } + ], + "isExternal": false, + "path": "/nx-cloud/features", + "tags": [] + }, + "/nx-cloud/features/remote-cache": { + "id": "remote-cache", + "name": "Use Remote Caching", + "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", + "file": "shared/core-features/remote-cache", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/features/remote-cache", + "tags": ["remote-cache"] + }, + "/nx-cloud/features/affected": { + "id": "affected", + "name": "Run Only Tasks Affected by a PR", + "description": "", + "file": "shared/using-nx/affected", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/features/affected", + "tags": ["run-tasks"] + }, + "/nx-cloud/features/distribute-task-execution": { + "id": "distribute-task-execution", + "name": "Distribute Task Execution", + "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Cloud has a built-in DTE mechanism which makes this a trivial task.", + "file": "shared/core-features/distribute-task-execution", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/features/distribute-task-execution", + "tags": ["distribute-task-execution"] + }, + "/nx-cloud/features/on-premise": { + "id": "on-premise", + "name": "Set up Nx Cloud On-Premise", + "description": "Set up Nx Cloud on machines that you control", + "file": "nx-cloud/private/get-started", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/features/on-premise", + "tags": ["on-premise"] + }, "/nx-cloud/recipes": { "id": "recipes", "name": "Recipes", @@ -140,7 +231,7 @@ { "id": "source-control-integration", "name": "Source Control Integration", - "description": "Learn how to set up Nx Cloud for your workspace.", + "description": "Show Nx Cloud results directly in your pull request", "file": "", "itemList": [ { @@ -178,6 +269,97 @@ "path": "/nx-cloud/recipes/source-control-integration", "tags": [] }, + { + "id": "on-premise", + "name": "On-Premise", + "description": "Manage an on-premise installation of Nx Cloud", + "file": "", + "itemList": [ + { + "id": "auth-single-admin", + "name": "Authenticate with a Single Admin", + "description": "", + "file": "nx-cloud/private/auth-single-admin", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-single-admin", + "tags": [] + }, + { + "id": "auth-github", + "name": "Authenticate with GitHub", + "description": "", + "file": "nx-cloud/private/auth-github", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-github", + "tags": [] + }, + { + "id": "ami-setup", + "name": "On-Prem VM Setup", + "description": "", + "file": "nx-cloud/private/ami-setup", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/ami-setup", + "tags": [] + }, + { + "id": "auth-gitlab", + "name": "Authenticate with GitLab", + "description": "", + "file": "nx-cloud/private/auth-gitlab", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-gitlab", + "tags": [] + }, + { + "id": "auth-bitbucket", + "name": "Authenticate with BitBucket", + "description": "", + "file": "nx-cloud/private/auth-bitbucket", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-bitbucket", + "tags": [] + }, + { + "id": "auth-saml", + "name": "Authenticate via SAML", + "description": "", + "file": "nx-cloud/private/auth-saml", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-saml", + "tags": [] + }, + { + "id": "auth-saml-managed", + "name": "Authenticate via SAML on Managed Version", + "description": "", + "file": "nx-cloud/private/auth-saml-managed", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-saml-managed", + "tags": [] + }, + { + "id": "advanced-config", + "name": "Advanced Configuration", + "description": "", + "file": "nx-cloud/private/advanced-config", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/advanced-config", + "tags": [] + } + ], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise", + "tags": [] + }, { "id": "other", "name": "Other", @@ -368,7 +550,7 @@ "/nx-cloud/recipes/source-control-integration": { "id": "source-control-integration", "name": "Source Control Integration", - "description": "Learn how to set up Nx Cloud for your workspace.", + "description": "Show Nx Cloud results directly in your pull request", "file": "", "itemList": [ { @@ -436,6 +618,177 @@ "path": "/nx-cloud/recipes/source-control-integration/gitlab", "tags": [] }, + "/nx-cloud/recipes/on-premise": { + "id": "on-premise", + "name": "On-Premise", + "description": "Manage an on-premise installation of Nx Cloud", + "file": "", + "itemList": [ + { + "id": "auth-single-admin", + "name": "Authenticate with a Single Admin", + "description": "", + "file": "nx-cloud/private/auth-single-admin", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-single-admin", + "tags": [] + }, + { + "id": "auth-github", + "name": "Authenticate with GitHub", + "description": "", + "file": "nx-cloud/private/auth-github", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-github", + "tags": [] + }, + { + "id": "ami-setup", + "name": "On-Prem VM Setup", + "description": "", + "file": "nx-cloud/private/ami-setup", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/ami-setup", + "tags": [] + }, + { + "id": "auth-gitlab", + "name": "Authenticate with GitLab", + "description": "", + "file": "nx-cloud/private/auth-gitlab", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-gitlab", + "tags": [] + }, + { + "id": "auth-bitbucket", + "name": "Authenticate with BitBucket", + "description": "", + "file": "nx-cloud/private/auth-bitbucket", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-bitbucket", + "tags": [] + }, + { + "id": "auth-saml", + "name": "Authenticate via SAML", + "description": "", + "file": "nx-cloud/private/auth-saml", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-saml", + "tags": [] + }, + { + "id": "auth-saml-managed", + "name": "Authenticate via SAML on Managed Version", + "description": "", + "file": "nx-cloud/private/auth-saml-managed", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-saml-managed", + "tags": [] + }, + { + "id": "advanced-config", + "name": "Advanced Configuration", + "description": "", + "file": "nx-cloud/private/advanced-config", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/advanced-config", + "tags": [] + } + ], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise", + "tags": [] + }, + "/nx-cloud/recipes/on-premise/auth-single-admin": { + "id": "auth-single-admin", + "name": "Authenticate with a Single Admin", + "description": "", + "file": "nx-cloud/private/auth-single-admin", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-single-admin", + "tags": [] + }, + "/nx-cloud/recipes/on-premise/auth-github": { + "id": "auth-github", + "name": "Authenticate with GitHub", + "description": "", + "file": "nx-cloud/private/auth-github", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-github", + "tags": [] + }, + "/nx-cloud/recipes/on-premise/ami-setup": { + "id": "ami-setup", + "name": "On-Prem VM Setup", + "description": "", + "file": "nx-cloud/private/ami-setup", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/ami-setup", + "tags": [] + }, + "/nx-cloud/recipes/on-premise/auth-gitlab": { + "id": "auth-gitlab", + "name": "Authenticate with GitLab", + "description": "", + "file": "nx-cloud/private/auth-gitlab", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-gitlab", + "tags": [] + }, + "/nx-cloud/recipes/on-premise/auth-bitbucket": { + "id": "auth-bitbucket", + "name": "Authenticate with BitBucket", + "description": "", + "file": "nx-cloud/private/auth-bitbucket", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-bitbucket", + "tags": [] + }, + "/nx-cloud/recipes/on-premise/auth-saml": { + "id": "auth-saml", + "name": "Authenticate via SAML", + "description": "", + "file": "nx-cloud/private/auth-saml", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-saml", + "tags": [] + }, + "/nx-cloud/recipes/on-premise/auth-saml-managed": { + "id": "auth-saml-managed", + "name": "Authenticate via SAML on Managed Version", + "description": "", + "file": "nx-cloud/private/auth-saml-managed", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/auth-saml-managed", + "tags": [] + }, + "/nx-cloud/recipes/on-premise/advanced-config": { + "id": "advanced-config", + "name": "Advanced Configuration", + "description": "", + "file": "nx-cloud/private/advanced-config", + "itemList": [], + "isExternal": false, + "path": "/nx-cloud/recipes/on-premise/advanced-config", + "tags": [] + }, "/nx-cloud/recipes/other": { "id": "other", "name": "Other", @@ -598,197 +951,6 @@ "path": "/nx-cloud/account/encryption", "tags": [] }, - "/nx-cloud/private-cloud": { - "id": "private-cloud", - "name": "Run Nx Cloud On-Premise", - "description": "Learn about Running Nx Cloud On-Premise", - "file": "", - "itemList": [ - { - "id": "get-started", - "name": "Get Started", - "description": "", - "file": "nx-cloud/private/get-started", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/get-started", - "tags": [] - }, - { - "id": "auth-single-admin", - "name": "Authenticate with a Single Admin", - "description": "", - "file": "nx-cloud/private/auth-single-admin", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/auth-single-admin", - "tags": [] - }, - { - "id": "auth-github", - "name": "Authenticate with GitHub", - "description": "", - "file": "nx-cloud/private/auth-github", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/auth-github", - "tags": [] - }, - { - "id": "ami-setup", - "name": "On-Prem VM Setup", - "description": "", - "file": "nx-cloud/private/ami-setup", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/ami-setup", - "tags": [] - }, - { - "id": "auth-gitlab", - "name": "Authenticate with GitLab", - "description": "", - "file": "nx-cloud/private/auth-gitlab", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/auth-gitlab", - "tags": [] - }, - { - "id": "auth-bitbucket", - "name": "Authenticate with BitBucket", - "description": "", - "file": "nx-cloud/private/auth-bitbucket", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/auth-bitbucket", - "tags": [] - }, - { - "id": "auth-saml", - "name": "Authenticate via SAML", - "description": "", - "file": "nx-cloud/private/auth-saml", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/auth-saml", - "tags": [] - }, - { - "id": "auth-saml-managed", - "name": "Authenticate via SAML on Managed Version", - "description": "", - "file": "nx-cloud/private/auth-saml-managed", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/auth-saml-managed", - "tags": [] - }, - { - "id": "advanced-config", - "name": "Advanced Configuration", - "description": "", - "file": "nx-cloud/private/advanced-config", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/advanced-config", - "tags": [] - } - ], - "isExternal": false, - "path": "/nx-cloud/private-cloud", - "tags": [] - }, - "/nx-cloud/private-cloud/get-started": { - "id": "get-started", - "name": "Get Started", - "description": "", - "file": "nx-cloud/private/get-started", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/get-started", - "tags": [] - }, - "/nx-cloud/private-cloud/auth-single-admin": { - "id": "auth-single-admin", - "name": "Authenticate with a Single Admin", - "description": "", - "file": "nx-cloud/private/auth-single-admin", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/auth-single-admin", - "tags": [] - }, - "/nx-cloud/private-cloud/auth-github": { - "id": "auth-github", - "name": "Authenticate with GitHub", - "description": "", - "file": "nx-cloud/private/auth-github", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/auth-github", - "tags": [] - }, - "/nx-cloud/private-cloud/ami-setup": { - "id": "ami-setup", - "name": "On-Prem VM Setup", - "description": "", - "file": "nx-cloud/private/ami-setup", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/ami-setup", - "tags": [] - }, - "/nx-cloud/private-cloud/auth-gitlab": { - "id": "auth-gitlab", - "name": "Authenticate with GitLab", - "description": "", - "file": "nx-cloud/private/auth-gitlab", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/auth-gitlab", - "tags": [] - }, - "/nx-cloud/private-cloud/auth-bitbucket": { - "id": "auth-bitbucket", - "name": "Authenticate with BitBucket", - "description": "", - "file": "nx-cloud/private/auth-bitbucket", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/auth-bitbucket", - "tags": [] - }, - "/nx-cloud/private-cloud/auth-saml": { - "id": "auth-saml", - "name": "Authenticate via SAML", - "description": "", - "file": "nx-cloud/private/auth-saml", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/auth-saml", - "tags": [] - }, - "/nx-cloud/private-cloud/auth-saml-managed": { - "id": "auth-saml-managed", - "name": "Authenticate via SAML on Managed Version", - "description": "", - "file": "nx-cloud/private/auth-saml-managed", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/auth-saml-managed", - "tags": [] - }, - "/nx-cloud/private-cloud/advanced-config": { - "id": "advanced-config", - "name": "Advanced Configuration", - "description": "", - "file": "nx-cloud/private/advanced-config", - "itemList": [], - "isExternal": false, - "path": "/nx-cloud/private-cloud/advanced-config", - "tags": [] - }, "/nx-cloud/reference": { "id": "reference", "name": "Reference", diff --git a/docs/generated/manifests/menus.json b/docs/generated/manifests/menus.json index f0e1b22a05..41d2bb42b3 100644 --- a/docs/generated/manifests/menus.json +++ b/docs/generated/manifests/menus.json @@ -592,17 +592,17 @@ }, { "name": "Use Remote Caching", - "path": "/core-features/remote-cache", + "path": "/nx-cloud/features/remote-cache", "id": "remote-cache", - "isExternal": false, + "isExternal": true, "children": [], "disableCollapsible": false }, { "name": "Distribute Task Execution", - "path": "/core-features/distribute-task-execution", + "path": "/nx-cloud/features/distribute-task-execution", "id": "distribute-task-execution", - "isExternal": false, + "isExternal": true, "children": [], "disableCollapsible": false }, @@ -684,17 +684,17 @@ }, { "name": "Use Remote Caching", - "path": "/core-features/remote-cache", + "path": "/nx-cloud/features/remote-cache", "id": "remote-cache", - "isExternal": false, + "isExternal": true, "children": [], "disableCollapsible": false }, { "name": "Distribute Task Execution", - "path": "/core-features/distribute-task-execution", + "path": "/nx-cloud/features/distribute-task-execution", "id": "distribute-task-execution", - "isExternal": false, + "isExternal": true, "children": [], "disableCollapsible": false }, @@ -817,14 +817,6 @@ "children": [], "disableCollapsible": false }, - { - "name": "How Affected Works", - "path": "/concepts/affected", - "id": "affected", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", "path": "/concepts/integrated-vs-package-based", @@ -1062,14 +1054,6 @@ "children": [], "disableCollapsible": false }, - { - "name": "How Affected Works", - "path": "/concepts/affected", - "id": "affected", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", "path": "/concepts/integrated-vs-package-based", @@ -5592,6 +5576,79 @@ "children": [], "disableCollapsible": false }, + { + "name": "Features", + "path": "/nx-cloud/features", + "id": "features", + "isExternal": false, + "children": [ + { + "name": "Use Remote Caching", + "path": "/nx-cloud/features/remote-cache", + "id": "remote-cache", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Only Tasks Affected by a PR", + "path": "/nx-cloud/features/affected", + "id": "affected", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Distribute Task Execution", + "path": "/nx-cloud/features/distribute-task-execution", + "id": "distribute-task-execution", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Nx Cloud On-Premise", + "path": "/nx-cloud/features/on-premise", + "id": "on-premise", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Use Remote Caching", + "path": "/nx-cloud/features/remote-cache", + "id": "remote-cache", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Run Only Tasks Affected by a PR", + "path": "/nx-cloud/features/affected", + "id": "affected", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Distribute Task Execution", + "path": "/nx-cloud/features/distribute-task-execution", + "id": "distribute-task-execution", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Set up Nx Cloud On-Premise", + "path": "/nx-cloud/features/on-premise", + "id": "on-premise", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, { "name": "Recipes", "path": "/nx-cloud/recipes", @@ -5696,6 +5753,79 @@ ], "disableCollapsible": false }, + { + "name": "On-Premise", + "path": "/nx-cloud/recipes/on-premise", + "id": "on-premise", + "isExternal": false, + "children": [ + { + "name": "Authenticate with a Single Admin", + "path": "/nx-cloud/recipes/on-premise/auth-single-admin", + "id": "auth-single-admin", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitHub", + "path": "/nx-cloud/recipes/on-premise/auth-github", + "id": "auth-github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "On-Prem VM Setup", + "path": "/nx-cloud/recipes/on-premise/ami-setup", + "id": "ami-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitLab", + "path": "/nx-cloud/recipes/on-premise/auth-gitlab", + "id": "auth-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket", + "path": "/nx-cloud/recipes/on-premise/auth-bitbucket", + "id": "auth-bitbucket", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML", + "path": "/nx-cloud/recipes/on-premise/auth-saml", + "id": "auth-saml", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML on Managed Version", + "path": "/nx-cloud/recipes/on-premise/auth-saml-managed", + "id": "auth-saml-managed", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Advanced Configuration", + "path": "/nx-cloud/recipes/on-premise/advanced-config", + "id": "advanced-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, { "name": "Other", "path": "/nx-cloud/recipes/other", @@ -5902,6 +6032,143 @@ "children": [], "disableCollapsible": false }, + { + "name": "On-Premise", + "path": "/nx-cloud/recipes/on-premise", + "id": "on-premise", + "isExternal": false, + "children": [ + { + "name": "Authenticate with a Single Admin", + "path": "/nx-cloud/recipes/on-premise/auth-single-admin", + "id": "auth-single-admin", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitHub", + "path": "/nx-cloud/recipes/on-premise/auth-github", + "id": "auth-github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "On-Prem VM Setup", + "path": "/nx-cloud/recipes/on-premise/ami-setup", + "id": "ami-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitLab", + "path": "/nx-cloud/recipes/on-premise/auth-gitlab", + "id": "auth-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket", + "path": "/nx-cloud/recipes/on-premise/auth-bitbucket", + "id": "auth-bitbucket", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML", + "path": "/nx-cloud/recipes/on-premise/auth-saml", + "id": "auth-saml", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML on Managed Version", + "path": "/nx-cloud/recipes/on-premise/auth-saml-managed", + "id": "auth-saml-managed", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Advanced Configuration", + "path": "/nx-cloud/recipes/on-premise/advanced-config", + "id": "advanced-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + } + ], + "disableCollapsible": false + }, + { + "name": "Authenticate with a Single Admin", + "path": "/nx-cloud/recipes/on-premise/auth-single-admin", + "id": "auth-single-admin", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitHub", + "path": "/nx-cloud/recipes/on-premise/auth-github", + "id": "auth-github", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "On-Prem VM Setup", + "path": "/nx-cloud/recipes/on-premise/ami-setup", + "id": "ami-setup", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with GitLab", + "path": "/nx-cloud/recipes/on-premise/auth-gitlab", + "id": "auth-gitlab", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate with BitBucket", + "path": "/nx-cloud/recipes/on-premise/auth-bitbucket", + "id": "auth-bitbucket", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML", + "path": "/nx-cloud/recipes/on-premise/auth-saml", + "id": "auth-saml", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Authenticate via SAML on Managed Version", + "path": "/nx-cloud/recipes/on-premise/auth-saml-managed", + "id": "auth-saml-managed", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, + { + "name": "Advanced Configuration", + "path": "/nx-cloud/recipes/on-premise/advanced-config", + "id": "advanced-config", + "isExternal": false, + "children": [], + "disableCollapsible": false + }, { "name": "Other", "path": "/nx-cloud/recipes/other", @@ -6032,159 +6299,6 @@ "children": [], "disableCollapsible": false }, - { - "name": "Run Nx Cloud On-Premise", - "path": "/nx-cloud/private-cloud", - "id": "private-cloud", - "isExternal": false, - "children": [ - { - "name": "Get Started", - "path": "/nx-cloud/private-cloud/get-started", - "id": "get-started", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with a Single Admin", - "path": "/nx-cloud/private-cloud/auth-single-admin", - "id": "auth-single-admin", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with GitHub", - "path": "/nx-cloud/private-cloud/auth-github", - "id": "auth-github", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "On-Prem VM Setup", - "path": "/nx-cloud/private-cloud/ami-setup", - "id": "ami-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with GitLab", - "path": "/nx-cloud/private-cloud/auth-gitlab", - "id": "auth-gitlab", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with BitBucket", - "path": "/nx-cloud/private-cloud/auth-bitbucket", - "id": "auth-bitbucket", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate via SAML", - "path": "/nx-cloud/private-cloud/auth-saml", - "id": "auth-saml", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate via SAML on Managed Version", - "path": "/nx-cloud/private-cloud/auth-saml-managed", - "id": "auth-saml-managed", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Advanced Configuration", - "path": "/nx-cloud/private-cloud/advanced-config", - "id": "advanced-config", - "isExternal": false, - "children": [], - "disableCollapsible": false - } - ], - "disableCollapsible": false - }, - { - "name": "Get Started", - "path": "/nx-cloud/private-cloud/get-started", - "id": "get-started", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with a Single Admin", - "path": "/nx-cloud/private-cloud/auth-single-admin", - "id": "auth-single-admin", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with GitHub", - "path": "/nx-cloud/private-cloud/auth-github", - "id": "auth-github", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "On-Prem VM Setup", - "path": "/nx-cloud/private-cloud/ami-setup", - "id": "ami-setup", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with GitLab", - "path": "/nx-cloud/private-cloud/auth-gitlab", - "id": "auth-gitlab", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate with BitBucket", - "path": "/nx-cloud/private-cloud/auth-bitbucket", - "id": "auth-bitbucket", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate via SAML", - "path": "/nx-cloud/private-cloud/auth-saml", - "id": "auth-saml", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Authenticate via SAML on Managed Version", - "path": "/nx-cloud/private-cloud/auth-saml-managed", - "id": "auth-saml-managed", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, - { - "name": "Advanced Configuration", - "path": "/nx-cloud/private-cloud/advanced-config", - "id": "advanced-config", - "isExternal": false, - "children": [], - "disableCollapsible": false - }, { "name": "Reference", "path": "/nx-cloud/reference", diff --git a/docs/generated/manifests/nx.json b/docs/generated/manifests/nx.json index 65a49ec204..29c7af28ba 100644 --- a/docs/generated/manifests/nx.json +++ b/docs/generated/manifests/nx.json @@ -734,22 +734,22 @@ { "id": "remote-cache", "name": "Use Remote Caching", - "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", - "file": "shared/core-features/remote-cache", + "description": "", + "file": "", "itemList": [], - "isExternal": false, - "path": "/core-features/remote-cache", - "tags": ["remote-cache"] + "isExternal": true, + "path": "/nx-cloud/features/remote-cache", + "tags": [] }, { "id": "distribute-task-execution", "name": "Distribute Task Execution", - "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Cloud has a built-in DTE mechanism which makes this a trivial task.", - "file": "shared/core-features/distribute-task-execution", + "description": "", + "file": "", "itemList": [], - "isExternal": false, - "path": "/core-features/distribute-task-execution", - "tags": ["distribute-task-execution"] + "isExternal": true, + "path": "/nx-cloud/features/distribute-task-execution", + "tags": [] }, { "id": "explore-graph", @@ -847,25 +847,25 @@ "path": "/core-features/cache-task-results", "tags": ["cache-task-results"] }, - "/core-features/remote-cache": { + "/nx-cloud/features/remote-cache": { "id": "remote-cache", "name": "Use Remote Caching", - "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", - "file": "shared/core-features/remote-cache", + "description": "", + "file": "", "itemList": [], - "isExternal": false, - "path": "/core-features/remote-cache", - "tags": ["remote-cache"] + "isExternal": true, + "path": "/nx-cloud/features/remote-cache", + "tags": [] }, - "/core-features/distribute-task-execution": { + "/nx-cloud/features/distribute-task-execution": { "id": "distribute-task-execution", "name": "Distribute Task Execution", - "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Cloud has a built-in DTE mechanism which makes this a trivial task.", - "file": "shared/core-features/distribute-task-execution", + "description": "", + "file": "", "itemList": [], - "isExternal": false, - "path": "/core-features/distribute-task-execution", - "tags": ["distribute-task-execution"] + "isExternal": true, + "path": "/nx-cloud/features/distribute-task-execution", + "tags": [] }, "/core-features/explore-graph": { "id": "explore-graph", @@ -1014,16 +1014,6 @@ "path": "/concepts/task-pipeline-configuration", "tags": ["run-tasks", "use-task-executors"] }, - { - "id": "affected", - "name": "How Affected Works", - "description": "", - "file": "shared/using-nx/affected", - "itemList": [], - "isExternal": false, - "path": "/concepts/affected", - "tags": ["run-tasks"] - }, { "id": "integrated-vs-package-based", "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", @@ -1326,16 +1316,6 @@ "path": "/concepts/task-pipeline-configuration", "tags": ["run-tasks", "use-task-executors"] }, - "/concepts/affected": { - "id": "affected", - "name": "How Affected Works", - "description": "", - "file": "shared/using-nx/affected", - "itemList": [], - "isExternal": false, - "path": "/concepts/affected", - "tags": ["run-tasks"] - }, "/concepts/integrated-vs-package-based": { "id": "integrated-vs-package-based", "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", diff --git a/docs/generated/manifests/tags.json b/docs/generated/manifests/tags.json index c162427e3a..7c17d4b7bf 100644 --- a/docs/generated/manifests/tags.json +++ b/docs/generated/manifests/tags.json @@ -14,13 +14,6 @@ "name": "What is a Task Pipeline", "path": "/concepts/task-pipeline-configuration" }, - { - "description": "", - "file": "shared/using-nx/affected", - "id": "affected", - "name": "How Affected Works", - "path": "/concepts/affected" - }, { "description": "", "file": "shared/recipes/running-tasks/customizing-inputs", @@ -63,6 +56,13 @@ "name": "Workspace Watching", "path": "/recipes/running-tasks/workspace-watching" }, + { + "description": "", + "file": "shared/using-nx/affected", + "id": "affected", + "name": "Run Only Tasks Affected by a PR", + "path": "/nx-cloud/features/affected" + }, { "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", "file": "generated/packages/generated/packages/nx/documents/run", @@ -171,59 +171,6 @@ "path": "/nx-api/nx/documents/reset" } ], - "remote-cache": [ - { - "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", - "file": "shared/core-features/remote-cache", - "id": "remote-cache", - "name": "Use Remote Caching", - "path": "/core-features/remote-cache" - } - ], - "distribute-task-execution": [ - { - "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Cloud has a built-in DTE mechanism which makes this a trivial task.", - "file": "shared/core-features/distribute-task-execution", - "id": "distribute-task-execution", - "name": "Distribute Task Execution", - "path": "/core-features/distribute-task-execution" - }, - { - "description": "", - "file": "shared/concepts/improve-worst-case-ci-times", - "id": "dte", - "name": "Improve Worst Case CI Times", - "path": "/concepts/dte" - }, - { - "description": "", - "file": "shared/concepts/illustrated-dte-guide", - "id": "illustrated-dte", - "name": "Illustrated Distributed Task Execution", - "path": "/concepts/more-concepts/illustrated-dte" - }, - { - "description": "", - "file": "", - "id": "nx-cloud-documentation", - "name": "Nx Cloud Documentation", - "path": "/nx-cloud/intro/ci-with-nx" - }, - { - "description": "", - "file": "shared/ci-overview", - "id": "ci-setup", - "name": "CI Setup", - "path": "/nx-cloud/recipes/set-up/ci-setup" - }, - { - "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", - "file": "generated/packages/generated/packages/nx/documents/connect-to-nx-cloud", - "id": "connect-to-nx-cloud", - "name": "connect-to-nx-cloud", - "path": "/nx-api/nx/documents/connect-to-nx-cloud" - } - ], "explore-graph": [ { "description": "Nx uses a graph behind the scenes to optimize your operations. You can also visualize and use the graph to better understand your workspace structure. Learn more in this guide.", @@ -637,6 +584,50 @@ "path": "/concepts/integrated-vs-package-based" } ], + "distribute-task-execution": [ + { + "description": "", + "file": "shared/concepts/improve-worst-case-ci-times", + "id": "dte", + "name": "Improve Worst Case CI Times", + "path": "/concepts/dte" + }, + { + "description": "", + "file": "shared/concepts/illustrated-dte-guide", + "id": "illustrated-dte", + "name": "Illustrated Distributed Task Execution", + "path": "/concepts/more-concepts/illustrated-dte" + }, + { + "description": "", + "file": "", + "id": "nx-cloud-documentation", + "name": "Nx Cloud Documentation", + "path": "/nx-cloud/intro/ci-with-nx" + }, + { + "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Cloud has a built-in DTE mechanism which makes this a trivial task.", + "file": "shared/core-features/distribute-task-execution", + "id": "distribute-task-execution", + "name": "Distribute Task Execution", + "path": "/nx-cloud/features/distribute-task-execution" + }, + { + "description": "", + "file": "shared/ci-overview", + "id": "ci-setup", + "name": "CI Setup", + "path": "/nx-cloud/recipes/set-up/ci-setup" + }, + { + "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.", + "file": "generated/packages/generated/packages/nx/documents/connect-to-nx-cloud", + "id": "connect-to-nx-cloud", + "name": "connect-to-nx-cloud", + "path": "/nx-api/nx/documents/connect-to-nx-cloud" + } + ], "repository-types": [ { "description": "", @@ -1156,6 +1147,24 @@ "path": "/showcase/example-repos/serverless-fastify-planetscale" } ], + "remote-cache": [ + { + "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", + "file": "shared/core-features/remote-cache", + "id": "remote-cache", + "name": "Use Remote Caching", + "path": "/nx-cloud/features/remote-cache" + } + ], + "on-premise": [ + { + "description": "Set up Nx Cloud on machines that you control", + "file": "nx-cloud/private/get-started", + "id": "on-premise", + "name": "Set up Nx Cloud On-Premise", + "path": "/nx-cloud/features/on-premise" + } + ], "docker": [ { "description": "", diff --git a/docs/generated/packages/jest/executors/jest.json b/docs/generated/packages/jest/executors/jest.json index 009169afc3..4364547bb0 100644 --- a/docs/generated/packages/jest/executors/jest.json +++ b/docs/generated/packages/jest/executors/jest.json @@ -198,7 +198,7 @@ } }, "required": ["jestConfig"], - "examplesFile": "Jest can be configured in many ways, but primarily you'll need to at least have the jestConfig options\n\n```json\n\"test\": {\n \"executor\": \"@nx/jest:jest\",\n \"options\": {\n \"jestConfig\": \"libs/my-lib/jest.config.ts\"\n }\n}\n```\n\nIt is also helpful to have `passWithNoTests: true` set so your project doesn't fail testing while tests are still being added.\n\n```json\n\"test\": {\n \"executor\": \"@nx/jest:jest\",\n \"options\": {\n \"jestConfig\": \"libs/my-lib/jest.config.ts\",\n \"passWithNoTests\": true\n }\n}\n```\n\n### Snapshots\n\nUpdate snapshots running with `--update-snapshot` or `-u` for short.\n\n```bash\nnx test my-project -u\n```\n\nOther times you might not want to allow updating snapshots such as in CI.\nAdding a _ci_ configuration is helpful for adding this behavior.\n\n```json\n\"test\": {\n \"executor\": \"@nx/jest:jest\",\n \"options\": {\n \"jestConfig\": \"libs/my-lib/jest.config.ts\",\n \"passWithNoTests\": true\n },\n \"configurations\": {\n \"ci\": {\n \"ci\": true\n }\n }\n}\n```\n\n```bash\nnx affected --target=test --configuration=ci\n```\n\nLearn more [about _affected_](/concepts/affected)\n" + "examplesFile": "Jest can be configured in many ways, but primarily you'll need to at least have the jestConfig options\n\n```json\n\"test\": {\n \"executor\": \"@nx/jest:jest\",\n \"options\": {\n \"jestConfig\": \"libs/my-lib/jest.config.ts\"\n }\n}\n```\n\nIt is also helpful to have `passWithNoTests: true` set so your project doesn't fail testing while tests are still being added.\n\n```json\n\"test\": {\n \"executor\": \"@nx/jest:jest\",\n \"options\": {\n \"jestConfig\": \"libs/my-lib/jest.config.ts\",\n \"passWithNoTests\": true\n }\n}\n```\n\n### Snapshots\n\nUpdate snapshots running with `--update-snapshot` or `-u` for short.\n\n```bash\nnx test my-project -u\n```\n\nOther times you might not want to allow updating snapshots such as in CI.\nAdding a _ci_ configuration is helpful for adding this behavior.\n\n```json\n\"test\": {\n \"executor\": \"@nx/jest:jest\",\n \"options\": {\n \"jestConfig\": \"libs/my-lib/jest.config.ts\",\n \"passWithNoTests\": true\n },\n \"configurations\": {\n \"ci\": {\n \"ci\": true\n }\n }\n}\n```\n\n```bash\nnx affected --target=test --configuration=ci\n```\n\nLearn more [about _affected_](/nx-cloud/features/affected)\n" }, "description": "Run Jest unit tests.", "aliases": [], diff --git a/docs/map.json b/docs/map.json index 04b7176d5f..3079c3a881 100644 --- a/docs/map.json +++ b/docs/map.json @@ -204,17 +204,17 @@ }, { "name": "Use Remote Caching", - "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", "id": "remote-cache", - "tags": ["remote-cache"], - "file": "shared/core-features/remote-cache" + "file": "", + "path": "/nx-cloud/features/remote-cache", + "isExternal": true }, { "name": "Distribute Task Execution", - "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Cloud has a built-in DTE mechanism which makes this a trivial task.", "id": "distribute-task-execution", - "tags": ["distribute-task-execution"], - "file": "shared/core-features/distribute-task-execution" + "file": "", + "path": "/nx-cloud/features/distribute-task-execution", + "isExternal": true }, { "name": "Explore the Graph", @@ -300,12 +300,6 @@ "id": "task-pipeline-configuration", "file": "shared/concepts/task-pipeline-configuration" }, - { - "name": "How Affected Works", - "tags": ["run-tasks"], - "id": "affected", - "file": "shared/using-nx/affected" - }, { "name": "Integrated Repos vs. Package-Based Repos vs. Standalone Apps", "tags": ["intro", "repository-types"], @@ -1657,6 +1651,40 @@ } ] }, + { + "name": "Features", + "id": "features", + "description": "Features of Nx and Nx Cloud that improve CI", + "itemList": [ + { + "name": "Use Remote Caching", + "description": "Learn how to enable remote caching s.t. you don't just benefit locally from it but also in CI.", + "id": "remote-cache", + "tags": ["remote-cache"], + "file": "shared/core-features/remote-cache" + }, + { + "name": "Run Only Tasks Affected by a PR", + "tags": ["run-tasks"], + "id": "affected", + "file": "shared/using-nx/affected" + }, + { + "name": "Distribute Task Execution", + "description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Cloud has a built-in DTE mechanism which makes this a trivial task.", + "id": "distribute-task-execution", + "tags": ["distribute-task-execution"], + "file": "shared/core-features/distribute-task-execution" + }, + { + "name": "Set up Nx Cloud On-Premise", + "description": "Set up Nx Cloud on machines that you control", + "id": "on-premise", + "tags": ["on-premise"], + "file": "nx-cloud/private/get-started" + } + ] + }, { "name": "Recipes", "id": "recipes", @@ -1708,7 +1736,7 @@ { "name": "Source Control Integration", "id": "source-control-integration", - "description": "Learn how to set up Nx Cloud for your workspace.", + "description": "Show Nx Cloud results directly in your pull request", "itemList": [ { "name": "Enable GitHub PR Integration", @@ -1727,6 +1755,53 @@ } ] }, + { + "name": "On-Premise", + "id": "on-premise", + "description": "Manage an on-premise installation of Nx Cloud", + "itemList": [ + { + "name": "Authenticate with a Single Admin", + "id": "auth-single-admin", + "file": "nx-cloud/private/auth-single-admin" + }, + { + "name": "Authenticate with GitHub", + "id": "auth-github", + "file": "nx-cloud/private/auth-github" + }, + { + "name": "On-Prem VM Setup", + "id": "ami-setup", + "file": "nx-cloud/private/ami-setup" + }, + { + "name": "Authenticate with GitLab", + "id": "auth-gitlab", + "file": "nx-cloud/private/auth-gitlab" + }, + { + "name": "Authenticate with BitBucket", + "id": "auth-bitbucket", + "file": "nx-cloud/private/auth-bitbucket" + }, + { + "name": "Authenticate via SAML", + "id": "auth-saml", + "file": "nx-cloud/private/auth-saml" + }, + { + "name": "Authenticate via SAML on Managed Version", + "id": "auth-saml-managed", + "file": "nx-cloud/private/auth-saml-managed" + }, + { + "name": "Advanced Configuration", + "id": "advanced-config", + "file": "nx-cloud/private/advanced-config" + } + ] + }, { "name": "Other", "id": "other", @@ -1779,58 +1854,6 @@ } ] }, - { - "name": "Run Nx Cloud On-Premise", - "id": "private-cloud", - "description": "Learn about Running Nx Cloud On-Premise", - "itemList": [ - { - "name": "Get Started", - "id": "get-started", - "file": "nx-cloud/private/get-started" - }, - { - "name": "Authenticate with a Single Admin", - "id": "auth-single-admin", - "file": "nx-cloud/private/auth-single-admin" - }, - { - "name": "Authenticate with GitHub", - "id": "auth-github", - "file": "nx-cloud/private/auth-github" - }, - { - "name": "On-Prem VM Setup", - "id": "ami-setup", - "file": "nx-cloud/private/ami-setup" - }, - { - "name": "Authenticate with GitLab", - "id": "auth-gitlab", - "file": "nx-cloud/private/auth-gitlab" - }, - { - "name": "Authenticate with BitBucket", - "id": "auth-bitbucket", - "file": "nx-cloud/private/auth-bitbucket" - }, - { - "name": "Authenticate via SAML", - "id": "auth-saml", - "file": "nx-cloud/private/auth-saml" - }, - { - "name": "Authenticate via SAML on Managed Version", - "id": "auth-saml-managed", - "file": "nx-cloud/private/auth-saml-managed" - }, - { - "name": "Advanced Configuration", - "id": "advanced-config", - "file": "nx-cloud/private/advanced-config" - } - ] - }, { "name": "Reference", "id": "reference", diff --git a/docs/nx-cloud/intro/ci-with-nx.md b/docs/nx-cloud/intro/ci-with-nx.md index 07287993b9..8385c11a3d 100644 --- a/docs/nx-cloud/intro/ci-with-nx.md +++ b/docs/nx-cloud/intro/ci-with-nx.md @@ -4,9 +4,9 @@ When implemented well, continuous integration (CI) allows a team of developers t ## Core Features -- Test only the code that might have been [affected](/concepts/affected) by a PR -- Improve the average CI time with [remote caching](/core-features/remote-cache) -- Improve the worst case CI time with [distributed task execution](/core-features/distribute-task-execution) +- Test only the code that might have been [affected](/nx-cloud/features/affected) by a PR +- Improve the average CI time with [remote caching](/nx-cloud/features/remote-cache) +- Improve the worst case CI time with [distributed task execution](/nx-cloud/features/distribute-task-execution) - Quickly troubleshoot errors that occur in CI - Create a simple but powerful pipeline configuration that easily scales with your codebase diff --git a/docs/nx-cloud/private/ami-setup.md b/docs/nx-cloud/private/ami-setup.md index 1b1b82185c..9c55dd1d02 100644 --- a/docs/nx-cloud/private/ami-setup.md +++ b/docs/nx-cloud/private/ami-setup.md @@ -126,26 +126,26 @@ nxCloudAppURL: 'https://nx-cloud.on.my-domain.ca' # make sure no backslash is at # the filesystem secret: # set your initial admin password for logging into the app - # see here: https://nx.dev/nx-cloud/private-cloud/auth-single-admin + # see here: https://nx.dev/nx-cloud/recipes/on-premise/auth-single-admin adminPassword: 'correcthorsebatterystaple' # If you want to enable GitHub Login, just provide your client id & secret, we handle the rest - # see here: https://nx.dev/nx-cloud/private-cloud/auth-github + # see here: https://nx.dev/nx-cloud/recipes/on-premise/auth-github githubAuthClientId: 'my_client_id' githubAuthClientSecret: 'my_client_secret' # The same goes for GitLab authentication - # see here: https://nx.dev/nx-cloud/private-cloud/auth-gitlab + # see here: https://nx.dev/nx-cloud/recipes/on-premise/auth-gitlab # gitlabAppId: 'my_gitlab_app_id' # gitlabAppSecret: 'my_gitlab_app_secret' # Bitbucket too! If these are uncommented, BB auth is automatically enabled - # see here: https://nx.dev/nx-cloud/private-cloud/auth-bitbucket + # see here: https://nx.dev/nx-cloud/recipes/on-premise/auth-bitbucket # bitbucketAppId: 'bitbucket_app_id' # bitbucketAppSecret: 'bitbucket_app_secret' # SAML auth - # see here: https://nx.dev/nx-cloud/private-cloud/auth-saml + # see here: https://nx.dev/nx-cloud/recipes/on-premise/auth-saml # samlEntryPoint: 'your_saml_entry_point' # samlCert: 'saml_cert' ``` diff --git a/docs/nx-cloud/private/auth-single-admin.md b/docs/nx-cloud/private/auth-single-admin.md index bd0205c5ed..2324a8732b 100644 --- a/docs/nx-cloud/private/auth-single-admin.md +++ b/docs/nx-cloud/private/auth-single-admin.md @@ -33,10 +33,10 @@ than 1 admin to your workspace, to reduce the chance of losing access to it. For instructions on how to set up third-party auth providers, please refer to these guides: -- [GitHub Auth](/nx-cloud/private-cloud/auth-github) -- [GitLab Auth](/nx-cloud/private-cloud/auth-gitlab) -- [BitBucket Auth](/nx-cloud/private-cloud/auth-bitbucket) -- [SAML Auth](/nx-cloud/private-cloud/auth-saml) +- [GitHub Auth](/nx-cloud/recipes/on-premise/auth-github) +- [GitLab Auth](/nx-cloud/recipes/on-premise/auth-gitlab) +- [BitBucket Auth](/nx-cloud/recipes/on-premise/auth-bitbucket) +- [SAML Auth](/nx-cloud/recipes/on-premise/auth-saml) ## Inviting users diff --git a/docs/nx-cloud/private/get-started.md b/docs/nx-cloud/private/get-started.md index efdf58ba8d..4ac7f563f6 100644 --- a/docs/nx-cloud/private/get-started.md +++ b/docs/nx-cloud/private/get-started.md @@ -47,7 +47,7 @@ Once you let us know you'd like this option, depending on the agreed requirement If you would like to host NxCloud yourself, within your organization's infrastructure, the easiest way to set it up is as a self-contained VM. -Refer to our ["Self-contained VM" guide](/nx-cloud/private-cloud/ami-setup) for instructions on running NxCloud on Amazon EC2. +Refer to our ["Self-contained VM" guide](/nx-cloud/recipes/on-premise/ami-setup) for instructions on running NxCloud on Amazon EC2. #### Multi-node setup with Kubernetes @@ -58,10 +58,10 @@ We do offer, however, a multi-node Kubernetes setup, that is deployed via Helm. ## Resources - [GitHub PR Integration](/nx-cloud/recipes/source-control-integration/github) -- [Auth (Basic)](/nx-cloud/private-cloud/auth-single-admin) -- [GitHub Auth](/nx-cloud/private-cloud/auth-github) -- [GitLab Auth](/nx-cloud/private-cloud/auth-gitlab) -- [BitBucket Auth](/nx-cloud/private-cloud/auth-bitbucket) -- [SAML Auth](/nx-cloud/private-cloud/auth-saml) -- [SAML Auth Managed Cloud](/nx-cloud/private-cloud/auth-saml-managed) -- [Advanced Configuration](/nx-cloud/private-cloud/advanced-config) +- [Auth (Basic)](/nx-cloud/recipes/on-premise/auth-single-admin) +- [GitHub Auth](/nx-cloud/recipes/on-premise/auth-github) +- [GitLab Auth](/nx-cloud/recipes/on-premise/auth-gitlab) +- [BitBucket Auth](/nx-cloud/recipes/on-premise/auth-bitbucket) +- [SAML Auth](/nx-cloud/recipes/on-premise/auth-saml) +- [SAML Auth Managed Cloud](/nx-cloud/recipes/on-premise/auth-saml-managed) +- [Advanced Configuration](/nx-cloud/recipes/on-premise/advanced-config) diff --git a/docs/shared/angular-standalone-tutorial/angular-standalone.md b/docs/shared/angular-standalone-tutorial/angular-standalone.md index c39861b276..9c28928ef4 100644 --- a/docs/shared/angular-standalone-tutorial/angular-standalone.md +++ b/docs/shared/angular-standalone-tutorial/angular-standalone.md @@ -46,7 +46,7 @@ Create a new Angular application with the following command: You get asked a few questions that help Nx preconfigure your new Angular application. These include - Angular specific questions, such as whether you want to have the router set up for you, whether to use the Angular Standalone API and which stylesheet format to use -- General Nx questions, such as whether to enable distributed caching with Nx Cloud. Nx comes with built-in [local caching](/core-features/cache-task-results). If you want to benefit from this cache in CI, you can enable [distributed caching](/core-features/remote-cache) which will set up [Nx Cloud](https://nx.app). This is also a prerequisite for enabling [distributed task execution](/core-features/distribute-task-execution). +- General Nx questions, such as whether to enable distributed caching with Nx Cloud. Nx comes with built-in [local caching](/core-features/cache-task-results). If you want to benefit from this cache in CI, you can enable [distributed caching](/nx-cloud/features/remote-cache) which will set up [Nx Cloud](https://nx.app). This is also a prerequisite for enabling [distributed task execution](/nx-cloud/features/distribute-task-execution). For the sake of this tutorial, let's respond to all the questions with "yes". @@ -830,8 +830,8 @@ Here's some more things you can dive into next: - Learn about popular generators such as [how to setup Tailwind](/recipes/angular/using-tailwind-css-with-angular-projects) or [add Storybook to your UI library](/recipes/storybook/overview-angular) - Learn how to [migrate your existing Angular CLI repo to Nx](/recipes/angular/migration/angular) - [Speed up CI: Run only tasks for project that got changed](/core-features/run-tasks#run-tasks-affected-by-a-pr) -- [Speed up CI: Share your cache](/core-features/remote-cache) -- [Speed up CI: Distribute your tasks across machines](/core-features/distribute-task-execution) +- [Speed up CI: Share your cache](/nx-cloud/features/remote-cache) +- [Speed up CI: Distribute your tasks across machines](/nx-cloud/features/distribute-task-execution) Also, make sure you diff --git a/docs/shared/angular-tutorial/angular-monorepo.md b/docs/shared/angular-tutorial/angular-monorepo.md index 4d16e460ec..0b32f28774 100644 --- a/docs/shared/angular-tutorial/angular-monorepo.md +++ b/docs/shared/angular-tutorial/angular-monorepo.md @@ -25,7 +25,7 @@ Nx evolved from being an extension of the Angular CLI to a [fully standalone CLI Advantages of Nx over the Angular CLI: - [Cache any target](/core-features/cache-task-results) -- [Run only tasks affected by a code change](/concepts/affected) +- [Run only tasks affected by a code change](/nx-cloud/features/affected) - [Split a large angular.json into multiple project.json files](/concepts/more-concepts/nx-and-angular#projectjson-vs-angularjson) - [Integrate with modern tools](/concepts/more-concepts/nx-and-angular#integrating-with-modern-tools) - [Controllable update process](/concepts/more-concepts/nx-and-angular#ng-update-vs-nx-migrate) @@ -981,7 +981,7 @@ Learn more about how to [enforce module boundaries](/core-features/enforce-modul ## Setting Up CI -Without adequate tooling, CI times tend to grow exponentially with the size of the codebase. Nx helps decrease the average CI time with the [`affected` command](/concepts/affected) and Nx Cloud's [distributed caching](/core-features/remote-cache). Nx also [decreases the worst case CI time](/concepts/dte) with Nx Cloud's distributed task execution. +Without adequate tooling, CI times tend to grow exponentially with the size of the codebase. Nx helps decrease the average CI time with the [`affected` command](/nx-cloud/features/affected) and Nx Cloud's [distributed caching](/nx-cloud/features/remote-cache). Nx also [decreases the worst case CI time](/concepts/dte) with Nx Cloud's distributed task execution. To set up Nx Cloud run: @@ -1001,7 +1001,7 @@ nx generate ci-workflow --ci=github You can choose `github`, `circleci`, `azure`, `bitbucket-pipelines`, or `gitlab` for the `ci` flag. {% /callout %} -This will create a default CI configuration that sets up Nx Cloud to [use distributed task execution](/core-features/distribute-task-execution). This automatically runs all tasks on separate machines in parallel wherever possible, without requiring you to manually coordinate copying the output from one machine to another. +This will create a default CI configuration that sets up Nx Cloud to [use distributed task execution](/nx-cloud/features/distribute-task-execution). This automatically runs all tasks on separate machines in parallel wherever possible, without requiring you to manually coordinate copying the output from one machine to another. ## Next Steps @@ -1013,8 +1013,8 @@ Here's some more things you can dive into next: - Learn how to [migrate your existing Angular CLI repo to Nx](/recipes/angular/migration/angular) - [Setup Storybook for our shared UI library](/recipes/storybook/overview-angular) - [Speed up CI: Run only tasks for project that got changed](/core-features/run-tasks#run-tasks-affected-by-a-pr) -- [Speed up CI: Share your cache](/core-features/remote-cache) -- [Speed up CI: Distribute your tasks across machines](/core-features/distribute-task-execution) +- [Speed up CI: Share your cache](/nx-cloud/features/remote-cache) +- [Speed up CI: Distribute your tasks across machines](/nx-cloud/features/distribute-task-execution) Also, make sure you diff --git a/docs/shared/concepts/improve-worst-case-ci-times.md b/docs/shared/concepts/improve-worst-case-ci-times.md index 1332019de0..794bb7e033 100644 --- a/docs/shared/concepts/improve-worst-case-ci-times.md +++ b/docs/shared/concepts/improve-worst-case-ci-times.md @@ -121,7 +121,7 @@ Because Nx uses distributed computation caching to replay all the tasks back on ## Conclusion -If your repo is starting to grow large enough that CI times are suffering, or if your parallelization strategy is growing too complex to manage effectively, try [setting up Nx Cloud with Distributed Task Execution](/core-features/distribute-task-execution). You can generate a simple workflow for common CI providers with a single command and then customize from there. +If your repo is starting to grow large enough that CI times are suffering, or if your parallelization strategy is growing too complex to manage effectively, try [setting up Nx Cloud with Distributed Task Execution](/nx-cloud/features/distribute-task-execution). You can generate a simple workflow for common CI providers with a single command and then customize from there. Nx Cloud is [free for up to 300 CI Pipeline Executions](https://nx.app/pricing/) per month. Most organizations do not exceed the free tier. If you're working on an open source repo, we'll give you a coupon for unlimited free use of Nx Cloud. diff --git a/docs/shared/core-features/cache-task-results.md b/docs/shared/core-features/cache-task-results.md index d2d4414d1c..d2d452e9d2 100644 --- a/docs/shared/core-features/cache-task-results.md +++ b/docs/shared/core-features/cache-task-results.md @@ -125,7 +125,7 @@ You can enable remote caching by connecting to [Nx Cloud](/nx-cloud). To connect npx nx connect ``` -Learn more about [remote caching](/core-features/remote-cache). +Learn more about [remote caching](/nx-cloud/features/remote-cache). ## Turn off or Skip the Cache @@ -135,7 +135,7 @@ If you want to ignore the cache (both reads and writes), use the `--skip-nx-cach nx build header --skip-nx-cache ``` -Alternatively if you want to disable caching for a particular task, just make sure it is not part [of the cached targets](/core-features/cache-task-results#define-cacheable-tasks). If [you're using Nx Cloud](/core-features/remote-cache#skipping-cloud-cache), you might want to use `--no-cloud` to skip remote caching. +Alternatively if you want to disable caching for a particular task, just make sure it is not part [of the cached targets](/core-features/cache-task-results#define-cacheable-tasks). If [you're using Nx Cloud](/nx-cloud/features/remote-cache#skipping-cloud-cache), you might want to use `--no-cloud` to skip remote caching. ## Clear the Local Cache diff --git a/docs/shared/core-features/distribute-task-execution.md b/docs/shared/core-features/distribute-task-execution.md index ef27b07aca..11da7c2a98 100644 --- a/docs/shared/core-features/distribute-task-execution.md +++ b/docs/shared/core-features/distribute-task-execution.md @@ -1,7 +1,7 @@ # Distribute Task Execution (DTE) Nx speeds up your average CI time with [caching](/core-features/cache-task-results) and -the [affected command](/concepts/affected). But neither of these features help with the worst case scenario. When +the [affected command](/nx-cloud/features/affected). But neither of these features help with the worst case scenario. When something at the core of your repo has been modified and every task needs to be run in CI, the only way to improve the performance is by adding more agent jobs and efficiently parallelizing the tasks. diff --git a/docs/shared/core-features/run-tasks.md b/docs/shared/core-features/run-tasks.md index f438c7ee05..ac034dec6b 100644 --- a/docs/shared/core-features/run-tasks.md +++ b/docs/shared/core-features/run-tasks.md @@ -96,7 +96,7 @@ You can also run a command for all the projects affected by your PR like this: npx nx affected -t test ``` -Learn more about the affected command [here](/concepts/affected). +Learn more about the affected command [here](/nx-cloud/features/affected). ## Defining a Task Pipeline diff --git a/docs/shared/core-tutorial/06-summary.md b/docs/shared/core-tutorial/06-summary.md index 6f01e12caa..2d6d273fca 100644 --- a/docs/shared/core-tutorial/06-summary.md +++ b/docs/shared/core-tutorial/06-summary.md @@ -18,4 +18,4 @@ You created a workspace from scratch in this tutorial, but if you would like to **Dive Deep:** - [Computation Caching](/concepts/how-caching-works) -- [Rebuilding What is Affected](/concepts/affected) +- [Rebuilding What is Affected](/nx-cloud/features/affected) diff --git a/docs/shared/getting-started/intro.md b/docs/shared/getting-started/intro.md index 7bf3b1f099..26fb391e32 100644 --- a/docs/shared/getting-started/intro.md +++ b/docs/shared/getting-started/intro.md @@ -5,7 +5,7 @@ Nx is a powerful open-source build system that provides tools and techniques for ## Core Features - **Run Tasks Efficiently**: Nx [runs tasks in parallel](/core-features/run-tasks) and orders the tasks based on the dependencies between them. -- **Cache Locally & Remotely**: With [local](/core-features/cache-task-results) and [remote caching](/core-features/remote-cache), Nx prevents unnecessary re-runs of tasks, saving you valuable dev time. +- **Cache Locally & Remotely**: With [local](/core-features/cache-task-results) and [remote caching](/nx-cloud/features/remote-cache), Nx prevents unnecessary re-runs of tasks, saving you valuable dev time. - **Automate Dependency Updates**: if you leverage Nx plugins you gain additional features such as [code generation](/core-features/plugin-features/use-code-generators) and tools to [automatically upgrade](core-features/automate-updating-dependencies) your codebase and dependencies. - **Make it Your Own**: Nx is highly customizable and extensible. Fine-tune it by [creating your own plugins](/extending-nx/intro/getting-started) and optionally [share them with the community](/extending-nx/tutorials/publish-plugin#publish-your-nx-plugin). diff --git a/docs/shared/getting-started/why-nx.md b/docs/shared/getting-started/why-nx.md index fe9c123715..c17101825e 100644 --- a/docs/shared/getting-started/why-nx.md +++ b/docs/shared/getting-started/why-nx.md @@ -27,7 +27,7 @@ Nx is built in a modular fashion to let you only use the features you need. ![High-level Nx architecture](/shared/images/nx-architecture.svg) -- The **Nx** package provides fundamental technology-agnostic capabilities such as: [workspace analysis](/core-features/explore-graph), [task running](/core-features/run-tasks), [caching](/core-features/cache-task-results), [distribution](/core-features/distribute-task-execution), [code generation](/core-features/plugin-features/use-code-generators) and [automated code migrations](/core-features/automate-updating-dependencies). +- The **Nx** package provides fundamental technology-agnostic capabilities such as: [workspace analysis](/core-features/explore-graph), [task running](/core-features/run-tasks), [caching](/core-features/cache-task-results), [distribution](/nx-cloud/features/distribute-task-execution), [code generation](/core-features/plugin-features/use-code-generators) and [automated code migrations](/core-features/automate-updating-dependencies). - **Plugins** are NPM packages that built on top of the fundamental capabilities provided by the Nx package. Nx plugins contain [code generators](/core-features/plugin-features/use-code-generators), [executors](/core-features/plugin-features/use-task-executors) (to abstract lower-level build tooling) and automated code migrations for keeping your tools up to date. Contrary to the Nx package, which works the same way with any JS or non-JS project, plugins are usually technology specific. For instance, `@nx/react` adds support for building React apps and libs, `@nx/cypress` adds e2e testing capabilities with Cypress. Plugins make developers more productive by removing any friction of integrating different tools with each other and by providing utilities to keep them up to date. The Nx team maintains plugins for React, Next, Remix, Angular, Jest, Cypress, Storybook and more. You can use the `@nx/plugin` package to easily [scaffold a new plugin](/extending-nx/intro/getting-started) or even just [automate your local workspace](/extending-nx/recipes/local-generators). There are also more than 80 [community plugins](/plugin-registry). - **Devkit** is a set of utilities for [building Nx plugins](/extending-nx/intro/getting-started). - **Nx Cloud** helps scale your project on CI by [adding remote caching](/concepts/how-caching-works) and [distributed task execution](/concepts/more-concepts/illustrated-dte). It also improves developer ergonomics by integrating with GitHub, GitLab and BitBucket and providing searchable structured logs. Learn more at [nx.app](https://nx.app). diff --git a/docs/shared/guides/define-environment-variables.md b/docs/shared/guides/define-environment-variables.md index 7f6c90e866..fca5b9d0e4 100644 --- a/docs/shared/guides/define-environment-variables.md +++ b/docs/shared/guides/define-environment-variables.md @@ -46,7 +46,7 @@ For example: from `apps/my-app/.env`, it will notice that `NX_API_URL` already exists, so it will ignore it. We recommend nesting your **app** specific `env` files in `apps/your-app`, and creating workspace/root level `env` files -for workspace-specific settings (like the [Nx Cloud token](/core-features/remote-cache)). +for workspace-specific settings (like the [Nx Cloud token](/nx-cloud/features/remote-cache)). {% /callout %} ### Pointing to custom env files diff --git a/docs/shared/guides/nx-and-angular-cli.md b/docs/shared/guides/nx-and-angular-cli.md index 1fe052ab23..4715c92c78 100644 --- a/docs/shared/guides/nx-and-angular-cli.md +++ b/docs/shared/guides/nx-and-angular-cli.md @@ -43,8 +43,8 @@ Here's a quick side-by-side overview comparing the features between the Angular | [Running Tasks in Parallel](/recipes/running-tasks/run-tasks-in-parallel) | ❌ | ✅ | | Building, Testing [Only What is Affected](/core-features/run-tasks#run-tasks-on-projects-affected-by-a-pr) | ❌ | ✅ | | [Local Caching](/core-features/cache-task-results) | ❌\*\* | ✅ | -| [Distributed Caching](/core-features/remote-cache) | ❌ | ✅ | -| [Distributed Task Execution on CI](/core-features/distribute-task-execution) | ❌ | ✅ | +| [Distributed Caching](/nx-cloud/features/remote-cache) | ❌ | ✅ | +| [Distributed Task Execution on CI](/nx-cloud/features/distribute-task-execution) | ❌ | ✅ | | Custom Hashers | ❌ | ✅ | | [Extensible Plugin System](/extending-nx/intro/getting-started) | ❌ | ✅ | @@ -209,11 +209,11 @@ Nx is designed to be fast. The Angular CLI leverages Webpack's caching, which Nx Features like -- only running tasks on [affected projects](/concepts/affected) +- only running tasks on [affected projects](/nx-cloud/features/affected) - running [tasks in parallel](/core-features/run-tasks#run-tasks-for-multiple-projects) - applying [computation caching](/core-features/cache-task-results) -- offering [remote caching abilities](/core-features/remote-cache) on CI -- offering [task distribution across machines (DTE)](/core-features/distribute-task-execution) +- offering [remote caching abilities](/nx-cloud/features/remote-cache) on CI +- offering [task distribution across machines (DTE)](/nx-cloud/features/distribute-task-execution) And, Nx already uses fast, modern tooling like [ESBuild](/nx-api/esbuild), [Vite](/nx-api/vite), Vitest and [Rspack](/nx-api/rspack) for non-Angular stacks. So once Angular is ready to use these tools, Nx will also be ready. diff --git a/docs/shared/migration/adding-to-monorepo.md b/docs/shared/migration/adding-to-monorepo.md index 47b40d2380..3fd62f3190 100644 --- a/docs/shared/migration/adding-to-monorepo.md +++ b/docs/shared/migration/adding-to-monorepo.md @@ -9,8 +9,8 @@ Nx has first-class support for [package-based monorepos](/getting-started/tutori - fast [task scheduling](/core-features/run-tasks) - support for [task pipelines](/concepts/task-pipeline-configuration) - [caching](/core-features/cache-task-results) -- optionally [remote caching with Nx Cloud](/core-features/remote-cache) -- optionally [distributed task execution with Nx Cloud](/core-features/distribute-task-execution) +- optionally [remote caching with Nx Cloud](/nx-cloud/features/remote-cache) +- optionally [distributed task execution with Nx Cloud](/nx-cloud/features/distribute-task-execution) This is a low-impact operation because all that needs to be done is to install the `nx` package at the root level and add an `nx.json` for configuring caching and task pipelines. diff --git a/docs/shared/migration/angular-manual.md b/docs/shared/migration/angular-manual.md index 902cba7cd7..17c02e1cb8 100644 --- a/docs/shared/migration/angular-manual.md +++ b/docs/shared/migration/angular-manual.md @@ -193,4 +193,4 @@ Learn more about the advantages of Nx in the following guides: [Using Cypress for e2e tests](/nx-api/cypress) \ [Using Jest for unit tests](/nx-api/jest) \ -[Rebuilding and Retesting What is Affected](/concepts/affected) +[Rebuilding and Retesting What is Affected](/nx-cloud/features/affected) diff --git a/docs/shared/migration/from-turborepo.md b/docs/shared/migration/from-turborepo.md index 80b440d247..70a7227472 100644 --- a/docs/shared/migration/from-turborepo.md +++ b/docs/shared/migration/from-turborepo.md @@ -213,7 +213,7 @@ For each `turbo.json` configuration property, the equivalent Nx property is list | `--output-logs` | Use [`--output-style`](/nx-api/nx/documents/run-many#output-style) | | `--only` | N/A | | `--parallel` | N/A | -| `--remote-only` | N/A. Can [ignore the remote cache](/core-features/remote-cache#skipping-cloud) with `--no-cloud`. | +| `--remote-only` | N/A. Can [ignore the remote cache](/nx-cloud/features/remote-cache#skipping-cloud) with `--no-cloud`. | | `--summarize` | N/A | | `--token` | Set the [Nx Cloud token in `nx.json`](/nx-cloud/account/access-tokens#setting-access-tokens) or as an environment variable (`NX_CLOUD_ACCESS_TOKEN`) | | `--team` | See `--token` for choosing a different Nx Cloud workspace. You can [use `--runner`](/nx-api/nx/documents/run-many#runner) to choose a different runner defined in the `nx.json` file. | diff --git a/docs/shared/migration/lerna-and-nx.md b/docs/shared/migration/lerna-and-nx.md index 67d882c048..c885e17210 100644 --- a/docs/shared/migration/lerna-and-nx.md +++ b/docs/shared/migration/lerna-and-nx.md @@ -21,7 +21,7 @@ For a discussion on #2, see [dependency management](#dependency-management) belo Nx comes with a powerful task scheduler that intelligently runs operations and makes sure they are quick. This happens in a variety of ways: - **Parallelization and task dependencies -** Nx automatically [knows how your projects relate to each other](/concepts/more-concepts/how-project-graph-is-built). As a result, if `project-a` depends on `project-b` and you run the build command for `project-a`, Nx first runs the builds for all of `project-a`'s dependencies and then the invoked project itself. Nx sorts these tasks to maximize parallelism. -- **Only run what changed -** Using [Nx affected commands](/concepts/affected) you only really execute tasks on the projects that changed, compared to a given baseline (usually the main branch). +- **Only run what changed -** Using [Nx affected commands](/nx-cloud/features/affected) you only really execute tasks on the projects that changed, compared to a given baseline (usually the main branch). - **Caching -** You get Nx's [computation caching](/concepts/how-caching-works) for free. All operations, including artifacts and terminal output are restored from the cache (if present) in a completely transparent way without disrupting your DX. No configuration needed. Obviously this results in an incredible speed improvement. - **Distributed Task Execution -** This is unique to Nx. In combination with Nx Cloud your tasks are automatically distributed across CI agents, taking into account build order, maximizing parallelization and thus agent utilization. It even learns from previous runs to better distribute tasks! [Learn more](/concepts/dte) diff --git a/docs/shared/migration/migration-angular.md b/docs/shared/migration/migration-angular.md index a0200b2935..152e4f6c77 100644 --- a/docs/shared/migration/migration-angular.md +++ b/docs/shared/migration/migration-angular.md @@ -117,7 +117,7 @@ Learn more about the advantages of Nx in the following guides: - [Using Cypress for e2e tests](/nx-api/cypress) - [Using Jest for unit tests](/nx-api/jest) - [Computation Caching](/concepts/how-caching-works) -- [Rebuilding and Retesting What is Affected](/concepts/affected) +- [Rebuilding and Retesting What is Affected](/nx-cloud/features/affected) - [Integrate with Editors](/core-features/integrate-with-editors) - [Advanced Angular Micro Frontends with Dynamic Module Federation](/recipes/angular/dynamic-module-federation-with-angular) diff --git a/docs/shared/monorepo-ci-azure.md b/docs/shared/monorepo-ci-azure.md index 3bf133b1c8..822f72c049 100644 --- a/docs/shared/monorepo-ci-azure.md +++ b/docs/shared/monorepo-ci-azure.md @@ -97,7 +97,7 @@ Finally we extract the result in a common [custom variable](https://learn.micros ## Distributed Task Execution with Nx Cloud -Read more about [Distributed Task Execution (DTE)](/core-features/distribute-task-execution). +Read more about [Distributed Task Execution (DTE)](/nx-cloud/features/distribute-task-execution). ```yaml trigger: diff --git a/docs/shared/monorepo-ci-bitbucket-pipelines.md b/docs/shared/monorepo-ci-bitbucket-pipelines.md index 8affcb58a6..c20d5081f8 100644 --- a/docs/shared/monorepo-ci-bitbucket-pipelines.md +++ b/docs/shared/monorepo-ci-bitbucket-pipelines.md @@ -32,7 +32,7 @@ The `pull-requests` and `main` jobs implement the CI workflow. ## Distributed Task Execution -This pipeline uses [Distributed Task Execution (DTE)](/core-features/distribute-task-execution) to automatically distribute work across multiple agent processes. +This pipeline uses [Distributed Task Execution (DTE)](/nx-cloud/features/distribute-task-execution) to automatically distribute work across multiple agent processes. ```yaml image: node:20 diff --git a/docs/shared/monorepo-ci-circle-ci.md b/docs/shared/monorepo-ci-circle-ci.md index a8884194c1..c29ebb0d13 100644 --- a/docs/shared/monorepo-ci-circle-ci.md +++ b/docs/shared/monorepo-ci-circle-ci.md @@ -36,7 +36,7 @@ It should be a user token, not the project token. ## Distributed Task Execution with Nx Cloud -Read more about [Distributed Task Execution (DTE)](/core-features/distribute-task-execution). +Read more about [Distributed Task Execution (DTE)](/nx-cloud/features/distribute-task-execution). ```yaml {% fileName=".circleci/config.yml" %} version: 2.1 diff --git a/docs/shared/monorepo-ci-github-actions.md b/docs/shared/monorepo-ci-github-actions.md index acea927150..3e9f74139b 100644 --- a/docs/shared/monorepo-ci-github-actions.md +++ b/docs/shared/monorepo-ci-github-actions.md @@ -41,7 +41,7 @@ To understand why knowing the last successful build is important for the affecte ## Distributed Task Execution -To set up [Distributed Task Execution (DTE)](/core-features/distribute-task-execution), you can run this generator: +To set up [Distributed Task Execution (DTE)](/nx-cloud/features/distribute-task-execution), you can run this generator: ```shell npx nx g ci-workflow --ci=github diff --git a/docs/shared/monorepo-ci-gitlab.md b/docs/shared/monorepo-ci-gitlab.md index 5bf379862c..94e7c2ea05 100644 --- a/docs/shared/monorepo-ci-gitlab.md +++ b/docs/shared/monorepo-ci-gitlab.md @@ -57,7 +57,7 @@ The `build` and `test` jobs implement the CI workflow using `.distributed` as a ## Distributed Task Execution with Nx Cloud -Read more about [Distributed Task Execution (DTE)](/core-features/distribute-task-execution). +Read more about [Distributed Task Execution (DTE)](/nx-cloud/features/distribute-task-execution). ```yaml image: node:18 diff --git a/docs/shared/monorepo-ci-jenkins.md b/docs/shared/monorepo-ci-jenkins.md index 4dc3c6259a..3d08d126aa 100644 --- a/docs/shared/monorepo-ci-jenkins.md +++ b/docs/shared/monorepo-ci-jenkins.md @@ -51,7 +51,7 @@ The `pr` and `main` jobs implement the CI workflow. ## Distributed Task Execution with Nx Cloud -Read more about [Distributed Task Execution (DTE)](/core-features/distribute-task-execution). +Read more about [Distributed Task Execution (DTE)](/nx-cloud/features/distribute-task-execution). ```groovy pipeline { diff --git a/docs/shared/react-standalone-tutorial/react-standalone.md b/docs/shared/react-standalone-tutorial/react-standalone.md index 37aa5bf8ad..d93d1c9513 100644 --- a/docs/shared/react-standalone-tutorial/react-standalone.md +++ b/docs/shared/react-standalone-tutorial/react-standalone.md @@ -835,8 +835,8 @@ Here's some more things you can dive into next: - [Learn how to setup Tailwind](/recipes/react/using-tailwind-css-in-react) - [Setup Storybook for our shared UI library](/recipes/storybook/overview-react) - [Speed up CI: Run only tasks for project that got changed](/core-features/run-tasks#run-tasks-affected-by-a-pr)] -- [Speed up CI: Share your cache](/core-features/remote-cache)] -- [Speed up CI: Distribute your tasks across machines](/core-features/distribute-task-execution) +- [Speed up CI: Share your cache](/nx-cloud/features/remote-cache)] +- [Speed up CI: Distribute your tasks across machines](/nx-cloud/features/distribute-task-execution) Also, make sure you diff --git a/docs/shared/react-tutorial/react-monorepo.md b/docs/shared/react-tutorial/react-monorepo.md index 50814e352a..eef38c8a2a 100644 --- a/docs/shared/react-tutorial/react-monorepo.md +++ b/docs/shared/react-tutorial/react-monorepo.md @@ -997,7 +997,7 @@ Learn more about how to [enforce module boundaries](/core-features/enforce-modul ## Setting Up CI -Without adequate tooling, CI times tend to grow exponentially with the size of the codebase. Nx helps decrease the average CI time with the [`affected` command](/concepts/affected) and Nx Cloud's [distributed caching](/core-features/remote-cache). Nx also [decreases the worst case CI time](/concepts/dte) with Nx Cloud's distributed task execution. +Without adequate tooling, CI times tend to grow exponentially with the size of the codebase. Nx helps decrease the average CI time with the [`affected` command](/nx-cloud/features/affected) and Nx Cloud's [distributed caching](/nx-cloud/features/remote-cache). Nx also [decreases the worst case CI time](/concepts/dte) with Nx Cloud's distributed task execution. To set up Nx Cloud run: @@ -1017,7 +1017,7 @@ nx generate ci-workflow --ci=github You can choose `github`, `circleci`, `azure`, `bitbucket-pipelines`, or `gitlab` for the `ci` flag. {% /callout %} -This will create a default CI configuration that sets up Nx Cloud to [use distributed task execution](/core-features/distribute-task-execution). This automatically runs all tasks on separate machines in parallel wherever possible, without requiring you to manually coordinate copying the output from one machine to another. +This will create a default CI configuration that sets up Nx Cloud to [use distributed task execution](/nx-cloud/features/distribute-task-execution). This automatically runs all tasks on separate machines in parallel wherever possible, without requiring you to manually coordinate copying the output from one machine to another. ## Next Steps @@ -1028,8 +1028,8 @@ Here's some more things you can dive into next: - [Learn how to setup Tailwind](/recipes/react/using-tailwind-css-in-react) - [Setup Storybook for our shared UI library](/recipes/storybook/overview-react) - [Speed up CI: Run only tasks for project that got changed](/core-features/run-tasks#run-tasks-affected-by-a-pr) -- [Speed up CI: Share your cache](/core-features/remote-cache) -- [Speed up CI: Distribute your tasks across machines](/core-features/distribute-task-execution) +- [Speed up CI: Share your cache](/nx-cloud/features/remote-cache) +- [Speed up CI: Distribute your tasks across machines](/nx-cloud/features/distribute-task-execution) Also, make sure you diff --git a/docs/shared/recipes/add-stack/add-astro.md b/docs/shared/recipes/add-stack/add-astro.md index d44647cfe1..105ab69027 100644 --- a/docs/shared/recipes/add-stack/add-astro.md +++ b/docs/shared/recipes/add-stack/add-astro.md @@ -10,9 +10,9 @@ Because we are not using an Nx plugin for Astro, there are few items we'll have {% pill url="/core-features/run-tasks" %}✅ Run Tasks{% /pill %} {% pill url="/core-features/cache-task-results" %}✅ Cache Task Results{% /pill %} -{% pill url="/core-features/remote-cache" %}✅ Remote Caching{% /pill %} +{% pill url="/nx-cloud/features/remote-cache" %}✅ Remote Caching{% /pill %} {% pill url="/core-features/explore-graph" %}✅ Explore the Graph{% /pill %} -{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} +{% pill url="/nx-cloud/features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} {% pill url="/recipes/enforce-module-boundaries" %}✅ Enforce Project Boundaries{% /pill %} diff --git a/docs/shared/recipes/add-stack/add-deno.md b/docs/shared/recipes/add-stack/add-deno.md index dd4188f2ec..c3cc004e58 100644 --- a/docs/shared/recipes/add-stack/add-deno.md +++ b/docs/shared/recipes/add-stack/add-deno.md @@ -6,9 +6,9 @@ Because we are using an Nx plugin for Deno, all the features of Nx are available {% pill url="/core-features/run-tasks" %}✅ Run Tasks{% /pill %} {% pill url="/core-features/cache-task-results" %}✅ Cache Task Results{% /pill %} -{% pill url="/core-features/remote-cache" %}✅ Share Your Cache{% /pill %} +{% pill url="/nx-cloud/features/remote-cache" %}✅ Share Your Cache{% /pill %} {% pill url="/core-features/explore-graph" %}✅ Explore the Graph{% /pill %} -{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} +{% pill url="/nx-cloud/features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} {% pill url="/core-features/enforce-module-boundaries" %}✅ Enforce Module Boundaries{% /pill %} diff --git a/docs/shared/recipes/add-stack/add-dotnet.md b/docs/shared/recipes/add-stack/add-dotnet.md index 25f4a5bc84..4f2b74c254 100644 --- a/docs/shared/recipes/add-stack/add-dotnet.md +++ b/docs/shared/recipes/add-stack/add-dotnet.md @@ -6,9 +6,9 @@ Because we are using an Nx plugin for .NET, all the features of Nx are available {% pill url="/core-features/run-tasks" %}✅ Run Tasks{% /pill %} {% pill url="/core-features/cache-task-results" %}✅ Cache Task Results{% /pill %} -{% pill url="/core-features/remote-cache" %}✅ Share Your Cache{% /pill %} +{% pill url="/nx-cloud/features/remote-cache" %}✅ Share Your Cache{% /pill %} {% pill url="/core-features/explore-graph" %}✅ Explore the Graph{% /pill %} -{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} +{% pill url="/nx-cloud/features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} {% pill url="/core-features/enforce-module-boundaries" %}✅ Enforce Module Boundaries{% /pill %} diff --git a/docs/shared/recipes/add-stack/add-express.md b/docs/shared/recipes/add-stack/add-express.md index 416cb0e815..bc2b42abbf 100644 --- a/docs/shared/recipes/add-stack/add-express.md +++ b/docs/shared/recipes/add-stack/add-express.md @@ -6,9 +6,9 @@ Because we are using an Nx plugin for Express, all the features of Nx are availa {% pill url="/core-features/run-tasks" %}✅ Run Tasks{% /pill %} {% pill url="/core-features/cache-task-results" %}✅ Cache Task Results{% /pill %} -{% pill url="/core-features/remote-cache" %}✅ Share Your Cache{% /pill %} +{% pill url="/nx-cloud/features/remote-cache" %}✅ Share Your Cache{% /pill %} {% pill url="/core-features/explore-graph" %}✅ Explore the Graph{% /pill %} -{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} +{% pill url="/nx-cloud/features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} {% pill url="/core-features/enforce-module-boundaries" %}✅ Enforce Module Boundaries{% /pill %} diff --git a/docs/shared/recipes/add-stack/add-fastify.md b/docs/shared/recipes/add-stack/add-fastify.md index 48e8ff1677..579d24257a 100644 --- a/docs/shared/recipes/add-stack/add-fastify.md +++ b/docs/shared/recipes/add-stack/add-fastify.md @@ -11,9 +11,9 @@ Because we are using an Nx plugin for Fastify, all the features of Nx are availa {% pill url="/core-features/run-tasks" %}✅ Run Tasks{% /pill %} {% pill url="/core-features/cache-task-results" %}✅ Cache Task Results{% /pill %} -{% pill url="/core-features/remote-cache" %}✅ Share Your Cache{% /pill %} +{% pill url="/nx-cloud/features/remote-cache" %}✅ Share Your Cache{% /pill %} {% pill url="/core-features/explore-graph" %}✅ Explore the Graph{% /pill %} -{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} +{% pill url="/nx-cloud/features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} {% pill url="/core-features/enforce-module-boundaries" %}✅ Enforce Module Boundaries{% /pill %} diff --git a/docs/shared/recipes/add-stack/add-lit.md b/docs/shared/recipes/add-stack/add-lit.md index 90b3fcab6d..7581091578 100644 --- a/docs/shared/recipes/add-stack/add-lit.md +++ b/docs/shared/recipes/add-stack/add-lit.md @@ -10,9 +10,9 @@ Because we are not using an Nx plugin for Lit, there are few items we'll have to {% pill url="/core-features/run-tasks" %}✅ Run Tasks{% /pill %} {% pill url="/core-features/cache-task-results" %}✅ Cache Task Results{% /pill %} -{% pill url="/core-features/remote-cache" %}✅ Share Your Cache{% /pill %} +{% pill url="/nx-cloud/features/remote-cache" %}✅ Share Your Cache{% /pill %} {% pill url="/core-features/explore-graph" %}✅ Explore the Graph{% /pill %} -{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} +{% pill url="/nx-cloud/features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} {% pill url="/core-features/enforce-module-boundaries" %}✅ Enforce Module Boundaries{% /pill %} diff --git a/docs/shared/recipes/add-stack/add-nuxt.md b/docs/shared/recipes/add-stack/add-nuxt.md index 7221be94b0..5198e4616c 100644 --- a/docs/shared/recipes/add-stack/add-nuxt.md +++ b/docs/shared/recipes/add-stack/add-nuxt.md @@ -10,9 +10,9 @@ Because we are not using an Nx plugin for Nuxt, there are few items we'll have t {% pill url="/core-features/run-tasks" %}✅ Run Tasks{% /pill %} {% pill url="/core-features/cache-task-results" %}✅ Cache Task Results{% /pill %} -{% pill url="/core-features/remote-cache" %}✅ Remote Caching{% /pill %} +{% pill url="/nx-cloud/features/remote-cache" %}✅ Remote Caching{% /pill %} {% pill url="/core-features/explore-graph" %}✅ Explore the Graph{% /pill %} -{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} +{% pill url="/nx-cloud/features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} {% pill url="/recipes/enforce-module-boundaries" %}✅ Enforce Project Boundaries{% /pill %} diff --git a/docs/shared/recipes/add-stack/add-qwik.md b/docs/shared/recipes/add-stack/add-qwik.md index 66834e8247..5b7e42c21c 100644 --- a/docs/shared/recipes/add-stack/add-qwik.md +++ b/docs/shared/recipes/add-stack/add-qwik.md @@ -10,9 +10,9 @@ We'll be using an Nx Plugin for Qwik called [qwik-nx](https://github.com/qwikifi {% pill url="/core-features/run-tasks" %}✅ Run Tasks{% /pill %} {% pill url="/core-features/cache-task-results" %}✅ Cache Task Results{% /pill %} -{% pill url="/core-features/remote-cache" %}✅ Share Your Cache{% /pill %} +{% pill url="/nx-cloud/features/remote-cache" %}✅ Share Your Cache{% /pill %} {% pill url="/core-features/explore-graph" %}✅ Explore the Graph{% /pill %} -{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} +{% pill url="/nx-cloud/features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} {% pill url="/core-features/enforce-module-boundaries" %}✅ Enforce Module Boundaries{% /pill %} diff --git a/docs/shared/recipes/add-stack/add-rust.md b/docs/shared/recipes/add-stack/add-rust.md index a0e5994379..98cf88c63e 100644 --- a/docs/shared/recipes/add-stack/add-rust.md +++ b/docs/shared/recipes/add-stack/add-rust.md @@ -11,9 +11,9 @@ called [@monodon/rust](https://github.com/cammisuli/monodon/tree/main/packages/r {% pill url="/core-features/run-tasks" %}✅ Run Tasks{% /pill %} {% pill url="/core-features/cache-task-results" %}✅ Cache Task Results{% /pill %} -{% pill url="/core-features/remote-cache" %}✅ Share Your Cache{% /pill %} +{% pill url="/nx-cloud/features/remote-cache" %}✅ Share Your Cache{% /pill %} {% pill url="/core-features/explore-graph" %}✅ Explore the Graph{% /pill %} -{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} +{% pill url="/nx-cloud/features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} {% pill url="/core-features/enforce-module-boundaries" %}✅ Enforce Module Boundaries{% /pill %} diff --git a/docs/shared/recipes/add-stack/add-solid.md b/docs/shared/recipes/add-stack/add-solid.md index 1158d8c300..d9a8d5083e 100644 --- a/docs/shared/recipes/add-stack/add-solid.md +++ b/docs/shared/recipes/add-stack/add-solid.md @@ -12,9 +12,9 @@ updating any framework dependencies as needed. {% pill url="/core-features/run-tasks" %}✅ Run Tasks{% /pill %} {% pill url="/core-features/cache-task-results" %}✅ Cache Task Results{% /pill %} -{% pill url="/core-features/remote-cache" %}✅ Share Your Cache{% /pill %} +{% pill url="/nx-cloud/features/remote-cache" %}✅ Share Your Cache{% /pill %} {% pill url="/core-features/explore-graph" %}✅ Explore the Graph{% /pill %} -{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} +{% pill url="/nx-cloud/features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} {% pill url="/core-features/enforce-module-boundaries" %}✅ Enforce Module Boundaries{% /pill %} diff --git a/docs/shared/recipes/add-stack/add-svelte.md b/docs/shared/recipes/add-stack/add-svelte.md index 5415fab956..4c45ca6210 100644 --- a/docs/shared/recipes/add-stack/add-svelte.md +++ b/docs/shared/recipes/add-stack/add-svelte.md @@ -10,9 +10,9 @@ Because we are not using a Nx plugin for Svelte, there are a few items we'll hav {% pill url="/core-features/run-tasks" %}✅ Run Tasks{% /pill %} {% pill url="/core-features/cache-task-results" %}✅ Cache Task Results{% /pill %} -{% pill url="/core-features/remote-cache" %}✅ Share Your Cache{% /pill %} +{% pill url="/nx-cloud/features/remote-cache" %}✅ Share Your Cache{% /pill %} {% pill url="/core-features/explore-graph" %}✅ Explore the Graph{% /pill %} -{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} +{% pill url="/nx-cloud/features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} {% pill url="/core-features/enforce-module-boundaries" %}✅ Enforce Module Boundaries{% /pill %} diff --git a/docs/shared/recipes/add-stack/add-vue.md b/docs/shared/recipes/add-stack/add-vue.md index 2bc87f1461..c9aeda263d 100644 --- a/docs/shared/recipes/add-stack/add-vue.md +++ b/docs/shared/recipes/add-stack/add-vue.md @@ -14,9 +14,9 @@ We'll be using an Nx plugin called [@nx/vite](/nx-api/vite). Although we are usi {% pill url="/core-features/run-tasks" %}✅ Run Tasks{% /pill %} {% pill url="/core-features/cache-task-results" %}✅ Cache Task Results{% /pill %} -{% pill url="/core-features/remote-cache" %}✅ Share Your Cache{% /pill %} +{% pill url="/nx-cloud/features/remote-cache" %}✅ Share Your Cache{% /pill %} {% pill url="/core-features/explore-graph" %}✅ Explore the Graph{% /pill %} -{% pill url="/core-features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} +{% pill url="/nx-cloud/features/distribute-task-execution" %}✅ Distribute Task Execution{% /pill %} {% pill url="/core-features/integrate-with-editors" %}✅ Integrate with Editors{% /pill %} {% pill url="/core-features/automate-updating-dependencies" %}✅ Automate Updating Nx{% /pill %} {% pill url="/core-features/enforce-module-boundaries" %}✅ Enforce Module Boundaries{% /pill %} diff --git a/docs/shared/recipes/running-tasks/running-custom-commands.md b/docs/shared/recipes/running-tasks/running-custom-commands.md index df2b8c4fa2..567e19f823 100644 --- a/docs/shared/recipes/running-tasks/running-custom-commands.md +++ b/docs/shared/recipes/running-tasks/running-custom-commands.md @@ -1,6 +1,6 @@ # Running Custom Commands -You can easily run any command with the Nx toolchain. The main benefit is to make the [operation cacheable](/concepts/how-caching-works), [distributable](/core-features/distribute-task-execution) as well as being able to use it [with Nx's affected commands](/concepts/affected). +You can easily run any command with the Nx toolchain. The main benefit is to make the [operation cacheable](/concepts/how-caching-works), [distributable](/nx-cloud/features/distribute-task-execution) as well as being able to use it [with Nx's affected commands](/nx-cloud/features/affected). ## 1. Define the terminal command to be run @@ -53,7 +53,7 @@ You can also run the `make` command for all projects it has been defined on: nx run-many -t make ``` -Or just on a subset of projects that are [affected by a given change](/concepts/affected): +Or just on a subset of projects that are [affected by a given change](/nx-cloud/features/affected): ```shell nx affected -t make diff --git a/docs/shared/reference/glossary.md b/docs/shared/reference/glossary.md index 00d8b318d8..802dfb4319 100644 --- a/docs/shared/reference/glossary.md +++ b/docs/shared/reference/glossary.md @@ -62,13 +62,13 @@ A set of preconfigured options for a [target](#target) that should be enabled al A [cache](#cache) that can be shared between all developers using the repo and the CI system. -> See: [Share Your Cache](/core-features/remote-cache) +> See: [Share Your Cache](/nx-cloud/features/remote-cache) ### Distributed Task Execution A system for running [tasks](#task) in CI across multiple agent processes in the most efficient way possible. -> See: [Distribute Task Execution](/core-features/distribute-task-execution) +> See: [Distribute Task Execution](/nx-cloud/features/distribute-task-execution) ### Executor diff --git a/docs/shared/reference/sitemap.md b/docs/shared/reference/sitemap.md index 0c9772cbd7..160e003e3c 100644 --- a/docs/shared/reference/sitemap.md +++ b/docs/shared/reference/sitemap.md @@ -36,8 +36,6 @@ - [Core Features](/core-features) - [Run Tasks](/core-features/run-tasks) - [Cache Task Results](/core-features/cache-task-results) - - [Use Remote Caching](/core-features/remote-cache) - - [Distribute Task Execution](/core-features/distribute-task-execution) - [Explore the Graph](/core-features/explore-graph) - [Automate Updating Dependencies](/core-features/automate-updating-dependencies) - [Enforce Module Boundaries](/core-features/enforce-module-boundaries) @@ -51,7 +49,6 @@ - [Types of Configuration](/concepts/types-of-configuration) - [Improve Worst Case CI Times](/concepts/dte) - [What is a Task Pipeline](/concepts/task-pipeline-configuration) - - [How Affected Works](/concepts/affected) - [Integrated Repos vs. Package-Based Repos vs. Standalone Apps](/concepts/integrated-vs-package-based) - [Module Federation](/concepts/module-federation) - [Module Federation and Nx](/concepts/module-federation/module-federation-and-nx) @@ -270,6 +267,11 @@ - [Intro](/nx-cloud/intro) - [CI with Nx](/nx-cloud/intro/ci-with-nx) - [Nx Cloud Workflows](/nx-cloud/intro/nx-cloud-workflows) + - [Features](/nx-cloud/features) + - [Use Remote Caching](/nx-cloud/features/remote-cache) + - [Run Only Tasks Affected by a PR](/nx-cloud/features/affected) + - [Distribute Task Execution](/nx-cloud/features/distribute-task-execution) + - [Set up Nx Cloud On-Premise](/nx-cloud/features/on-premise) - [Recipes](/nx-cloud/recipes) - [Set Up CI](/nx-cloud/recipes/set-up) - [CI Setup](/nx-cloud/recipes/set-up/ci-setup) @@ -283,6 +285,15 @@ - [Enable GitHub PR Integration](/nx-cloud/recipes/source-control-integration/github) - [Enable Bitbucket Cloud PR Integration](/nx-cloud/recipes/source-control-integration/bitbucket-cloud) - [Enable GitLab MR Integration](/nx-cloud/recipes/source-control-integration/gitlab) + - [On-Premise](/nx-cloud/recipes/on-premise) + - [Authenticate with a Single Admin](/nx-cloud/recipes/on-premise/auth-single-admin) + - [Authenticate with GitHub](/nx-cloud/recipes/on-premise/auth-github) + - [On-Prem VM Setup](/nx-cloud/recipes/on-premise/ami-setup) + - [Authenticate with GitLab](/nx-cloud/recipes/on-premise/auth-gitlab) + - [Authenticate with BitBucket](/nx-cloud/recipes/on-premise/auth-bitbucket) + - [Authenticate via SAML](/nx-cloud/recipes/on-premise/auth-saml) + - [Authenticate via SAML on Managed Version](/nx-cloud/recipes/on-premise/auth-saml-managed) + - [Advanced Configuration](/nx-cloud/recipes/on-premise/advanced-config) - [Other](/nx-cloud/recipes/other) - [Record Non-Nx Commands](/nx-cloud/recipes/other/record-commands) - [Prepare applications for deployment via CI](/nx-cloud/recipes/other/ci-deployment) @@ -292,16 +303,6 @@ - [Access Tokens](/nx-cloud/account/access-tokens) - [Security Scenarios](/nx-cloud/account/scenarios) - [End to End Encryption](/nx-cloud/account/encryption) - - [Run Nx Cloud On-Premise](/nx-cloud/private-cloud) - - [Get Started](/nx-cloud/private-cloud/get-started) - - [Authenticate with a Single Admin](/nx-cloud/private-cloud/auth-single-admin) - - [Authenticate with GitHub](/nx-cloud/private-cloud/auth-github) - - [On-Prem VM Setup](/nx-cloud/private-cloud/ami-setup) - - [Authenticate with GitLab](/nx-cloud/private-cloud/auth-gitlab) - - [Authenticate with BitBucket](/nx-cloud/private-cloud/auth-bitbucket) - - [Authenticate via SAML](/nx-cloud/private-cloud/auth-saml) - - [Authenticate via SAML on Managed Version](/nx-cloud/private-cloud/auth-saml-managed) - - [Advanced Configuration](/nx-cloud/private-cloud/advanced-config) - [Reference](/nx-cloud/reference) - [Configuration Options](/nx-cloud/reference/config) - [nx-cloud CLI](/nx-cloud/reference/nx-cloud-cli) diff --git a/docs/shared/using-nx/affected.md b/docs/shared/using-nx/affected.md index 4b761a11c2..09738eccfb 100644 --- a/docs/shared/using-nx/affected.md +++ b/docs/shared/using-nx/affected.md @@ -1,46 +1,136 @@ -# How Affected Works +# Run Only Tasks Affected by a PR -{% callout type="note" title="First thing!" %} -Before reading this guide, [check out the mental model guide](/concepts/mental-model). It will help you understand how computation caching fits into the rest of Nx. -{% /callout %} +As your workspace grows, re-testing, re-building an re-linting all projects becomes too slow. To address this Nx implements code change analysis to determine the minimum set of projects that were affected by the change. How does this work? -When you run `nx test app1`, you are telling Nx to run the app1:test task plus all the tasks it depends on. +```shell +nx affected -t +``` -When you run `nx run-many -t test -p app1 lib`, you are telling Nx to do the same for two tasks app1:test -and lib:test. - -When you run `nx run-many -t test`, you are telling Nx to do this for all the projects. - -As your workspace grows, retesting all projects becomes too slow. To address this Nx implements code change analysis to -get the min set of projects that need to be retested. How does it work? - -When you run `nx affected -t test`, Nx looks at the files you changed in your PR, it will look at the nature of -change (what exactly did you update in those files), and it uses this to figure the list of projects in the workspace +When you run `nx affected -t test`, Nx uses Git to determine the files you changed in your PR, it will look at the nature of +change (what exactly did you update in those files), and it uses this to determine the list of projects in the workspace that can be affected by this change. It then runs the `run-many` command with that list. For instance, if my PR changes `lib`, and I then run `nx affected -t test`, Nx figures out that `app1` and `app2` depend on `lib`, so it will invoke `nx run-many -t test -p app1 app2 lib`. -![affected](/shared/mental-model/affected.svg) +{% side-by-side %} +{% graph title="Changing app1 can only affect app1" height="250px" %} + +```json +{ + "projects": [ + { + "type": "app", + "name": "app1", + "data": {} + }, + { + "type": "app", + "name": "app2", + "data": {} + }, + { + "type": "lib", + "name": "lib", + "data": {} + } + ], + "groupByFolder": false, + "workspaceLayout": { + "appsDir": "apps", + "libsDir": "libs" + }, + "dependencies": { + "app1": [ + { + "target": "lib", + "source": "app1", + "type": "direct" + } + ], + "app2": [ + { + "target": "lib", + "source": "app2", + "type": "direct" + } + ], + "lib": [] + }, + "affectedProjectIds": ["app1"] +} +``` + +{% /graph %} + +{% graph title="Changing lib can affect lib, app1 and app2" height="250px" %} + +```json +{ + "projects": [ + { + "type": "app", + "name": "app1", + "data": {} + }, + { + "type": "app", + "name": "app2", + "data": {} + }, + { + "type": "lib", + "name": "lib", + "data": {} + } + ], + "groupByFolder": false, + "workspaceLayout": { + "appsDir": "apps", + "libsDir": "libs" + }, + "dependencies": { + "app1": [ + { + "target": "lib", + "source": "app1", + "type": "direct" + } + ], + "app2": [ + { + "target": "lib", + "source": "app2", + "type": "direct" + } + ], + "lib": [] + }, + "affectedProjectIds": ["app1", "app2", "lib"] +} +``` + +{% /graph %} +{% /side-by-side %} Nx analyzes the nature of the changes. For example, if you change the version of Next.js in the package.json, Nx knows that `app2` cannot be affected by it, so it only retests `app1`. -## Project Graph +## Visualize Affected Projects -To visualise what is affected, run: +To visualize what is affected, run: ```shell nx affected:graph ``` -## CI +## Specify Which SHAs to Use to Calculate Affected Code The SHAs you pass must be defined in the git repository. The `main` and `HEAD` SHAs are what you normally use while developing. Most likely you will want to provision other SHAs in your CI environment. ```shell -nx affected:build --base= origin/main --head=$PR_BRANCH_NAME # where PR_BRANCH_NAME is defined by your CI system -nx affected:build --base= origin/main~1 --head= origin/main # rerun what is affected by the last commit in main +nx affected:build --base=origin/main --head=$PR_BRANCH_NAME # where PR_BRANCH_NAME is defined by your CI system +nx affected:build --base=origin/main~1 --head=origin/main # rerun what is affected by the last commit in main ``` You can also set the base and head SHAs as env variables: @@ -50,6 +140,8 @@ NX_BASE=origin/main~1 NX_HEAD=origin/main ``` +Typically, you want to set the base SHA not the the most recent commit on the `main` branch, but rather that latest commit that successfully passed in CI. In other words, in order to be certain that the repo is in a good state, we need to check all the changes that have happened since the last time the repo was in a good state. See the setup guide for your CI provider to learn how to calculate the last successful commit. + ## Ignoring Files from Affected Commands Nx provides two methods to exclude glob patterns (files and folders) from `affected:*` commands. diff --git a/docs/shared/vue-standalone-tutorial/vue-standalone.md b/docs/shared/vue-standalone-tutorial/vue-standalone.md index cbc93b6500..16a8264194 100644 --- a/docs/shared/vue-standalone-tutorial/vue-standalone.md +++ b/docs/shared/vue-standalone-tutorial/vue-standalone.md @@ -835,8 +835,8 @@ Here's some more things you can dive into next: - Learn more about the [underlying mental model of Nx](/concepts/mental-model) - [Speed up CI: Run only tasks for project that got changed](/core-features/run-tasks#run-tasks-affected-by-a-pr) -- [Speed up CI: Share your cache](/core-features/remote-cache) -- [Speed up CI: Distribute your tasks across machines](/core-features/distribute-task-execution) +- [Speed up CI: Share your cache](/nx-cloud/features/remote-cache) +- [Speed up CI: Distribute your tasks across machines](/nx-cloud/features/distribute-task-execution) Also, make sure you diff --git a/nx-dev/data-access-menu/src/lib/menu.utils.ts b/nx-dev/data-access-menu/src/lib/menu.utils.ts index 8cd4313bce..5fdfa6c76c 100644 --- a/nx-dev/data-access-menu/src/lib/menu.utils.ts +++ b/nx-dev/data-access-menu/src/lib/menu.utils.ts @@ -81,9 +81,9 @@ export function getBasicNxCloudSection(items: MenuItem[]): MenuSection { .filter( (m) => m.id === 'intro' || + m.id === 'features' || m.id === 'recipes' || m.id === 'account' || - m.id === 'private-cloud' || m.id === 'reference' ) .map((m) => { diff --git a/nx-dev/nx-dev/redirect-rules.js b/nx-dev/nx-dev/redirect-rules.js index aaf4d5f61e..91a53458a5 100644 --- a/nx-dev/nx-dev/redirect-rules.js +++ b/nx-dev/nx-dev/redirect-rules.js @@ -417,6 +417,26 @@ const nxCloudUrls = { '/nx-cloud/recipes/source-control-integration/bitbucket-cloud', '/nx-cloud/set-up/gitlab': '/nx-cloud/recipes/source-control-integration/gitlab', + '/core-features/remote-cache': '/nx-cloud/features/remote-cache', + '/core-features/distribute-task-execution': + '/nx-cloud/features/distribute-task-execution', + '/concepts/affected': '/nx-cloud/features/affected', + '/nx-cloud/private-cloud': '/nx-cloud/recipes/on-premise', + '/nx-cloud/private-cloud/get-started': '/nx-cloud/features/on-premise', + '/nx-cloud/private-cloud/auth-single-admin': + '/nx-cloud/recipes/on-premise/auth-single-admin', + '/nx-cloud/private-cloud/auth-github': + '/nx-cloud/recipes/on-premise/auth-github', + '/nx-cloud/private-cloud/ami-setup': '/nx-cloud/recipes/on-premise/ami-setup', + '/nx-cloud/private-cloud/auth-gitlab': + '/nx-cloud/recipes/on-premise/auth-gitlab', + '/nx-cloud/private-cloud/auth-bitbucket': + '/nx-cloud/recipes/on-premise/auth-bitbucket', + '/nx-cloud/private-cloud/auth-saml': '/nx-cloud/recipes/on-premise/auth-saml', + '/nx-cloud/private-cloud/auth-saml-managed': + '/nx-cloud/recipes/on-premise/auth-saml-managed', + '/nx-cloud/private-cloud/advanced-config': + '/nx-cloud/recipes/on-premise/advanced-config', }; /** diff --git a/nx-dev/ui-markdoc/src/lib/tags/graph.component.tsx b/nx-dev/ui-markdoc/src/lib/tags/graph.component.tsx index 36bcbc1669..d88d4a1373 100644 --- a/nx-dev/ui-markdoc/src/lib/tags/graph.component.tsx +++ b/nx-dev/ui-markdoc/src/lib/tags/graph.component.tsx @@ -36,11 +36,13 @@ const NxTaskGraphViz = dynamic( export function Graph({ height, + title, type, jsonFile, children, }: { height: string; + title: string; type: 'project' | 'task'; jsonFile?: string; children: ReactElement; @@ -90,6 +92,9 @@ export function Graph({ return (
+
+ {title} +
{type === 'project' ? (