Compare commits
74 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ae7b37b6fe | |||
| 064eb714cf | |||
| a0baab0d47 | |||
| 3a40d37f5e | |||
| 039f91dde4 | |||
| ccb0d7d244 | |||
| fa83b36131 | |||
| 87021ecb85 | |||
| 31bef6a85a | |||
| 85d310a8c2 | |||
| facfc147f8 | |||
| 51f5fe4434 | |||
| 1a9429643f | |||
| 34da542ce6 | |||
| 46497356ce | |||
| a41a8d68cf | |||
| f3fa705b82 | |||
| 33d2bece53 | |||
| 6f50d9f4c3 | |||
| 39e104b6c3 | |||
| 37f0ccaa20 | |||
| 92d0e15d1f | |||
| f2e1f0fad9 | |||
| fc1c04918b | |||
| 638647d77c | |||
| aa7c5dc3ea | |||
| adacd983b7 | |||
| 26c3d21f1e | |||
| 82831bcee6 | |||
| 0b0db782f7 | |||
| 58ba1ffc6d | |||
| 2c4c2ae8ca | |||
| b3d2d957a2 | |||
| 1cb4f65210 | |||
| a6fde9ba95 | |||
| 550de60446 | |||
| e31b1689c4 | |||
| 2b7b5231fb | |||
| 8fd38cba9a | |||
| 73858a094e | |||
| 92e09d9322 | |||
| 3e0d2de468 | |||
| 81fe13250a | |||
| 3cbe2abc25 | |||
| 4ae16b361f | |||
| 981eb30a0f | |||
| 23ce6af2cc | |||
| 62baf4f307 | |||
| e15479b691 | |||
| 2baf672b61 | |||
| a6522f71a1 | |||
| c7878533ed | |||
| 653cad2492 | |||
| 7caf9017f0 | |||
| 311710e56c | |||
| e09bad9363 | |||
| 295c4229db | |||
| 929a57c127 | |||
| 6ce107d6e1 | |||
| 28939dd982 | |||
| 8cf96cc5b2 | |||
| 2ae57dcfbe | |||
| 65c3e560e2 | |||
| 6e84cbfac0 | |||
| 7cd35e0ca1 | |||
| fa3c5c42cd | |||
| adb81afa91 | |||
| 4c76b95271 | |||
| 54036397c8 | |||
| 8f65944405 | |||
| 0eed1bdf2c | |||
| cf396f71a9 | |||
| 86da1b5936 | |||
| de68084db2 |
@@ -158,7 +158,12 @@ jobs:
|
||||
- run:
|
||||
name: Run E2E Tests for macOS
|
||||
command: |
|
||||
pnpm nx affected -t e2e-macos-ci --parallel=1 --base=$NX_BASE --head=$NX_HEAD
|
||||
HAS_CHANGED=$(node ./scripts/check-react-native-changes.js $NX_BASE $NX_HEAD);
|
||||
if $HAS_CHANGED; then
|
||||
pnpm nx affected -t e2e-macos-ci --parallel=1 --base=$NX_BASE --head=$NX_HEAD
|
||||
else
|
||||
echo "Skip E2E tests for macOS as there are no changes in React Native projects."
|
||||
fi
|
||||
no_output_timeout: 45m
|
||||
|
||||
# -------------------------
|
||||
|
||||
@@ -175,7 +175,7 @@ jobs:
|
||||
sudo apt-get update
|
||||
sudo apt-get install gcc-arm-linux-gnueabihf -y
|
||||
build: |
|
||||
pnpm nx run-many --target=build-native -- --target=armv7-unknown-linux-gnueabihf
|
||||
CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=/usr/bin/arm-linux-gnueabihf-gcc pnpm nx run-many --target=build-native -- --target=armv7-unknown-linux-gnueabihf
|
||||
# Android (not needed)
|
||||
# - host: ubuntu-latest
|
||||
# target: aarch64-linux-android
|
||||
@@ -203,7 +203,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
repository: ${{ needs.resolve-required-data.outputs.repo }}
|
||||
repository: ${{ needs.resolve-required-data.outputs.repo }}
|
||||
ref: ${{ needs.resolve-required-data.outputs.ref }}
|
||||
|
||||
- uses: pnpm/action-setup@v4
|
||||
@@ -281,26 +281,28 @@ jobs:
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: bindings-${{ matrix.settings.target }}
|
||||
path: packages/**/*.node
|
||||
path: |
|
||||
packages/**/*.node
|
||||
packages/**/*.wasm
|
||||
if-no-files-found: error
|
||||
|
||||
build-freebsd:
|
||||
needs: [resolve-required-data]
|
||||
if: ${{ github.repository_owner == 'nrwl' }}
|
||||
runs-on: macos-13-large
|
||||
runs-on: ubuntu-latest
|
||||
name: Build FreeBSD
|
||||
timeout-minutes: 45
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
if: ${{ github.event_name != 'schedule' && !github.event.inputs.pr }}
|
||||
with:
|
||||
repository: ${{ needs.resolve-required-data.outputs.repo }}
|
||||
repository: ${{ needs.resolve-required-data.outputs.repo }}
|
||||
ref: ${{ needs.resolve-required-data.outputs.ref }}
|
||||
|
||||
- name: Build
|
||||
id: build
|
||||
if: ${{ github.event_name != 'schedule' && !github.event.inputs.pr }}
|
||||
uses: cross-platform-actions/action@v0.22.0
|
||||
uses: cross-platform-actions/action@v0.25.0
|
||||
env:
|
||||
DEBUG: napi:*
|
||||
RUSTUP_IO_THREADS: 1
|
||||
@@ -308,14 +310,14 @@ jobs:
|
||||
PLAYWRIGHT_BROWSERS_PATH: 0
|
||||
with:
|
||||
operating_system: freebsd
|
||||
version: '13.2'
|
||||
version: '14.0'
|
||||
architecture: x86-64
|
||||
environment_variables: DEBUG RUSTUP_IO_THREADS CI NX_PREFER_TS_NODE PLAYWRIGHT_BROWSERS_PATH
|
||||
shell: bash
|
||||
run: |
|
||||
env
|
||||
whoami
|
||||
sudo pkg install -y -f node libnghttp2 npm git
|
||||
sudo pkg install -y -f node libnghttp2 www/npm git
|
||||
sudo npm install --location=global --ignore-scripts pnpm@8.15.7
|
||||
curl https://sh.rustup.rs -sSf --output rustup.sh
|
||||
sh rustup.sh -y --profile minimal --default-toolchain stable
|
||||
@@ -331,8 +333,6 @@ jobs:
|
||||
whoami
|
||||
env
|
||||
freebsd-version
|
||||
mkdir -p /Users/runner/work/_temp/_github_workflow
|
||||
echo "{}" > /Users/runner/work/_temp/_github_workflow/event.json
|
||||
pnpm install --frozen-lockfile --ignore-scripts
|
||||
pnpm nx run-many --verbose --outputStyle stream --target=build-native -- --target=x86_64-unknown-freebsd
|
||||
pnpm nx reset
|
||||
@@ -396,7 +396,8 @@ jobs:
|
||||
- name: List artifacts
|
||||
run: ls -R artifacts
|
||||
shell: bash
|
||||
|
||||
- name: Build Wasm
|
||||
run: pnpm build:wasm
|
||||
- name: Publish
|
||||
env:
|
||||
VERSION: ${{ needs.resolve-required-data.outputs.version }}
|
||||
|
||||
@@ -56,3 +56,5 @@ out
|
||||
.npm/
|
||||
.profile
|
||||
.rustup/
|
||||
target
|
||||
*.wasm
|
||||
|
||||
@@ -17,6 +17,11 @@ packages/nx/src/plugins/js/lock-file/__fixtures__/**/*.*
|
||||
packages/**/schematics/**/files/**/*.html
|
||||
packages/**/generators/**/files/**/*.html
|
||||
packages/nx/src/native/**/*.rs
|
||||
packages/nx/src/native/browser.js
|
||||
packages/nx/src/native/nx.wasi-browser.js
|
||||
packages/nx/src/native/nx.wasi.cjs
|
||||
packages/nx/src/native/wasi-worker-browser.mjs
|
||||
packages/nx/src/native/wasi-worker.mjs
|
||||
packages/nx/src/native/native-bindings.js
|
||||
packages/nx/src/native/index.d.ts
|
||||
nx-dev/nx-dev/.next/
|
||||
|
||||
@@ -29,7 +29,7 @@ A few links to help you get started:
|
||||
- [Nx.Dev: Core Tutorials](https://nx.dev/getting-started/intro)
|
||||
- [Recipe: Adding Nx to an Existing Monorepo](https://nx.dev/recipes/adopting-nx/adding-to-monorepo)
|
||||
- [Official Nx YouTube Channel](https://www.youtube.com/@NxDevtools)
|
||||
- [Blog Posts About Nx](https://blog.nrwl.io/nx/home)
|
||||
- [Blog Posts About Nx](https://nx.dev/blog)
|
||||
|
||||
<p style="text-align: center;"><a href="https://nx.dev/#learning-materials" target="_blank" rel="noreferrer"><img src="./images/nx-courses-and-videos.svg"
|
||||
width="100%" alt="Nx - Smart Monorepos · Fast CI"></a></p>
|
||||
|
||||
@@ -183,6 +183,14 @@ To display a terminal command, use:
|
||||
```
|
||||
````
|
||||
|
||||
You can also add a title to the shell as follows:
|
||||
|
||||
````
|
||||
```shell {% title="Build the app" %}
|
||||
npx nx build
|
||||
```
|
||||
````
|
||||
|
||||
#### Terminal Output
|
||||
|
||||
You can display your terminal output with a dedicated component the same way you would show code.
|
||||
|
||||
@@ -183,7 +183,7 @@ We’ve been working hard at reducing and simplifying all the configuration requ
|
||||
|
||||
At Nx Conf in New York City, we unveiled the next big step for Nx: **Nx Workflows**.
|
||||
|
||||
If you missed it, Simon Critchley walks you through in his [Nx Conf](https://dev.to/nx/nx-conf-2023-recap-53ep) talk:
|
||||
If you missed it, Simon Critchley walks you through in his [Nx Conf](/blog/nx-conf-2023-recap) talk:
|
||||
|
||||
{% youtube src="https://www.youtube.com/embed/JG1FWfZFByM?si=7_NzxJP8nA7RbFhl" /%}
|
||||
|
||||
@@ -231,7 +231,7 @@ In Nx 17, we removed any remaining traces of `tslint` from our linter package, s
|
||||
|
||||
As we solidify this command, we intend to bring robust support for various versioning and publishing strategies, as well as built-in support for publishing packages or modules to a variety of languages, registries, and platforms.
|
||||
|
||||
For more [checkout our API docs](/nx-api/nx/documents/release), and be sure to catch James Henry’s announcement of this new command at [Nx Conf](https://dev.to/nx/nx-conf-2023-recap-53ep):
|
||||
For more [checkout our API docs](/nx-api/nx/documents/release), and be sure to catch James Henry’s announcement of this new command at [Nx Conf](/blog/nx-conf-2023-recap):
|
||||
|
||||
{% youtube src="https://www.youtube.com/embed/p5qW5-2nKqI?si=FzpGMJwPVINc1hgL" /%}
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ Nx Console has evolved from an experimental side project of the Nx team to a cor
|
||||
|
||||

|
||||
|
||||
This year we not only added a lot of new features to Nx Console, but also rewrote its [internals](https://blog.nrwl.io/nx-console-gets-lit-ca339743ff4f) which paved the way to expand Nx Console to other code editors: **JetBrains IDEs.**
|
||||
This year we not only added a lot of new features to Nx Console, but also rewrote its [internals](/blog/nx-console-gets-lit) which paved the way to expand Nx Console to other code editors: **JetBrains IDEs.**
|
||||
|
||||
Yes, this means you can now use the latest Nx Console directly in your [Webstorm IDE](https://www.jetbrains.com/webstorm/). Read the [announcement blog post](https://blog.nrwl.io/expanding-nx-console-to-jetbrains-ides-8a5b80fff2d7) for all the details or go ahead and install Nx Console if you didn’t already:
|
||||
|
||||
@@ -329,7 +329,7 @@ You can also browse them in the [nx-recipes](https://github.com/nrwl/nx-recipes)
|
||||
|
||||
{% tweet url="https://twitter.com/juristr/status/1726977598218199302" /%}
|
||||
|
||||
And obviously, we jumped on the AI train as well. A couple of months ago, we added the [Nx Assistant](/ai-chat). A ChatGPT-powered interface trained on our docs. [Katerina](https://twitter.com/psybercity) wrote about it [on our blog](https://blog.nrwl.io/nx-docs-ai-assistant-433d238e45d4). The AI chat allows to interactively ask questions about Nx and will give you relevant answers from our docs (including linking to the sources).
|
||||
And obviously, we jumped on the AI train as well. A couple of months ago, we added the [Nx Assistant](/ai-chat). A ChatGPT-powered interface trained on our docs. [Katerina](https://twitter.com/psybercity) wrote about it [on our blog](/blog/nx-docs-ai-assistant). The AI chat allows to interactively ask questions about Nx and will give you relevant answers from our docs (including linking to the sources).
|
||||
|
||||
## New Tagline: Smart Monorepos — Fast CI
|
||||
|
||||
@@ -349,7 +349,7 @@ We did it again! The second in-person Nx Conf was a resounding success, this tim
|
||||
|
||||

|
||||
|
||||
There’s not much to say. Check out some of the amazing talks. I did a [Nx Conf 2023 recap blog post](https://dev.to/nx/nx-conf-2023-recap-53ep).
|
||||
There’s not much to say. Check out some of the amazing talks. I did a [Nx Conf 2023 recap blog post](/blog/nx-conf-2023-recap).
|
||||
|
||||
## Looking ahead — 2024
|
||||
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
|
||||
We were so excited about the features in Nx 18 that we created a whole [Launch Nx Week](/launch-nx) to share our excitement with you. During the launch week, we made the following announcements:
|
||||
|
||||
- [Project Crystal](https://blog.nrwl.io/what-if-nx-plugins-were-more-like-vscode-extensions-dcdad140ae09?source=friends_link&sk=ade76fe8d50d44aafb4d4d89ab882e24&__hstc=221401095.5d21139e33f975ecef01c1783a7523db.1673975383152.1708023233215.1708026196201.468&__hssc=221401095.2.1708026196201&__hsfp=589919331) allows you to use inferred tasks
|
||||
- A new [`@nx/nuxt`](https://blog.nrwl.io/introducing-nx-nuxt-enhanced-nuxt-js-support-in-nx-01eac78034fc?source=friends_link&sk=91582cdbd0719dc23375338ad92afa9b&__hstc=221401095.5d21139e33f975ecef01c1783a7523db.1673975383152.1708023233215.1708026196201.468&__hssc=221401095.2.1708026196201&__hsfp=589919331) plugin is available
|
||||
- [Nx Agents](https://blog.nrwl.io/fast-effortless-ci-67812514ffb4?source=friends_link&sk=89e1b5c0388dda077e64a2eab5495d95&__hstc=221401095.5d21139e33f975ecef01c1783a7523db.1673975383152.1708023233215.1708026196201.468&__hssc=221401095.2.1708026196201&__hsfp=589919331) are publicly available
|
||||
- [`nx release`](https://blog.nrwl.io/versioning-and-releasing-packages-in-a-monorepo-45ee194378d1?source=friends_link&sk=934e4c5321774c8a9f88433e0dea578b&__hstc=221401095.5d21139e33f975ecef01c1783a7523db.1673975383152.1708023233215.1708026196201.468&__hssc=221401095.2.1708026196201&__hsfp=589919331) is out of beta
|
||||
- [Project Crystal](/blog/what-if-nx-plugins-were-more-like-vscode-extensions) allows you to use inferred tasks
|
||||
- A new [`@nx/nuxt`](/blog/introducing-nx-nuxt-enhanced-nuxt-js-support-in-nx) plugin is available
|
||||
- [Nx Agents](/blog/fast-effortless-ci) are publicly available
|
||||
- [`nx release`](/blog/versioning-and-releasing-packages-in-a-monorepo) is out of beta
|
||||
|
||||
{% youtube
|
||||
src="https://youtu.be/Ed1ZCNqWF1Q"
|
||||
|
||||
@@ -121,9 +121,9 @@ Generate a 'src/' directory for Next.js
|
||||
|
||||
Type: `string`
|
||||
|
||||
Choices: [yes, github, circleci, skip]
|
||||
Choices: [github, circleci, gitlab, azure, bitbucket-pipelines, skip, yes]
|
||||
|
||||
Do you want Nx Cloud to make your CI fast?
|
||||
Which CI provider would you like to use?
|
||||
|
||||
### packageManager
|
||||
|
||||
|
||||
@@ -135,6 +135,7 @@ It only uses language primitives and immutable objects
|
||||
- [globAsync](../../devkit/documents/globAsync)
|
||||
- [hashArray](../../devkit/documents/hashArray)
|
||||
- [installPackagesTask](../../devkit/documents/installPackagesTask)
|
||||
- [isDaemonEnabled](../../devkit/documents/isDaemonEnabled)
|
||||
- [isWorkspacesEnabled](../../devkit/documents/isWorkspacesEnabled)
|
||||
- [joinPathFragments](../../devkit/documents/joinPathFragments)
|
||||
- [moveFilesToNewDirectory](../../devkit/documents/moveFilesToNewDirectory)
|
||||
|
||||
@@ -22,6 +22,7 @@ Target's configuration
|
||||
- [metadata](../../devkit/documents/TargetConfiguration#metadata): TargetMetadata
|
||||
- [options](../../devkit/documents/TargetConfiguration#options): T
|
||||
- [outputs](../../devkit/documents/TargetConfiguration#outputs): string[]
|
||||
- [parallelism](../../devkit/documents/TargetConfiguration#parallelism): boolean
|
||||
|
||||
## Properties
|
||||
|
||||
@@ -109,3 +110,12 @@ Target's options. They are passed in to the executor.
|
||||
|
||||
List of the target's outputs. The outputs will be cached by the Nx computation
|
||||
caching engine.
|
||||
|
||||
---
|
||||
|
||||
### parallelism
|
||||
|
||||
• `Optional` **parallelism**: `boolean`
|
||||
|
||||
Whether this target can be run in parallel with other tasks
|
||||
Default is true
|
||||
|
||||
@@ -13,6 +13,7 @@ A representation of the invocation of an Executor
|
||||
- [id](../../devkit/documents/Task#id): string
|
||||
- [outputs](../../devkit/documents/Task#outputs): string[]
|
||||
- [overrides](../../devkit/documents/Task#overrides): any
|
||||
- [parallelism](../../devkit/documents/Task#parallelism): boolean
|
||||
- [projectRoot](../../devkit/documents/Task#projectroot): string
|
||||
- [startTime](../../devkit/documents/Task#starttime): number
|
||||
- [target](../../devkit/documents/Task#target): Object
|
||||
@@ -84,6 +85,14 @@ Overrides for the configured options of the target
|
||||
|
||||
---
|
||||
|
||||
### parallelism
|
||||
|
||||
• **parallelism**: `boolean`
|
||||
|
||||
Determines if a given task should be parallelizable.
|
||||
|
||||
---
|
||||
|
||||
### projectRoot
|
||||
|
||||
• `Optional` **projectRoot**: `string`
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# Function: isDaemonEnabled
|
||||
|
||||
▸ **isDaemonEnabled**(): `boolean`
|
||||
|
||||
#### Returns
|
||||
|
||||
`boolean`
|
||||
@@ -28,6 +28,17 @@
|
||||
"path": "/ci/intro/why-nx-cloud",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "connect-to-nx-cloud",
|
||||
"name": "Connect to Nx Cloud",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/intro/connect-to-cloud",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/intro/connect-to-nx-cloud",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "tutorials",
|
||||
"name": "Tutorials",
|
||||
@@ -89,6 +100,17 @@
|
||||
"path": "/ci/intro/why-nx-cloud",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/intro/connect-to-nx-cloud": {
|
||||
"id": "connect-to-nx-cloud",
|
||||
"name": "Connect to Nx Cloud",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/intro/connect-to-cloud",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/intro/connect-to-nx-cloud",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/intro/tutorials": {
|
||||
"id": "tutorials",
|
||||
"name": "Tutorials",
|
||||
@@ -185,6 +207,17 @@
|
||||
"path": "/ci/features/distribute-task-execution",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "nx-cloud-ai",
|
||||
"name": "Nx Cloud AI",
|
||||
"description": "Learn how to enable AI features in Nx Cloud, and what features it enables",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/features/ai-features",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/features/nx-cloud-ai",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "dynamic-agents",
|
||||
"name": "Dynamically Allocate Agents",
|
||||
@@ -217,17 +250,6 @@
|
||||
"isExternal": false,
|
||||
"path": "/ci/features/flaky-tasks",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "on-premise",
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"description": "Set up Nx Cloud on machines that you control",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/features/nx-enterprise-on-prem",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/features/on-premise",
|
||||
"tags": ["on-premise"]
|
||||
}
|
||||
],
|
||||
"isExternal": false,
|
||||
@@ -267,6 +289,17 @@
|
||||
"path": "/ci/features/distribute-task-execution",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/features/nx-cloud-ai": {
|
||||
"id": "nx-cloud-ai",
|
||||
"name": "Nx Cloud AI",
|
||||
"description": "Learn how to enable AI features in Nx Cloud, and what features it enables",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/features/ai-features",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/features/nx-cloud-ai",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/features/dynamic-agents": {
|
||||
"id": "dynamic-agents",
|
||||
"name": "Dynamically Allocate Agents",
|
||||
@@ -300,17 +333,6 @@
|
||||
"path": "/ci/features/flaky-tasks",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/features/on-premise": {
|
||||
"id": "on-premise",
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"description": "Set up Nx Cloud on machines that you control",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/features/nx-enterprise-on-prem",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/features/on-premise",
|
||||
"tags": ["on-premise"]
|
||||
},
|
||||
"/ci/concepts": {
|
||||
"id": "concepts",
|
||||
"name": "Concepts",
|
||||
@@ -425,17 +447,6 @@
|
||||
"mediaImage": "",
|
||||
"file": "",
|
||||
"itemList": [
|
||||
{
|
||||
"id": "connect-to-cloud",
|
||||
"name": "Connect Nx Cloud",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/recipes/connect-to-cloud",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/set-up/connect-to-cloud",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "monorepo-ci-azure",
|
||||
"name": "Setting up Azure Pipelines",
|
||||
@@ -571,14 +582,14 @@
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "bitbucket-cloud",
|
||||
"name": "Enable Bitbucket Cloud PR Integration",
|
||||
"id": "bitbucket",
|
||||
"name": "Enable Bitbucket PR Integration",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/set-up/bitbucket-cloud",
|
||||
"file": "nx-cloud/set-up/bitbucket",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/source-control-integration/bitbucket-cloud",
|
||||
"path": "/ci/recipes/source-control-integration/bitbucket",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
@@ -622,6 +633,17 @@
|
||||
"mediaImage": "",
|
||||
"file": "",
|
||||
"itemList": [
|
||||
{
|
||||
"id": "on-premise",
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"description": "Set up Nx Cloud on machines that you control",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/features/nx-enterprise-on-prem",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/enterprise/on-premise/on-premise",
|
||||
"tags": ["on-premise"]
|
||||
},
|
||||
{
|
||||
"id": "auth-single-admin",
|
||||
"name": "Authenticate with a Single Admin",
|
||||
@@ -677,6 +699,17 @@
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "auth-bitbucket-data-center",
|
||||
"name": "Authenticate with BitBucket Data Center",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "auth-saml",
|
||||
"name": "Authenticate via SAML",
|
||||
@@ -855,17 +888,6 @@
|
||||
"mediaImage": "",
|
||||
"file": "",
|
||||
"itemList": [
|
||||
{
|
||||
"id": "connect-to-cloud",
|
||||
"name": "Connect Nx Cloud",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/recipes/connect-to-cloud",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/set-up/connect-to-cloud",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "monorepo-ci-azure",
|
||||
"name": "Setting up Azure Pipelines",
|
||||
@@ -937,17 +959,6 @@
|
||||
"path": "/ci/recipes/set-up",
|
||||
"tags": ["distribute-task-execution"]
|
||||
},
|
||||
"/ci/recipes/set-up/connect-to-cloud": {
|
||||
"id": "connect-to-cloud",
|
||||
"name": "Connect Nx Cloud",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/recipes/connect-to-cloud",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/set-up/connect-to-cloud",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/recipes/set-up/monorepo-ci-azure": {
|
||||
"id": "monorepo-ci-azure",
|
||||
"name": "Setting up Azure Pipelines",
|
||||
@@ -1111,14 +1122,14 @@
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "bitbucket-cloud",
|
||||
"name": "Enable Bitbucket Cloud PR Integration",
|
||||
"id": "bitbucket",
|
||||
"name": "Enable Bitbucket PR Integration",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/set-up/bitbucket-cloud",
|
||||
"file": "nx-cloud/set-up/bitbucket",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/source-control-integration/bitbucket-cloud",
|
||||
"path": "/ci/recipes/source-control-integration/bitbucket",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
@@ -1159,15 +1170,15 @@
|
||||
"path": "/ci/recipes/source-control-integration/github",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/recipes/source-control-integration/bitbucket-cloud": {
|
||||
"id": "bitbucket-cloud",
|
||||
"name": "Enable Bitbucket Cloud PR Integration",
|
||||
"/ci/recipes/source-control-integration/bitbucket": {
|
||||
"id": "bitbucket",
|
||||
"name": "Enable Bitbucket PR Integration",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/set-up/bitbucket-cloud",
|
||||
"file": "nx-cloud/set-up/bitbucket",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/source-control-integration/bitbucket-cloud",
|
||||
"path": "/ci/recipes/source-control-integration/bitbucket",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/recipes/source-control-integration/gitlab": {
|
||||
@@ -1206,6 +1217,17 @@
|
||||
"mediaImage": "",
|
||||
"file": "",
|
||||
"itemList": [
|
||||
{
|
||||
"id": "on-premise",
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"description": "Set up Nx Cloud on machines that you control",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/features/nx-enterprise-on-prem",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/enterprise/on-premise/on-premise",
|
||||
"tags": ["on-premise"]
|
||||
},
|
||||
{
|
||||
"id": "auth-single-admin",
|
||||
"name": "Authenticate with a Single Admin",
|
||||
@@ -1261,6 +1283,17 @@
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "auth-bitbucket-data-center",
|
||||
"name": "Authenticate with BitBucket Data Center",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "auth-saml",
|
||||
"name": "Authenticate via SAML",
|
||||
@@ -1400,6 +1433,17 @@
|
||||
"mediaImage": "",
|
||||
"file": "",
|
||||
"itemList": [
|
||||
{
|
||||
"id": "on-premise",
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"description": "Set up Nx Cloud on machines that you control",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/features/nx-enterprise-on-prem",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/enterprise/on-premise/on-premise",
|
||||
"tags": ["on-premise"]
|
||||
},
|
||||
{
|
||||
"id": "auth-single-admin",
|
||||
"name": "Authenticate with a Single Admin",
|
||||
@@ -1455,6 +1499,17 @@
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "auth-bitbucket-data-center",
|
||||
"name": "Authenticate with BitBucket Data Center",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "auth-saml",
|
||||
"name": "Authenticate via SAML",
|
||||
@@ -1504,6 +1559,17 @@
|
||||
"path": "/ci/recipes/enterprise/on-premise",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/recipes/enterprise/on-premise/on-premise": {
|
||||
"id": "on-premise",
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"description": "Set up Nx Cloud on machines that you control",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/features/nx-enterprise-on-prem",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/enterprise/on-premise/on-premise",
|
||||
"tags": ["on-premise"]
|
||||
},
|
||||
"/ci/recipes/enterprise/on-premise/auth-single-admin": {
|
||||
"id": "auth-single-admin",
|
||||
"name": "Authenticate with a Single Admin",
|
||||
@@ -1559,6 +1625,17 @@
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center": {
|
||||
"id": "auth-bitbucket-data-center",
|
||||
"name": "Authenticate with BitBucket Data Center",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/recipes/enterprise/on-premise/auth-saml": {
|
||||
"id": "auth-saml",
|
||||
"name": "Authenticate via SAML",
|
||||
@@ -1964,6 +2041,17 @@
|
||||
"isExternal": false,
|
||||
"path": "/ci/troubleshooting/ci-execution-failed",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "explain-with-ai",
|
||||
"name": "Explain With AI",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/troubleshooting/explain-with-ai",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/troubleshooting/explain-with-ai",
|
||||
"tags": []
|
||||
}
|
||||
],
|
||||
"isExternal": false,
|
||||
@@ -1980,5 +2068,16 @@
|
||||
"isExternal": false,
|
||||
"path": "/ci/troubleshooting/ci-execution-failed",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/troubleshooting/explain-with-ai": {
|
||||
"id": "explain-with-ai",
|
||||
"name": "Explain With AI",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "nx-cloud/troubleshooting/explain-with-ai",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/ci/troubleshooting/explain-with-ai",
|
||||
"tags": []
|
||||
}
|
||||
}
|
||||
|
||||
@@ -284,7 +284,7 @@
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Explore your Workspace",
|
||||
"name": "Explore Your Workspace",
|
||||
"path": "/features/explore-graph",
|
||||
"id": "explore-graph",
|
||||
"isExternal": false,
|
||||
@@ -376,14 +376,6 @@
|
||||
"isExternal": true,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"path": "/ci/features/on-premise",
|
||||
"id": "on-premise",
|
||||
"isExternal": true,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
}
|
||||
],
|
||||
"disableCollapsible": false
|
||||
@@ -408,7 +400,7 @@
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Explore your Workspace",
|
||||
"name": "Explore Your Workspace",
|
||||
"path": "/features/explore-graph",
|
||||
"id": "explore-graph",
|
||||
"isExternal": false,
|
||||
@@ -500,14 +492,6 @@
|
||||
"isExternal": true,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"path": "/ci/features/on-premise",
|
||||
"id": "on-premise",
|
||||
"isExternal": true,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
}
|
||||
],
|
||||
"disableCollapsible": false
|
||||
@@ -560,14 +544,6 @@
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"path": "/ci/features/on-premise",
|
||||
"id": "on-premise",
|
||||
"isExternal": true,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Concepts",
|
||||
"path": "/concepts",
|
||||
@@ -1283,6 +1259,14 @@
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "React Compiler with Nx",
|
||||
"path": "/recipes/react/react-compiler",
|
||||
"id": "react-compiler",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
}
|
||||
],
|
||||
"disableCollapsible": false
|
||||
@@ -2385,6 +2369,14 @@
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "React Compiler with Nx",
|
||||
"path": "/recipes/react/react-compiler",
|
||||
"id": "react-compiler",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
}
|
||||
],
|
||||
"disableCollapsible": false
|
||||
@@ -2445,6 +2437,14 @@
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "React Compiler with Nx",
|
||||
"path": "/recipes/react/react-compiler",
|
||||
"id": "react-compiler",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Angular",
|
||||
"path": "/recipes/angular",
|
||||
@@ -5169,6 +5169,14 @@
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Connect to Nx Cloud",
|
||||
"path": "/ci/intro/connect-to-nx-cloud",
|
||||
"id": "connect-to-nx-cloud",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Tutorials",
|
||||
"path": "/ci/intro/tutorials",
|
||||
@@ -5213,6 +5221,14 @@
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Connect to Nx Cloud",
|
||||
"path": "/ci/intro/connect-to-nx-cloud",
|
||||
"id": "connect-to-nx-cloud",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Tutorials",
|
||||
"path": "/ci/intro/tutorials",
|
||||
@@ -5284,6 +5300,14 @@
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Nx Cloud AI",
|
||||
"path": "/ci/features/nx-cloud-ai",
|
||||
"id": "nx-cloud-ai",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Dynamically Allocate Agents",
|
||||
"path": "/ci/features/dynamic-agents",
|
||||
@@ -5307,14 +5331,6 @@
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"path": "/ci/features/on-premise",
|
||||
"id": "on-premise",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
}
|
||||
],
|
||||
"disableCollapsible": false
|
||||
@@ -5343,6 +5359,14 @@
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Nx Cloud AI",
|
||||
"path": "/ci/features/nx-cloud-ai",
|
||||
"id": "nx-cloud-ai",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Dynamically Allocate Agents",
|
||||
"path": "/ci/features/dynamic-agents",
|
||||
@@ -5367,14 +5391,6 @@
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"path": "/ci/features/on-premise",
|
||||
"id": "on-premise",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Concepts",
|
||||
"path": "/ci/concepts",
|
||||
@@ -5460,14 +5476,6 @@
|
||||
"id": "set-up",
|
||||
"isExternal": false,
|
||||
"children": [
|
||||
{
|
||||
"name": "Connect Nx Cloud",
|
||||
"path": "/ci/recipes/set-up/connect-to-cloud",
|
||||
"id": "connect-to-cloud",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Setting up Azure Pipelines",
|
||||
"path": "/ci/recipes/set-up/monorepo-ci-azure",
|
||||
@@ -5567,9 +5575,9 @@
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Enable Bitbucket Cloud PR Integration",
|
||||
"path": "/ci/recipes/source-control-integration/bitbucket-cloud",
|
||||
"id": "bitbucket-cloud",
|
||||
"name": "Enable Bitbucket PR Integration",
|
||||
"path": "/ci/recipes/source-control-integration/bitbucket",
|
||||
"id": "bitbucket",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
@@ -5605,6 +5613,14 @@
|
||||
"id": "on-premise",
|
||||
"isExternal": false,
|
||||
"children": [
|
||||
{
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"path": "/ci/recipes/enterprise/on-premise/on-premise",
|
||||
"id": "on-premise",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Authenticate with a Single Admin",
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-single-admin",
|
||||
@@ -5645,6 +5661,14 @@
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Authenticate with BitBucket Data Center",
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
|
||||
"id": "auth-bitbucket-data-center",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Authenticate via SAML",
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-saml",
|
||||
@@ -5774,14 +5798,6 @@
|
||||
"id": "set-up",
|
||||
"isExternal": false,
|
||||
"children": [
|
||||
{
|
||||
"name": "Connect Nx Cloud",
|
||||
"path": "/ci/recipes/set-up/connect-to-cloud",
|
||||
"id": "connect-to-cloud",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Setting up Azure Pipelines",
|
||||
"path": "/ci/recipes/set-up/monorepo-ci-azure",
|
||||
@@ -5833,14 +5849,6 @@
|
||||
],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Connect Nx Cloud",
|
||||
"path": "/ci/recipes/set-up/connect-to-cloud",
|
||||
"id": "connect-to-cloud",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Setting up Azure Pipelines",
|
||||
"path": "/ci/recipes/set-up/monorepo-ci-azure",
|
||||
@@ -5961,9 +5969,9 @@
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Enable Bitbucket Cloud PR Integration",
|
||||
"path": "/ci/recipes/source-control-integration/bitbucket-cloud",
|
||||
"id": "bitbucket-cloud",
|
||||
"name": "Enable Bitbucket PR Integration",
|
||||
"path": "/ci/recipes/source-control-integration/bitbucket",
|
||||
"id": "bitbucket",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
@@ -5996,9 +6004,9 @@
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Enable Bitbucket Cloud PR Integration",
|
||||
"path": "/ci/recipes/source-control-integration/bitbucket-cloud",
|
||||
"id": "bitbucket-cloud",
|
||||
"name": "Enable Bitbucket PR Integration",
|
||||
"path": "/ci/recipes/source-control-integration/bitbucket",
|
||||
"id": "bitbucket",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
@@ -6031,6 +6039,14 @@
|
||||
"id": "on-premise",
|
||||
"isExternal": false,
|
||||
"children": [
|
||||
{
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"path": "/ci/recipes/enterprise/on-premise/on-premise",
|
||||
"id": "on-premise",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Authenticate with a Single Admin",
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-single-admin",
|
||||
@@ -6071,6 +6087,14 @@
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Authenticate with BitBucket Data Center",
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
|
||||
"id": "auth-bitbucket-data-center",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Authenticate via SAML",
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-saml",
|
||||
@@ -6172,6 +6196,14 @@
|
||||
"id": "on-premise",
|
||||
"isExternal": false,
|
||||
"children": [
|
||||
{
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"path": "/ci/recipes/enterprise/on-premise/on-premise",
|
||||
"id": "on-premise",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Authenticate with a Single Admin",
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-single-admin",
|
||||
@@ -6212,6 +6244,14 @@
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Authenticate with BitBucket Data Center",
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
|
||||
"id": "auth-bitbucket-data-center",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Authenticate via SAML",
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-saml",
|
||||
@@ -6247,6 +6287,14 @@
|
||||
],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"path": "/ci/recipes/enterprise/on-premise/on-premise",
|
||||
"id": "on-premise",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Authenticate with a Single Admin",
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-single-admin",
|
||||
@@ -6287,6 +6335,14 @@
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Authenticate with BitBucket Data Center",
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
|
||||
"id": "auth-bitbucket-data-center",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Authenticate via SAML",
|
||||
"path": "/ci/recipes/enterprise/on-premise/auth-saml",
|
||||
@@ -6583,6 +6639,14 @@
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Explain With AI",
|
||||
"path": "/ci/troubleshooting/explain-with-ai",
|
||||
"id": "explain-with-ai",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
}
|
||||
],
|
||||
"disableCollapsible": false
|
||||
@@ -6594,6 +6658,14 @@
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
},
|
||||
{
|
||||
"name": "Explain With AI",
|
||||
"path": "/ci/troubleshooting/explain-with-ai",
|
||||
"id": "explain-with-ai",
|
||||
"isExternal": false,
|
||||
"children": [],
|
||||
"disableCollapsible": false
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -385,7 +385,7 @@
|
||||
},
|
||||
{
|
||||
"id": "explore-graph",
|
||||
"name": "Explore your Workspace",
|
||||
"name": "Explore Your Workspace",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "shared/features/explore-graph",
|
||||
@@ -510,17 +510,6 @@
|
||||
"isExternal": true,
|
||||
"path": "/ci/features/flaky-tasks",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "on-premise",
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"description": "Set up Nx Cloud on machines that you control",
|
||||
"mediaImage": "",
|
||||
"file": "",
|
||||
"itemList": [],
|
||||
"isExternal": true,
|
||||
"path": "/ci/features/on-premise",
|
||||
"tags": []
|
||||
}
|
||||
],
|
||||
"isExternal": false,
|
||||
@@ -556,7 +545,7 @@
|
||||
},
|
||||
"/features/explore-graph": {
|
||||
"id": "explore-graph",
|
||||
"name": "Explore your Workspace",
|
||||
"name": "Explore Your Workspace",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "shared/features/explore-graph",
|
||||
@@ -681,17 +670,6 @@
|
||||
"isExternal": true,
|
||||
"path": "/ci/features/flaky-tasks",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "on-premise",
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"description": "Set up Nx Cloud on machines that you control",
|
||||
"mediaImage": "",
|
||||
"file": "",
|
||||
"itemList": [],
|
||||
"isExternal": true,
|
||||
"path": "/ci/features/on-premise",
|
||||
"tags": []
|
||||
}
|
||||
],
|
||||
"isExternal": false,
|
||||
@@ -764,17 +742,6 @@
|
||||
"path": "/ci/features/flaky-tasks",
|
||||
"tags": []
|
||||
},
|
||||
"/ci/features/on-premise": {
|
||||
"id": "on-premise",
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"description": "Set up Nx Cloud on machines that you control",
|
||||
"mediaImage": "",
|
||||
"file": "",
|
||||
"itemList": [],
|
||||
"isExternal": true,
|
||||
"path": "/ci/features/on-premise",
|
||||
"tags": []
|
||||
},
|
||||
"/concepts": {
|
||||
"id": "concepts",
|
||||
"name": "Concepts",
|
||||
@@ -1753,6 +1720,17 @@
|
||||
"isExternal": false,
|
||||
"path": "/recipes/react/deploy-nextjs-to-vercel",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "react-compiler",
|
||||
"name": "React Compiler with Nx",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "shared/guides/react-compiler",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/recipes/react/react-compiler",
|
||||
"tags": []
|
||||
}
|
||||
],
|
||||
"isExternal": false,
|
||||
@@ -3262,6 +3240,17 @@
|
||||
"isExternal": false,
|
||||
"path": "/recipes/react/deploy-nextjs-to-vercel",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"id": "react-compiler",
|
||||
"name": "React Compiler with Nx",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "shared/guides/react-compiler",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/recipes/react/react-compiler",
|
||||
"tags": []
|
||||
}
|
||||
],
|
||||
"isExternal": false,
|
||||
@@ -3345,6 +3334,17 @@
|
||||
"path": "/recipes/react/deploy-nextjs-to-vercel",
|
||||
"tags": []
|
||||
},
|
||||
"/recipes/react/react-compiler": {
|
||||
"id": "react-compiler",
|
||||
"name": "React Compiler with Nx",
|
||||
"description": "",
|
||||
"mediaImage": "",
|
||||
"file": "shared/guides/react-compiler",
|
||||
"itemList": [],
|
||||
"isExternal": false,
|
||||
"path": "/recipes/react/react-compiler",
|
||||
"tags": []
|
||||
},
|
||||
"/recipes/angular": {
|
||||
"id": "angular",
|
||||
"name": "Angular",
|
||||
|
||||
@@ -248,7 +248,7 @@
|
||||
"description": "",
|
||||
"file": "shared/features/explore-graph",
|
||||
"id": "explore-graph",
|
||||
"name": "Explore your Workspace",
|
||||
"name": "Explore Your Workspace",
|
||||
"path": "/features/explore-graph"
|
||||
},
|
||||
{
|
||||
@@ -1134,7 +1134,7 @@
|
||||
"file": "nx-cloud/features/nx-enterprise-on-prem",
|
||||
"id": "on-premise",
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"path": "/ci/features/on-premise"
|
||||
"path": "/ci/recipes/enterprise/on-premise/on-premise"
|
||||
}
|
||||
],
|
||||
"docker": [
|
||||
|
||||
@@ -14,6 +14,7 @@ We provide a recommended version, and it is usually the latest minor version of
|
||||
|
||||
| Angular Version | **Nx Version _(recommended)_** | Nx Version _(range)_ |
|
||||
| --------------- | ------------------------------ | ---------------------------------------- |
|
||||
| ~18.1.0 | **latest** | >=19.5.0 <=latest |
|
||||
| ~18.0.0 | **latest** | >=19.1.0 <=latest |
|
||||
| ~17.3.0 | **latest** | >=18.2.0 <=latest |
|
||||
| ~17.2.0 | **latest** | >=18.1.1 <=latest |
|
||||
|
||||
@@ -110,6 +110,17 @@
|
||||
"description": "Force the development server to use the 'browser-esbuild' builder when building. This is a developer preview option for the esbuild-based build system. _Note: this is only supported in Angular versions >= 16.1.0_.",
|
||||
"default": false
|
||||
},
|
||||
"inspect": {
|
||||
"default": false,
|
||||
"description": "Activate debugging inspector. This option only has an effect when 'SSR' or 'SSG' are enabled. _Note: this is only supported in Angular versions >= 18.1.0_.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"description": "Activate the inspector on host and port in the format of `[[host:]port]`. See the security warning in https://nodejs.org/docs/latest-v22.x/api/cli.html#warning-binding-inspector-to-a-public-ipport-combination-is-insecure regarding the host parameter usage."
|
||||
},
|
||||
{ "type": "boolean" }
|
||||
]
|
||||
},
|
||||
"prebundle": {
|
||||
"description": "Enable and control the Vite-based development server's prebundling capabilities. To enable prebundling, the Angular CLI cache must also be enabled. This option has no effect when using the 'browser' or other Webpack-based builders. _Note: this is only supported in Angular versions >= 17.2.0_.",
|
||||
"oneOf": [
|
||||
|
||||
@@ -135,6 +135,7 @@ It only uses language primitives and immutable objects
|
||||
- [globAsync](../../devkit/documents/globAsync)
|
||||
- [hashArray](../../devkit/documents/hashArray)
|
||||
- [installPackagesTask](../../devkit/documents/installPackagesTask)
|
||||
- [isDaemonEnabled](../../devkit/documents/isDaemonEnabled)
|
||||
- [isWorkspacesEnabled](../../devkit/documents/isWorkspacesEnabled)
|
||||
- [joinPathFragments](../../devkit/documents/joinPathFragments)
|
||||
- [moveFilesToNewDirectory](../../devkit/documents/moveFilesToNewDirectory)
|
||||
|
||||
@@ -121,9 +121,9 @@ Generate a 'src/' directory for Next.js
|
||||
|
||||
Type: `string`
|
||||
|
||||
Choices: [yes, github, circleci, skip]
|
||||
Choices: [github, circleci, gitlab, azure, bitbucket-pipelines, skip, yes]
|
||||
|
||||
Do you want Nx Cloud to make your CI fast?
|
||||
Which CI provider would you like to use?
|
||||
|
||||
### packageManager
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
"file": "shared/features/cache-task-results"
|
||||
},
|
||||
{
|
||||
"name": "Explore your Workspace",
|
||||
"name": "Explore Your Workspace",
|
||||
"id": "explore-graph",
|
||||
"tags": ["explore-graph"],
|
||||
"file": "shared/features/explore-graph"
|
||||
@@ -179,14 +179,6 @@
|
||||
"file": "",
|
||||
"path": "/ci/features/flaky-tasks",
|
||||
"isExternal": true
|
||||
},
|
||||
{
|
||||
"name": "Set up Nx Cloud On-Premise",
|
||||
"id": "on-premise",
|
||||
"description": "Set up Nx Cloud on machines that you control",
|
||||
"file": "",
|
||||
"path": "/ci/features/on-premise",
|
||||
"isExternal": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -504,6 +496,11 @@
|
||||
"name": "Deploying Next.js applications to Vercel",
|
||||
"id": "deploy-nextjs-to-vercel",
|
||||
"file": "shared/recipes/deployment/deploy-nextjs-to-vercel"
|
||||
},
|
||||
{
|
||||
"name": "React Compiler with Nx",
|
||||
"id": "react-compiler",
|
||||
"file": "shared/guides/react-compiler"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1572,6 +1569,11 @@
|
||||
"id": "why-nx-cloud",
|
||||
"file": "nx-cloud/intro/why-nx-cloud"
|
||||
},
|
||||
{
|
||||
"name": "Connect to Nx Cloud",
|
||||
"id": "connect-to-nx-cloud",
|
||||
"file": "nx-cloud/intro/connect-to-cloud"
|
||||
},
|
||||
{
|
||||
"name": "Tutorials",
|
||||
"id": "tutorials",
|
||||
@@ -1616,6 +1618,12 @@
|
||||
"description": "Learn how to efficiently distribute tasks across machines to take full advantage of parallelization. Nx Agents make this a trivial task.",
|
||||
"file": "shared/features/distribute-task-execution"
|
||||
},
|
||||
{
|
||||
"name": "Nx Cloud AI",
|
||||
"id": "nx-cloud-ai",
|
||||
"description": "Learn how to enable AI features in Nx Cloud, and what features it enables",
|
||||
"file": "nx-cloud/features/ai-features"
|
||||
},
|
||||
{
|
||||
"name": "Dynamically Allocate Agents",
|
||||
"description": "Learn how to dynamically allocate agents based on the size of a PR, keeping the balance of speed and cost.",
|
||||
@@ -1633,13 +1641,6 @@
|
||||
"id": "flaky-tasks",
|
||||
"description": "Learn how Nx Cloud is able to automatically identify flaky tasks and re-run them for you.",
|
||||
"file": "nx-cloud/features/flaky-tasks"
|
||||
},
|
||||
{
|
||||
"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/features/nx-enterprise-on-prem"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1684,11 +1685,6 @@
|
||||
"description": "Learn how to set up Nx Cloud for your workspace.",
|
||||
"tags": ["distribute-task-execution"],
|
||||
"itemList": [
|
||||
{
|
||||
"name": "Connect Nx Cloud",
|
||||
"id": "connect-to-cloud",
|
||||
"file": "nx-cloud/recipes/connect-to-cloud"
|
||||
},
|
||||
{
|
||||
"name": "Setting up Azure Pipelines",
|
||||
"id": "monorepo-ci-azure",
|
||||
@@ -1754,9 +1750,9 @@
|
||||
"file": "nx-cloud/set-up/github"
|
||||
},
|
||||
{
|
||||
"name": "Enable Bitbucket Cloud PR Integration",
|
||||
"id": "bitbucket-cloud",
|
||||
"file": "nx-cloud/set-up/bitbucket-cloud"
|
||||
"name": "Enable Bitbucket PR Integration",
|
||||
"id": "bitbucket",
|
||||
"file": "nx-cloud/set-up/bitbucket"
|
||||
},
|
||||
{
|
||||
"name": "Enable GitLab MR Integration",
|
||||
@@ -1780,6 +1776,13 @@
|
||||
"id": "on-premise",
|
||||
"description": "Manage an on-premise installation of Nx Cloud",
|
||||
"itemList": [
|
||||
{
|
||||
"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/features/nx-enterprise-on-prem"
|
||||
},
|
||||
{
|
||||
"name": "Authenticate with a Single Admin",
|
||||
"id": "auth-single-admin",
|
||||
@@ -1805,6 +1808,11 @@
|
||||
"id": "auth-bitbucket",
|
||||
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket"
|
||||
},
|
||||
{
|
||||
"name": "Authenticate with BitBucket Data Center",
|
||||
"id": "auth-bitbucket-data-center",
|
||||
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center"
|
||||
},
|
||||
{
|
||||
"name": "Authenticate via SAML",
|
||||
"id": "auth-saml",
|
||||
@@ -1932,6 +1940,11 @@
|
||||
"name": "CI Execution Failed",
|
||||
"id": "ci-execution-failed",
|
||||
"file": "nx-cloud/troubleshooting/ci-execution-failed"
|
||||
},
|
||||
{
|
||||
"name": "Explain With AI",
|
||||
"id": "explain-with-ai",
|
||||
"file": "nx-cloud/troubleshooting/explain-with-ai"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -2,15 +2,7 @@
|
||||
|
||||
## Troubleshooting and Verbose Logging
|
||||
|
||||
To help troubleshoot installations, add the following env variables when starting the container:
|
||||
|
||||
```
|
||||
-e NX_VERBOSE_LOGGING=true
|
||||
-e NX_API_LOG_LEVEL=DEBUG
|
||||
-e NX_MONGO_LOG_LEVEL=DEBUG
|
||||
```
|
||||
|
||||
or if using helm set `verboseLogging` to `'true'`:
|
||||
To help troubleshoot installations set `verboseLogging` to `'true'`:
|
||||
|
||||
```yaml
|
||||
image:
|
||||
@@ -30,10 +22,6 @@ source [MongoDB Kubernetes Operator](https://github.com/mongodb/mongodb-kubernet
|
||||
your own deployment of MongoDB. See [the Nx Cloud Kubernetes example](https://github.com/nrwl/nxcloud-k8s-setup) for
|
||||
more information.
|
||||
|
||||
### Using CosmosDB
|
||||
|
||||
If you are deploying to Azure, you might have access to CosmosDB. See here for more information.
|
||||
|
||||
### Using Mongo Atlas
|
||||
|
||||
[Mongo Atlas](https://mongodb.com/) is a great option for deploying MongoDB.
|
||||
|
||||
@@ -116,6 +116,7 @@ nxCloudAppURL: 'https://nx-cloud.on.my-domain.ca' # make sure no backslash is at
|
||||
|
||||
# we do not support self-hosted bitbucket instances
|
||||
#bitbucket:
|
||||
# apiUrl: '' (if using Data Center/on-prem)
|
||||
# auth:
|
||||
# enabled: false
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# BitBucket Data Center Auth
|
||||
|
||||
This page is for configuring auth via BitBucket Data Center (on-prem). If you are using BitBucket Cloud please refer to the docs [here](/ci/recipes/enterprise/on-premise/auth-bitbucket).
|
||||
|
||||
Before creating your container, your Bitbucket Data Center admin will need to create an "Application Link".
|
||||
|
||||
## Creating an Application Link
|
||||
|
||||
Your BitBucket installation admin will need to navigate to their installation settings:
|
||||
|
||||

|
||||
|
||||
Then "Application Links":
|
||||
|
||||

|
||||
|
||||
And create a new link using the settings below (make sure the callback URL is pointed to your BitBucket installation):
|
||||
|
||||

|
||||
|
||||
## Connect your Nx Cloud installation to your new app
|
||||
|
||||
It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file.
|
||||
@@ -1,8 +1,8 @@
|
||||
# BitBucket Auth
|
||||
# BitBucket Cloud Auth
|
||||
|
||||
Nx Private Cloud currently only support **public** BitBucket auth. On-prem installation of BitBucket Server are currently not supported.
|
||||
This page is only for BitBucket Cloud (bitbucket.org). If you have an on-premise version of BitBucket Data Center please refer to the docs [here](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center).
|
||||
|
||||
Before creating your container, you'll need to create a BitBucket "OAuth consumer" for your organisation.
|
||||
First, you'll need to create a BitBucket "OAuth consumer" for your organisation.
|
||||
|
||||
## Creating a BitBucket OAuth consumer
|
||||
|
||||
@@ -45,11 +45,4 @@ Once you create, keep a note of the Key and the Secret:
|
||||
|
||||
## Connect your Nx Cloud installation to your new app
|
||||
|
||||
Provide the following env variables to the `nx-cloud-frontend` container:
|
||||
|
||||
- `BITBUCKET_APP_ID`
|
||||
- `BITBUCKET_APP_SECRET`
|
||||
|
||||
{% callout title="Helm Chart Environment Variables" %}
|
||||
If you are using our Helm chart, you can find all the information you need about env variables in [the Helm chart repository](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md).
|
||||
{% /callout %}
|
||||
It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file.
|
||||
|
||||
@@ -41,49 +41,4 @@ And then generate a new client secret, and save it somewhere secure (we'll use i
|
||||
|
||||
## Configure Nx Cloud Installation
|
||||
|
||||
### Using Helm:
|
||||
|
||||
```yaml
|
||||
image:
|
||||
tag: 'latest'
|
||||
|
||||
nxCloudAppURL: 'https://nx-cloud.myorg.com'
|
||||
|
||||
github:
|
||||
auth:
|
||||
enabled: true
|
||||
|
||||
secret:
|
||||
name: 'cloudsecret'
|
||||
nxCloudMongoServerEndpoint: 'NX_CLOUD_MONGO_SERVER_ENDPOINT'
|
||||
githubAuthClientId: 'GITHUB_AUTH_CLIENT_ID'
|
||||
githubAuthClientSecret: 'GITHUB_AUTH_CLIENT_SECRET'
|
||||
```
|
||||
|
||||
Note that the secret must contain `GITHUB_AUTH_CLIENT_ID` and `GITHUB_AUTH_CLIENT_SECRET` (
|
||||
see [Nx Cloud Helm Charts](https://github.com/nrwl/nx-cloud-helm) for more context).
|
||||
|
||||
### Not using Helm:
|
||||
|
||||
Provide the following env variables to the `nx-cloud-frontend` container:
|
||||
|
||||
- `GITHUB_AUTH_CLIENT_ID`
|
||||
- `GITHUB_AUTH_CLIENT_SECRET`
|
||||
|
||||
{% callout title="Helm Chart Environment Variables" %}
|
||||
If you are using our Helm chart, you can find all the information you need about env variables in [the Helm chart repository](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md).
|
||||
{% /callout %}
|
||||
|
||||
## GitHub Enterprise
|
||||
|
||||
If you are running a self-hosted version of GitHub (Enterprise Server), you will need to configure one additional
|
||||
environment variable:
|
||||
|
||||
`GITHUB_API_URL=https://custom-github-instance.com`
|
||||
|
||||
This will point all auth endpoints to your GitHub server (rather the public one).
|
||||
|
||||
{% callout type="check" title="Good to know!" %}
|
||||
The above environment variable, also helps with setting up the GitHub app integration, so you can have Nx Cloud build
|
||||
stats directly on your pull request. See full set up instructions [here](/ci/recipes/source-control-integration/github).
|
||||
{% /callout %}
|
||||
It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file.
|
||||
|
||||
@@ -37,19 +37,4 @@ Once you create, keep a note of the Client ID and the Secret:
|
||||
|
||||
## Connect your Nx Cloud installation to your new app
|
||||
|
||||
Provide the following env variables to the `nx-cloud-frontend` container:
|
||||
|
||||
- `GITLAB_APP_ID`
|
||||
- `GITLAB_APP_SECRET`
|
||||
|
||||
{% callout title="Helm Chart Environment Variables" %}
|
||||
If you are using our Helm chart, you can find all the information you need about env variables in [the Helm chart repository](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md).
|
||||
{% /callout %}
|
||||
|
||||
## Self-hosted GitLab
|
||||
|
||||
If you are running a self-hosted version of GitLab, you will need to configure one additional environment variable:
|
||||
|
||||
`GITLAB_API_URL=https://custom-gitlab-instance.com`
|
||||
|
||||
This will point all the auth endpoints to your GitLab server (rather the public one).
|
||||
It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file.
|
||||
|
||||
@@ -130,30 +130,6 @@ if you are interested.
|
||||
|
||||

|
||||
|
||||
12. Then add these two env vars to your secrets (see [Helm config](#helm-config) below):
|
||||
1. `SAML_CERT=<your-cert-string-from-above>`
|
||||
2. `SAML_ENTRY_POINT=<your-login-url-from-above>`
|
||||
|
||||
## Helm config
|
||||
|
||||
If you are using [Helm to deploy Nx Cloud](https://github.com/nrwl/nx-cloud-helm) you
|
||||
will need to configure the below two values, as well as make the `SAML_CERT` and `SAML_ENTRY_POINT`
|
||||
env vars as secrets:
|
||||
|
||||
```yaml
|
||||
# helm-values.yml
|
||||
addonUnlockKey: '<your-unlock-key>'
|
||||
|
||||
saml:
|
||||
enabled: true
|
||||
|
||||
# secrets.yml
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: nxcloudsecret
|
||||
type: Opaque
|
||||
stringData:
|
||||
SAML_CERT: '-----BEGIN CERTIFICATE-----\nblablablabla\n-----END CERTIFICATE-----\n'
|
||||
SAML_ENTRY_POINT: 'https://some-oktaurl.com/sso/saml'
|
||||
```
|
||||
It's now time to enable auth on NxCloud. Refer to the [auth guide](https://github.com/nrwl/nx-cloud-helm/blob/main/AUTH-GUIDE.md) here for instructions on configuring your Helm values file.
|
||||
|
||||
@@ -36,6 +36,7 @@ For instructions on how to set up third-party auth providers, please refer to th
|
||||
- [GitHub Auth](/ci/recipes/enterprise/on-premise/auth-github)
|
||||
- [GitLab Auth](/ci/recipes/enterprise/on-premise/auth-gitlab)
|
||||
- [BitBucket Auth](/ci/recipes/enterprise/on-premise/auth-bitbucket)
|
||||
- [BitBucket Data Center Auth](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center)
|
||||
- [SAML Auth](/ci/recipes/enterprise/on-premise/auth-saml)
|
||||
|
||||
## Inviting users
|
||||
|
||||
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 249 KiB |
|
After Width: | Height: | Size: 198 KiB |
@@ -0,0 +1,37 @@
|
||||
# Nx Cloud AI
|
||||
|
||||
To use AI in Nx Cloud, you need to enable AI features in your organization settings. This will unlock advanced capabilities designed to enhance your development workflow.
|
||||
|
||||
### How to Enable AI Features
|
||||
|
||||
1. **Navigate to Organization Settings**:
|
||||
|
||||
- Go to your [Nx Cloud dashboard](https://cloud.nx.app/orgs?utm_source=nx.dev&utm_campaign=ai).
|
||||
- Select your organization from the list.
|
||||
- Access the settings by clicking on the settings icon.
|
||||
|
||||
2. **Enable AI Features**:
|
||||
|
||||
- In the settings menu, locate the **AI Features** section.
|
||||
- Toggle the setting to **On**.
|
||||

|
||||
|
||||
3. **Accept AI Terms**:
|
||||
- Once the AI features are enabled, a terms and conditions prompt will appear.
|
||||
- Review and accept the terms and conditions related to AI usage to proceed.
|
||||
|
||||
### AI Driven Capabilities
|
||||
|
||||
Once AI features are enabled, you gain access to several powerful tools designed to optimize your development process:
|
||||
|
||||
#### Explain with AI
|
||||
|
||||
This feature leverages AI to provide detailed explanations and insights about failed tasks. [Learn more about "Explain with AI" here.](/ci/troubleshooting/explain-with-ai)
|
||||
|
||||
#### Automatic Resource Allocation (Coming Soon)
|
||||
|
||||
This feature leverages custom AI/ML models to dynamically allocate resources based on your project’s specific needs. It optimizes performance by efficiently assigning Nx Agents to achieve target durations for main and PR branches.
|
||||
|
||||
### Transform Your Workflow
|
||||
|
||||
By enabling AI features in Nx Cloud, you’re setting your organization up for a more intelligent and efficient development workflow. Stay tuned for the release of these powerful AI driven tools and take your development process to the next level.
|
||||
|
After Width: | Height: | Size: 83 KiB |
@@ -14,6 +14,10 @@ Implementing an efficient CI setup for monorepos - while crucial - can be challe
|
||||
|
||||
[Create an account on Nx Cloud](https://cloud.nx.app) and connect your repository.
|
||||
|
||||
```shell
|
||||
npx nx connect
|
||||
```
|
||||
|
||||
## Learn about Nx on CI
|
||||
|
||||
{% cards cols="2" lgCols="4" mdCols="4" smCols="2" %}
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
# Connect to Nx Cloud
|
||||
|
||||
Nx Cloud directly integrates with your existing CI setup.
|
||||
|
||||

|
||||
|
||||
In a nutshell, here's how this works:
|
||||
|
||||
**Step 1: Connect your workspace to Nx Cloud**
|
||||
|
||||
This can be done by signing up on [nx.app](https://nx.app) and then connecting to your git repository.
|
||||
|
||||
```shell
|
||||
npx nx connect
|
||||
```
|
||||
|
||||
**Step 2: Your CI script triggers Nx Cloud**
|
||||
|
||||
```yml
|
||||
- name: Start CI run
|
||||
run: 'npx nx-cloud start-ci-run --distribute-on="8 linux-medium-js"'
|
||||
```
|
||||
|
||||
Let us generate the workflow file for you, if you don't already have one.
|
||||
|
||||
```shell
|
||||
npx nx g ci-workflow
|
||||
```
|
||||
|
||||
Or, check out our [recipes for the various CI providers](/ci/recipes/set-up).
|
||||
|
||||
**Step 3: Run your Nx commands as usual**
|
||||
|
||||
```yml
|
||||
- run: npx nx-cloud record -- node tools/custom-script.js
|
||||
- run: npx nx affected -t lint test build
|
||||
- run: npx nx affected -t e2e-ci --parallel 1
|
||||
```
|
||||
|
||||
All these commands are automatically picked up by Nx Cloud, split up into smaller tasks and distributed across the specified number of machines. Nx Cloud works with Nx tasks automatically, or you can [record non-Nx commands with `nx-cloud record`](/ci/recipes/other/record-commands).
|
||||
|
||||
**Step 4: All results are played back automatically**
|
||||
|
||||
Nx Cloud automatically plays back all results to your CI system, as if distribution never happened. You can continue doing post-processing on the results, like uploading test reports, deploying artifacts etc.
|
||||
@@ -5,7 +5,7 @@ src="https://youtu.be/4VI-q943J3o"
|
||||
title="Fast CI for monorepos"
|
||||
width="100%" /%}
|
||||
|
||||
If CI feels challenging to you, **it might not be your fault**. It's a fundamental issue with how the current, traditional CI execution model works. Nx Cloud adopts a new **task-based** CI model which allows you to overcome both the slowness and unreliability of the current VM-based CI model. _(Dive deeper into the task based CI execution model [in this blog post](https://blog.nrwl.io/reliable-ci-a-new-execution-model-fixing-both-flakiness-and-slowness-6849fd4b4037))_
|
||||
If CI feels challenging to you, **it might not be your fault**. It's a fundamental issue with how the current, traditional CI execution model works. Nx Cloud adopts a new **task-based** CI model which allows you to overcome both the slowness and unreliability of the current VM-based CI model. _(Dive deeper into the task based CI execution model [in this blog post](/blog/reliable-ci-a-new-execution-model-fixing-both-flakiness-and-slowness))_
|
||||
|
||||
Nx Cloud addresses critical aspects of CI/CD, including:
|
||||
|
||||
@@ -21,43 +21,13 @@ All this is possible because Nx Cloud directly integrates with Nx and has knowle
|
||||
|
||||
Read more about individual features of Nx Cloud in the [features section](/ci/features).
|
||||
|
||||
## How does Nx Cloud integrate into my existing CI setup
|
||||
## Integrate Nx Cloud into my CI setup
|
||||
|
||||
Nx Cloud directly integrates with your existing CI setup.
|
||||
|
||||

|
||||
|
||||
In a nutshell, here's how this works:
|
||||
|
||||
**Step 1: Connect your workspace to Nx Cloud**
|
||||
|
||||
This can be done by signing up on [nx.app](https://nx.app) and then connecting to your git repository. Read more about all the details [on this doc page](/ci/recipes/set-up/connect-to-cloud).
|
||||
|
||||
**Step 2: Your CI script triggers Nx Cloud**
|
||||
|
||||
```yml
|
||||
- name: Start CI run
|
||||
run: 'npx nx-cloud start-ci-run --distribute-on="8 linux-medium-js"'
|
||||
```
|
||||
|
||||
Check out our [recipes for the various CI providers](/ci/recipes/set-up).
|
||||
|
||||
**Step 3: Run your Nx command as usual**
|
||||
|
||||
```yml
|
||||
- run: npx nx-cloud record -- nx format:check
|
||||
- run: npx nx affected -t lint test build e2e-ci
|
||||
```
|
||||
|
||||
All these commands are automatically picked up by Nx Cloud, split up into smaller tasks and distributed across the specified number of machines.
|
||||
|
||||
**Step 4: All results are played back automatically**
|
||||
|
||||
Nx Cloud automatically plays back all results to your CI system, as if distribution never happened. You can continue doing post-processing on the results, like uploading test reports, deploying artifacts etc.
|
||||
Ready to experience fast CI? Read the [connect to Nx Cloud](/ci/intro/connect-to-nx-cloud) page for more details.
|
||||
|
||||
## Learn more
|
||||
|
||||
- [Blog post: Reliable CI: A new execution model fixing both flakiness and slowness](https://blog.nrwl.io/reliable-ci-a-new-execution-model-fixing-both-flakiness-and-slowness-6849fd4b4037?source=friends_link&sk=6747bb77c92772a5f885a61127cb5c0b)
|
||||
- [Blog post: Reliable CI: A new execution model fixing both flakiness and slowness](/blog/reliable-ci-a-new-execution-model-fixing-both-flakiness-and-slowness)
|
||||
- [Live stream: Unlock the secret of fast CI - Hands-on session](https://www.youtube.com/live/rkLKaqLeDa0)
|
||||
- [Webinar: Nx Agents Walkthrough: Effortlessly Fast CI Built for Monorepos](https://go.nx.dev/march-webinar?utm_source=nx_cloud&utm_medium=nxdocs&utm_campaign=nx_agents&utm_id=devrel)
|
||||
- [Youtube: 10x Faster e2e Tests](https://www.youtube.com/watch?v=0YxcxIR7QU0)
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
# Connect to Nx Cloud
|
||||
|
||||
Create an account on [nx.app](https://nx.app). There are several ways to connect your repository to Nx Cloud.
|
||||
|
||||
#### Connect Directly Through GitHub
|
||||
|
||||
If your repository is hosted on GitHub, we recommend you create an Nx Cloud organization based on your GitHub organization.
|
||||
|
||||

|
||||
|
||||
After that, connect you repository.
|
||||
|
||||

|
||||
|
||||
This will send a pull request to your repository that will add the `nxCloudAccessToken` property to `nx.json`.
|
||||
|
||||

|
||||
|
||||
This wires up all the CI for you and configures access. Folks who can see your repository can see your workspace on nx.app.
|
||||
|
||||
## Manually Connect Your Workspace
|
||||
|
||||
If your repository is hosted on a different source control provider, you can also connect to Nx Cloud manually. You'll need to add a source control integration later to enable [Nx Agents](/ci/features/distribute-task-execution).
|
||||
|
||||
Run the following command in your repository:
|
||||
|
||||
```shell
|
||||
pnpm nx connect
|
||||
```
|
||||
|
||||
Click the link in the terminal to claim your workspace on [nx.app](https://nx.app).
|
||||
|
||||
The command generates an `nxCloudAccessToken` property inside of `nx.json`. This is a read-only token that should be committed to the repository.
|
||||
@@ -22,5 +22,5 @@ Data is encrypted both at rest and in transit.
|
||||
- Every communication with the Nx Cloud API is encrypted in transit, including fetching/storing artifacts.
|
||||
- When using Nx Public Cloud, the stored metadata is encrypted.
|
||||
- When using Nx Public Cloud and e2e encryption, stored artifacts are encrypted.
|
||||
- When using the on-prem version of Nx Cloud, the stored metadata is encrypted if you run MongoDB yourself with encryption on (or if you, for instance, use CosmosDB)
|
||||
- When using the on-prem version of Nx Cloud, the stored metadata is encrypted if you run MongoDB yourself with encryption on
|
||||
- When using the on-prem version of Nx Cloud, stored artifacts are encrypted using e2e encryption.
|
||||
|
||||
@@ -286,7 +286,7 @@ This is one of our biggest Nx Cloud On-Prem releases. It also marks a change in
|
||||
|
||||
A few months ago we announced a complete re-design of the Nx Cloud UI! It's faster, easier to use and pleasant to look at! We're now bringing this to On-Prem users as well:
|
||||
|
||||
You can read more about it in our [announcement blog post](https://blog.nrwl.io/nx-cloud-3-0-faster-more-efficient-modernized-36ac5ae33b86).
|
||||
You can read more about it in our [announcement blog post](/blog/nx-cloud-3-0-faster-more-efficient-modernized).
|
||||
|
||||
##### Pricing updates
|
||||
|
||||
@@ -310,7 +310,7 @@ We completely re-wrote our Task Distribution engine, which should result in much
|
||||
|
||||
We've also added a new internal task queueing system, which should further improve the performance of DTE. While this is an implementation detail which will be automatically enabled in future releases, you can test it out today by setting [`enableMessageQueue: true`](https://github.com/nrwl/nx-cloud-helm/blob/main/charts/nx-cloud/values.yaml#L18) in your Helm config.
|
||||
|
||||
You can read more about the recent DTE improvements in our [Nx Cloud 3.0 blog post](https://blog.nrwl.io/nx-cloud-3-0-faster-more-efficient-modernized-36ac5ae33b86).
|
||||
You can read more about the recent DTE improvements in our [Nx Cloud 3.0 blog post](/blog/nx-cloud-3-0-faster-more-efficient-modernized).
|
||||
|
||||
##### Misc updates
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 142 KiB |
@@ -1,35 +0,0 @@
|
||||
# Enable Bitbucket Cloud PR Integration
|
||||
|
||||
## Get Started
|
||||
|
||||
The Nx Cloud + Bitbucket Cloud Integration lets you access the result of every run—with all its logs and build insights—straight from your PR.
|
||||
|
||||
## Connecting Your Workspace
|
||||
|
||||

|
||||
|
||||
Once on the VCS Integrations setup page, select "Bitbucket". You will be prompted to enter the name of your workspace and its repository slug.
|
||||
|
||||
Identifying your workspace name and repository slug can be done by looking at the URL from Bitbucket.
|
||||
|
||||
```
|
||||
https://bitbucket.org/[workspace]/[repository-slug]/src/main/
|
||||
```
|
||||
|
||||
For example, the url `https://bitbucket.org/nrwl/large-monorepo/src/main/` has a workspace name of "nrwl", and a repository slug of "large-monorepo".
|
||||
|
||||

|
||||
|
||||
### Configuring Authentication
|
||||
|
||||
#### Using an App Password
|
||||
|
||||
To use an app password for authentication, one must be generated with proper permissions. The minimum required permissions are write access to PRs.
|
||||
|
||||

|
||||
|
||||
Once the app password is created, verify the username is correct, paste the value, and then click "Connect". This will verify that Nx Cloud can connect to your repo. Upon a successful test, your configuration is saved, and setup is complete.
|
||||
|
||||
{% callout type="note" title="Use the correct username" %}
|
||||
Make sure that you are using your Bitbucket username, found on the [account settings](https://bitbucket.org/account/settings/) screen, and not your email address.
|
||||
{% /callout %}
|
||||
|
After Width: | Height: | Size: 186 KiB |
@@ -0,0 +1,46 @@
|
||||
# Enable Bitbucket Integration
|
||||
|
||||
## Get Started
|
||||
|
||||
The Nx Cloud + Bitbucket Integration lets you access the result of every run—with all its logs and build insights—straight from your PR.
|
||||
|
||||
### Allow NxCloud to authenticate to your BitBucket repository
|
||||
|
||||
#### Using an App Password
|
||||
|
||||
If you are using BitBucket Cloud (bitbucket.org) and are not self-hosting it, you can enable an ["app password" for authentication](https://support.atlassian.com/bitbucket-cloud/docs/create-an-app-password).
|
||||
|
||||
The minimum required permissions are write access to PRs:
|
||||
|
||||

|
||||
|
||||
Once the app password is created, save it in a secure location and then head back to your workspace settings on NxCloud and let's set up a BitBucket integration:
|
||||
|
||||

|
||||
|
||||
1. Fill-in all the required fields for selecting your Bitbucket repository
|
||||
2. Username is found on the [account settings](https://bitbucket.org/account/settings/) screen (it is not your email address)
|
||||
3. Paste your app password created earlier into the Access Token box
|
||||
4. That's it!
|
||||
|
||||
#### Using an HTTP Access Tokens
|
||||
|
||||
If you are using BitBucket Data Center (on-prem) you need to enable ["HTTP Access Tokens" for authentication](https://confluence.atlassian.com/bitbucketserver/http-access-tokens-939515499.html).
|
||||
|
||||
{% callout type="note" title="User linked access tokens" %}
|
||||
Due to the type of APIs NxCloud needs to call, we need to create an access [**at the user level**](https://confluence.atlassian.com/bitbucketserver/http-access-tokens-939515499.html). Repo level access tokens will not work.
|
||||
{% /callout %}
|
||||
|
||||
The minimum required permissions are write access to the repository:
|
||||
|
||||

|
||||
|
||||
Once the token is created, save it in a secure location and then head back to your workspace settings on NxCloud and let's set up a BitBucket integration:
|
||||
|
||||

|
||||
|
||||
1. Fill-in all the required fields for selecting your Bitbucket repository
|
||||
2. Username is found on the [account settings](https://your-bitbucket-instance.com/profile) screen (it is not your email address)
|
||||
3. Paste your access token created earlier into the Access Token box
|
||||
4. Make sure you give NxCloud the URL of your BitBucket instance (this can be in the simple form of `https://your-bitbucket-instance.com`)
|
||||
5. That's it!
|
||||
|
After Width: | Height: | Size: 267 KiB |
|
After Width: | Height: | Size: 376 KiB |
@@ -0,0 +1,78 @@
|
||||
# Explain with AI (beta)
|
||||
|
||||
"Explain with AI" in Nx Cloud leverages artificial intelligence to provide detailed explanations and insights for failed task outputs.
|
||||
This feature helps developers understand complex errors quickly and offers suggestions for improvements, making the debugging process more efficient.
|
||||
|
||||
With the power of Nx Cloud, all explanations will be provided with additional context from Nx targets and metadata. This ensures that the AI responses have the correct context related to your failed task. This means that if you're trying to debug failed Gradle tasks, the AI will know to help you specifically with Gradle.
|
||||
|
||||
## What You Need to Enable This Feature
|
||||
|
||||
To use the "Explain with AI" feature, you need to [enable AI features for your organization](/ci/features/nx-cloud-ai).
|
||||
|
||||
- For enterprise on-prem customers, this feature is not enabled by default. You need to explicitly [enable AI features through environment flags](#how-to-enable-ai-features-for-enterprise-onprem-installations).
|
||||
- For public cloud users, the AI feature is enabled automatically, [except for those in the EU due to regional restrictions](#regional-availability).
|
||||
- This feature is not available for hobby (free) plans on Nx Cloud.
|
||||
|
||||
## How to Use
|
||||
|
||||
{% callout type="check" title="Authentication Required" %}
|
||||
If you don't see the "Explain with AI" button, make sure that you are logged into the application.
|
||||
{% /callout %}
|
||||
|
||||
1. **Access the Task**:
|
||||
|
||||
- First, navigate to the Nx Cloud dashboard and locate the task that failed.
|
||||
- Click on the task to open the detailed view.
|
||||
|
||||
2. **Initiate AI Explanation**:
|
||||
|
||||
- Within the task details, find the "Explain with AI" button.
|
||||
- Click on this button to start the AI analysis.
|
||||

|
||||
|
||||
3. **Review the Explanation**:
|
||||
|
||||
- The AI will analyze the error log with additional context from the project task and provide a detailed explanation of the failure.
|
||||
- It will also offer suggestions on how to resolve the issue.
|
||||

|
||||
|
||||
4. **Implement the Suggestions**:
|
||||
|
||||
- Go through the AI-generated suggestions carefully.
|
||||
- Apply the recommended changes to your codebase.
|
||||
|
||||
5. **Verify the Fix**:
|
||||
|
||||
- After making the changes, rerun the task to see if the issue is resolved.
|
||||
|
||||
6. **Mark answer as not helpful** (optional):
|
||||
- If the suggested changes did not help you, click on "Set answer as not helpful". This allows us to continuously improve the responses.
|
||||
|
||||
## How to Enable AI Features for Enterprise On-Prem Installations
|
||||
|
||||
To enable AI features for enterprise on-prem installations, add the following configuration to your `helm-values.yaml` file:
|
||||
|
||||
```yaml
|
||||
nxApi
|
||||
deployment:
|
||||
env:
|
||||
- name: NX_CLOUD_AI_ENABLED
|
||||
value: 'true'
|
||||
|
||||
frontend
|
||||
deployment:
|
||||
env:
|
||||
- name: OPENAI_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: open-ai-secrets
|
||||
key: OPENAI_SECRET_KEY
|
||||
- name: NX_CLOUD_AI_ENABLED
|
||||
value: 'true'
|
||||
```
|
||||
|
||||
Make sure your OpenAI secret key is correctly configured to provide the necessary credits for `gpt-3.5-turbo` and `gpt-4o`.
|
||||
|
||||
### Regional Availability
|
||||
|
||||
This feature is not available for the EU cluster in public cloud installations due to regional restrictions. However, on-prem customers in the EU can still use this feature by providing their own OpenAI secret key and enabling the required environment variables.
|
||||
@@ -37,7 +37,7 @@ For a more thorough explanation of how Nx Agents optimizes your CI pipeline, rea
|
||||
|
||||
To enable task distribution with Nx Agents, there are two requirements:
|
||||
|
||||
1. Enable version control system integration. The integrations currently available are [GitHub](/ci/recipes/source-control-integration/github), [GitLab](/ci/recipes/source-control-integration/gitlab), [Bitbucket](/ci/recipes/source-control-integration/bitbucket-cloud) and [Azure DevOps](/ci/recipes/source-control-integration/azure-devops). These integrations can be enabled from your [Nx Cloud dashboard](https://nx.app).
|
||||
1. Enable version control system integration. The integrations currently available are [GitHub](/ci/recipes/source-control-integration/github), [GitLab](/ci/recipes/source-control-integration/gitlab), [Bitbucket](/ci/recipes/source-control-integration/bitbucket) and [Azure DevOps](/ci/recipes/source-control-integration/azure-devops). These integrations can be enabled from your [Nx Cloud dashboard](https://nx.app).
|
||||
2. Add a single line to your CI pipeline configuration.
|
||||
|
||||
Add the `start-ci-run` command to your CI pipeline configuration after checking out the repository and before installing `node_modules`:
|
||||
|
||||
@@ -10,7 +10,7 @@ In this diagram, Teika runs the build once on his machine, then CI, Kimiko and J
|
||||
|
||||
## Setting Up Nx Cloud
|
||||
|
||||
To use **Nx Replay** you need to connect your workspace to Nx Cloud. See the [connect to Nx Cloud recipe](/ci/recipes/set-up/connect-to-cloud).
|
||||
To use **Nx Replay** you need to connect your workspace to Nx Cloud. See the [connect to Nx Cloud recipe](/ci/intro/connect-to-nx-cloud).
|
||||
|
||||
## See Remote Caching in Action
|
||||
|
||||
|
||||
@@ -17,10 +17,32 @@ Find out more about [why you should use Nx](/getting-started/why-nx) or browse o
|
||||
|
||||
## Try Nx Yourself!
|
||||
|
||||
```shell
|
||||
npx create-nx-workspace@latest
|
||||
{% side-by-side %}
|
||||
|
||||
```shell {% title="Create a new workspace" %}
|
||||
npx create-nx-workspace
|
||||
```
|
||||
|
||||
```shell {% title="Add Nx to an existing workspace" %}
|
||||
npx nx init
|
||||
```
|
||||
|
||||
{% /side-by-side %}
|
||||
|
||||
Also, here are some recipes that give you more details based on the technology stack you're using:
|
||||
|
||||
{% cards cols="2" mdCols="4" smCols="2" moreLink="/recipes/adopting-nx" %}
|
||||
|
||||
{% link-card title="Add to Existing Monorepo" appearance="small" url="/recipes/adopting-nx/adding-to-monorepo" icon="pnpm" /%}
|
||||
|
||||
{% link-card title="Add to Any Project" appearance="small" url="/recipes/adopting-nx/adding-to-existing-project" icon="nx" /%}
|
||||
|
||||
{% link-card title="Migrate from Angular CLI" appearance="small" url="/recipes/angular/migration/angular" icon="angular" /%}
|
||||
|
||||
{% /cards %}
|
||||
{% /tab %}
|
||||
{% /tabs %}
|
||||
|
||||
## Learn Nx
|
||||
|
||||
{% cards cols="2" lgCols="4" mdCols="4" smCols="2" %}
|
||||
@@ -57,26 +79,6 @@ npx create-nx-workspace@latest
|
||||
|
||||
{% /cards %}
|
||||
|
||||
## Have an Existing Project? Add Nx to it!
|
||||
|
||||
If you have an existing project and want to adopt Nx or migrate to Nx just run the following command which guides you through the migration process:
|
||||
|
||||
```shell
|
||||
npx nx@latest init
|
||||
```
|
||||
|
||||
Alternatively, here are some recipes that give you more details based on the technology stack you're using:
|
||||
|
||||
{% cards cols="2" mdCols="4" smCols="2" moreLink="/recipes/adopting-nx" %}
|
||||
|
||||
{% link-card title="Add to Existing Monorepo" appearance="small" url="/recipes/adopting-nx/adding-to-monorepo" icon="pnpm" /%}
|
||||
|
||||
{% link-card title="Add to Any Project" appearance="small" url="/recipes/adopting-nx/adding-to-existing-project" icon="nx" /%}
|
||||
|
||||
{% link-card title="Migrate from Angular CLI" appearance="small" url="/recipes/angular/migration/angular" icon="angular" /%}
|
||||
|
||||
{% /cards %}
|
||||
|
||||
## Pick Your Stack!
|
||||
|
||||
{% cards cols="3" lgCols="8" mdCols="6" smCols="5" moreLink="/showcase/example-repos" %}
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# React Compiler with Nx
|
||||
|
||||
React 19 comes with an experimental compiler that optimizes application code to automatically memoize code. Read the [official React Compiler documentation](https://react.dev/learn/react-compiler) for more information.
|
||||
|
||||
## Enabling React Compiler in Nx Projects
|
||||
|
||||
For Nx projects using Babel and the `@nx/react/babel` preset, install the `babel-plugin-react-compiler` package and enable it with the `reactCompiler` option.
|
||||
|
||||
```json {% highlightLines=[7] %}
|
||||
{
|
||||
"presets": [
|
||||
[
|
||||
"@nx/react/babel",
|
||||
{
|
||||
"runtime": "automatic",
|
||||
"reactCompiler": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"plugins": []
|
||||
}
|
||||
```
|
||||
|
||||
You can also pass an object to set compiler options.
|
||||
|
||||
```json {% highlightLines=["7-9"] %}
|
||||
{
|
||||
"presets": [
|
||||
[
|
||||
"@nx/react/babel",
|
||||
{
|
||||
"runtime": "automatic",
|
||||
"reactCompiler": {
|
||||
"compilationMode": "annotation"
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"plugins": []
|
||||
}
|
||||
```
|
||||
|
||||
Check the [React Compiler usage docs](https://react.dev/learn/react-compiler#installation) for all support setups, such as Vite, Remix, etc.
|
||||
|
Before Width: | Height: | Size: 458 KiB |
@@ -14,6 +14,7 @@ We provide a recommended version, and it is usually the latest minor version of
|
||||
|
||||
| Angular Version | **Nx Version _(recommended)_** | Nx Version _(range)_ |
|
||||
| --------------- | ------------------------------ | ---------------------------------------- |
|
||||
| ~18.1.0 | **latest** | >=19.5.0 <=latest |
|
||||
| ~18.0.0 | **latest** | >=19.1.0 <=latest |
|
||||
| ~17.3.0 | **latest** | >=18.2.0 <=latest |
|
||||
| ~17.2.0 | **latest** | >=18.1.1 <=latest |
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
- [Features](/features)
|
||||
- [Run Tasks](/features/run-tasks)
|
||||
- [Cache Task Results](/features/cache-task-results)
|
||||
- [Explore your Workspace](/features/explore-graph)
|
||||
- [Explore Your Workspace](/features/explore-graph)
|
||||
- [Generate Code](/features/generate-code)
|
||||
- [Automate Updating Dependencies](/features/automate-updating-dependencies)
|
||||
- [Enforce Module Boundaries](/features/enforce-module-boundaries)
|
||||
@@ -76,6 +76,7 @@
|
||||
- [Adding Images, Fonts, and Files](/recipes/react/adding-assets-react)
|
||||
- [Setup Module Federation with SSR for React](/recipes/react/module-federation-with-ssr)
|
||||
- [Deploying Next.js applications to Vercel](/recipes/react/deploy-nextjs-to-vercel)
|
||||
- [React Compiler with Nx](/recipes/react/react-compiler)
|
||||
- [Angular](/recipes/angular)
|
||||
- [Migration](/recipes/angular/migration)
|
||||
- [Migrating from Angular CLI](/recipes/angular/migration/angular)
|
||||
@@ -245,6 +246,7 @@
|
||||
- [Intro](/ci/intro)
|
||||
- [CI with Nx](/ci/intro/ci-with-nx)
|
||||
- [Why Nx Cloud?](/ci/intro/why-nx-cloud)
|
||||
- [Connect to Nx Cloud](/ci/intro/connect-to-nx-cloud)
|
||||
- [Tutorials](/ci/intro/tutorials)
|
||||
- [Circle CI with Nx](/ci/intro/tutorials/circle)
|
||||
- [GitHub Actions with Nx](/ci/intro/tutorials/github-actions)
|
||||
@@ -252,10 +254,10 @@
|
||||
- [Run Only Tasks Affected by a PR](/ci/features/affected)
|
||||
- [Use Remote Caching (Nx Replay)](/ci/features/remote-cache)
|
||||
- [Distribute Task Execution (Nx Agents)](/ci/features/distribute-task-execution)
|
||||
- [Nx Cloud AI](/ci/features/nx-cloud-ai)
|
||||
- [Dynamically Allocate Agents](/ci/features/dynamic-agents)
|
||||
- [Automatically Split E2E Tasks (Atomizer)](/ci/features/split-e2e-tasks)
|
||||
- [Identify and Re-run Flaky Tasks](/ci/features/flaky-tasks)
|
||||
- [Set up Nx Cloud On-Premise](/ci/features/on-premise)
|
||||
- [Concepts](/ci/concepts)
|
||||
- [The Building Blocks of Fast CI](/ci/concepts/building-blocks-fast-ci)
|
||||
- [Reduce Wasted Time in CI](/ci/concepts/reduce-waste)
|
||||
@@ -263,7 +265,6 @@
|
||||
- [Cache Security](/ci/concepts/cache-security)
|
||||
- [Recipes](/ci/recipes)
|
||||
- [Set Up CI](/ci/recipes/set-up)
|
||||
- [Connect Nx Cloud](/ci/recipes/set-up/connect-to-cloud)
|
||||
- [Setting up Azure Pipelines](/ci/recipes/set-up/monorepo-ci-azure)
|
||||
- [Setting up CircleCI](/ci/recipes/set-up/monorepo-ci-circle-ci)
|
||||
- [Setting up GitHub Actions](/ci/recipes/set-up/monorepo-ci-github-actions)
|
||||
@@ -276,16 +277,18 @@
|
||||
- [Enable End to End Encryption](/ci/recipes/security/encryption)
|
||||
- [Source Control Integration](/ci/recipes/source-control-integration)
|
||||
- [Enable GitHub PR Integration](/ci/recipes/source-control-integration/github)
|
||||
- [Enable Bitbucket Cloud PR Integration](/ci/recipes/source-control-integration/bitbucket-cloud)
|
||||
- [Enable Bitbucket PR Integration](/ci/recipes/source-control-integration/bitbucket)
|
||||
- [Enable GitLab MR Integration](/ci/recipes/source-control-integration/gitlab)
|
||||
- [Enable Azure DevOps PR Integration](/ci/recipes/source-control-integration/azure-devops)
|
||||
- [Enterprise](/ci/recipes/enterprise)
|
||||
- [On-Premise](/ci/recipes/enterprise/on-premise)
|
||||
- [Set up Nx Cloud On-Premise](/ci/recipes/enterprise/on-premise/on-premise)
|
||||
- [Authenticate with a Single Admin](/ci/recipes/enterprise/on-premise/auth-single-admin)
|
||||
- [Authenticate with GitHub](/ci/recipes/enterprise/on-premise/auth-github)
|
||||
- [On-Prem VM Setup](/ci/recipes/enterprise/on-premise/ami-setup)
|
||||
- [Authenticate with GitLab](/ci/recipes/enterprise/on-premise/auth-gitlab)
|
||||
- [Authenticate with BitBucket](/ci/recipes/enterprise/on-premise/auth-bitbucket)
|
||||
- [Authenticate with BitBucket Data Center](/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center)
|
||||
- [Authenticate via SAML](/ci/recipes/enterprise/on-premise/auth-saml)
|
||||
- [Authenticate via SAML on Managed Version](/ci/recipes/enterprise/on-premise/auth-saml-managed)
|
||||
- [Advanced Configuration](/ci/recipes/enterprise/on-premise/advanced-config)
|
||||
@@ -309,6 +312,7 @@
|
||||
- [Release Notes](/ci/reference/release-notes)
|
||||
- [Troubleshooting](/ci/troubleshooting)
|
||||
- [CI Execution Failed](/ci/troubleshooting/ci-execution-failed)
|
||||
- [Explain With AI](/ci/troubleshooting/explain-with-ai)
|
||||
|
||||
- Nx-api
|
||||
- [angular](/nx-api/angular)
|
||||
|
||||
@@ -1307,5 +1307,5 @@ Also, make sure you
|
||||
|
||||
- [Join the Official Nx Discord Server](https://go.nx.dev/community) to ask questions and find out the latest news about Nx.
|
||||
- [Follow Nx on Twitter](https://twitter.com/nxdevtools) to stay up to date with Nx news
|
||||
- [Read our Nx blog](https://blog.nrwl.io/)
|
||||
- [Read our Nx blog](/blog)
|
||||
- [Subscribe to our Youtube channel](https://www.youtube.com/@nxdevtools) for demos and Nx insights
|
||||
|
||||
@@ -1114,5 +1114,5 @@ Also, make sure you
|
||||
|
||||
- [Join the Official Nx Discord Server](https://go.nx.dev/community) to ask questions and find out the latest news about Nx.
|
||||
- [Follow Nx on Twitter](https://twitter.com/nxdevtools) to stay up to date with Nx news
|
||||
- [Read our Nx blog](https://blog.nrwl.io/)
|
||||
- [Read our Nx blog](/blog)
|
||||
- [Subscribe to our Youtube channel](https://www.youtube.com/@nxdevtools) for demos and Nx insights
|
||||
|
||||
@@ -343,5 +343,5 @@ Connect with the rest of the Nx community with these resources:
|
||||
- [Join the Official Nx Discord Server](https://go.nx.dev/community) to ask questions and find out the latest news about
|
||||
Nx.
|
||||
- [Follow Nx on Twitter](https://twitter.com/nxdevtools) to stay up to date with Nx news
|
||||
- [Read our Nx blog](https://blog.nrwl.io/)
|
||||
- [Read our Nx blog](/blog)
|
||||
- [Subscribe to our Youtube channel](https://www.youtube.com/@nxdevtools) for demos and Nx insights
|
||||
|
||||
@@ -444,5 +444,5 @@ Connect with the rest of the Nx community with these resources:
|
||||
|
||||
- [Join the Official Nx Discord Server](https://go.nx.dev/community) to ask questions and find out the latest news about Nx.
|
||||
- [Follow Nx on Twitter](https://twitter.com/nxdevtools) to stay up to date with Nx news
|
||||
- [Read our Nx blog](https://blog.nrwl.io/)
|
||||
- [Read our Nx blog](/blog)
|
||||
- [Subscribe to our Youtube channel](https://www.youtube.com/@nxdevtools) for demos and Nx insights
|
||||
|
||||
@@ -509,7 +509,7 @@ export default App;
|
||||
|
||||
Serving your app (`nx serve react-store`) and then navigating to `/products` should give you the following result:
|
||||
|
||||

|
||||

|
||||
|
||||
Let's apply the same for our `orders` library.
|
||||
|
||||
@@ -1026,9 +1026,7 @@ NX Ran target lint for 7 projects (2s)
|
||||
- nx run products:lint
|
||||
```
|
||||
|
||||
If you have the ESLint plugin installed in your IDE you should immediately see an error:
|
||||
|
||||

|
||||
If you have the ESLint plugin installed in your IDE you should also immediately see an error.
|
||||
|
||||
Learn more about how to [enforce module boundaries](/features/enforce-module-boundaries).
|
||||
|
||||
@@ -1106,5 +1104,5 @@ Also, make sure you
|
||||
|
||||
- [Join the Official Nx Discord Server](https://go.nx.dev/community) to ask questions and find out the latest news about Nx.
|
||||
- [Follow Nx on Twitter](https://twitter.com/nxdevtools) to stay up to date with Nx news
|
||||
- [Read our Nx blog](https://blog.nrwl.io/)
|
||||
- [Read our Nx blog](/blog)
|
||||
- [Subscribe to our Youtube channel](https://www.youtube.com/@nxdevtools) for demos and Nx insights
|
||||
|
||||
@@ -0,0 +1,248 @@
|
||||
{
|
||||
"project": {
|
||||
"name": "react-app",
|
||||
"type": "lib",
|
||||
"data": {
|
||||
"root": ".",
|
||||
"targets": {
|
||||
"vite:build": {
|
||||
"options": {
|
||||
"cwd": ".",
|
||||
"command": "vite build"
|
||||
},
|
||||
"cache": true,
|
||||
"dependsOn": ["^vite:build"],
|
||||
"inputs": [
|
||||
"default",
|
||||
"^default",
|
||||
{
|
||||
"externalDependencies": ["vite"]
|
||||
}
|
||||
],
|
||||
"outputs": ["{projectRoot}/dist"],
|
||||
"executor": "nx:run-commands",
|
||||
"configurations": {}
|
||||
},
|
||||
"build": {
|
||||
"executor": "nx:run-script",
|
||||
"metadata": {
|
||||
"scriptContent": "nx vite:build",
|
||||
"runCommand": "npm run build"
|
||||
},
|
||||
"cache": true,
|
||||
"dependsOn": ["typecheck"],
|
||||
"options": {
|
||||
"script": "build"
|
||||
},
|
||||
"configurations": {}
|
||||
}
|
||||
},
|
||||
"sourceRoot": ".",
|
||||
"name": "react-app",
|
||||
"projectType": "library",
|
||||
"metadata": {
|
||||
"targetGroups": {
|
||||
"NPM Scripts": ["build"]
|
||||
}
|
||||
},
|
||||
"implicitDependencies": [],
|
||||
"tags": []
|
||||
}
|
||||
},
|
||||
"sourceMap": {
|
||||
"root": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.options": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.cache": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.dependsOn": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.inputs": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.outputs": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.executor": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.options.cwd": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.options.command": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.serve": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.serve.options": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.serve.executor": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.serve.options.cwd": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.serve.options.command": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:preview": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:preview.options": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:preview.executor": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:preview.options.cwd": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:preview.options.command": [
|
||||
"vite.config.ts",
|
||||
"@nx/vite/plugin"
|
||||
],
|
||||
"targets.serve-static": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.serve-static.executor": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.serve-static.options": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.serve-static.options.buildTarget": [
|
||||
"vite.config.ts",
|
||||
"@nx/vite/plugin"
|
||||
],
|
||||
"targets.serve-static.options.spa": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.eslint:lint": [".eslintrc.cjs", "@nx/eslint/plugin"],
|
||||
"targets.eslint:lint.cache": [".eslintrc.cjs", "@nx/eslint/plugin"],
|
||||
"targets.eslint:lint.options": [".eslintrc.cjs", "@nx/eslint/plugin"],
|
||||
"targets.eslint:lint.inputs": [".eslintrc.cjs", "@nx/eslint/plugin"],
|
||||
"targets.eslint:lint.outputs": [".eslintrc.cjs", "@nx/eslint/plugin"],
|
||||
"targets.eslint:lint.executor": [".eslintrc.cjs", "@nx/eslint/plugin"],
|
||||
"targets.eslint:lint.options.cwd": [".eslintrc.cjs", "@nx/eslint/plugin"],
|
||||
"targets.eslint:lint.options.command": [
|
||||
".eslintrc.cjs",
|
||||
"@nx/eslint/plugin"
|
||||
],
|
||||
"targets.typecheck": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets.typecheck.executor": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.typecheck.options": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.typecheck.metadata": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.typecheck.cache": ["nx.json", "nx/core/target-defaults"],
|
||||
"targets.typecheck.options.script": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.typecheck.metadata.scriptContent": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.typecheck.metadata.runCommand": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets.build.executor": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build.options": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build.metadata": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build.cache": ["nx.json", "nx/core/target-defaults"],
|
||||
"targets.build.options.script": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build.metadata.scriptContent": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build.metadata.runCommand": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.lint": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets.lint.executor": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.lint.options": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets.lint.metadata": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.lint.cache": ["nx.json", "nx/core/target-defaults"],
|
||||
"targets.lint.options.script": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.lint.metadata.scriptContent": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.lint.metadata.runCommand": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"sourceRoot": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"name": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"projectType": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"metadata.targetGroups": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.0": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.1": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.2": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.3": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.4": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.dev": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets.dev.executor": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets.dev.options": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets.dev.metadata": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets.dev.options.script": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.dev.metadata.scriptContent": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.dev.metadata.runCommand": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build.dependsOn": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.preview": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets.preview.executor": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.preview.options": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.preview.metadata": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.preview.options.script": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.preview.metadata.scriptContent": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.preview.metadata.runCommand": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 166 KiB |
@@ -0,0 +1,186 @@
|
||||
{
|
||||
"project": {
|
||||
"name": "vue-app",
|
||||
"type": "lib",
|
||||
"data": {
|
||||
"root": ".",
|
||||
"targets": {
|
||||
"vite:build": {
|
||||
"options": {
|
||||
"cwd": ".",
|
||||
"command": "vite build"
|
||||
},
|
||||
"cache": true,
|
||||
"dependsOn": ["^vite:build"],
|
||||
"inputs": [
|
||||
"default",
|
||||
"^default",
|
||||
{
|
||||
"externalDependencies": ["vite"]
|
||||
}
|
||||
],
|
||||
"outputs": ["{projectRoot}/dist"],
|
||||
"executor": "nx:run-commands",
|
||||
"configurations": {}
|
||||
},
|
||||
"build-only": {
|
||||
"executor": "nx:run-script",
|
||||
"metadata": {
|
||||
"scriptContent": "nx vite:build",
|
||||
"runCommand": "npm run build-only"
|
||||
},
|
||||
"outputs": ["{projectRoot}/dist"],
|
||||
"cache": true,
|
||||
"options": {
|
||||
"script": "build-only"
|
||||
},
|
||||
"configurations": {}
|
||||
},
|
||||
"build": {
|
||||
"executor": "nx:run-script",
|
||||
"metadata": {
|
||||
"scriptContent": "nx exec -- echo 'Ran type-check and build-only'",
|
||||
"runCommand": "npm run build"
|
||||
},
|
||||
"dependsOn": [
|
||||
"type-check",
|
||||
{
|
||||
"target": "build-only",
|
||||
"params": "forward"
|
||||
}
|
||||
],
|
||||
"options": {
|
||||
"script": "build"
|
||||
},
|
||||
"configurations": {}
|
||||
}
|
||||
},
|
||||
"sourceRoot": ".",
|
||||
"name": "vue-app",
|
||||
"projectType": "library",
|
||||
"metadata": {
|
||||
"targetGroups": {
|
||||
"NPM Scripts": ["build", "build-only"]
|
||||
}
|
||||
},
|
||||
"implicitDependencies": [],
|
||||
"tags": []
|
||||
}
|
||||
},
|
||||
"sourceMap": {
|
||||
"root": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.options": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.cache": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.dependsOn": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.inputs": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.outputs": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.executor": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.options.cwd": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.vite:build.options.command": ["vite.config.ts", "@nx/vite/plugin"],
|
||||
"targets.build-only": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets.build-only.executor": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build-only.options": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build-only.metadata": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build-only.outputs": ["nx.json", "nx/core/target-defaults"],
|
||||
"targets.build-only.cache": ["nx.json", "nx/core/target-defaults"],
|
||||
"targets.build-only.options.script": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build-only.metadata.scriptContent": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build-only.metadata.runCommand": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"sourceRoot": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"name": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"projectType": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"metadata.targetGroups": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.0": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.1": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.2": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.3": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.4": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.5": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.6": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.7": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"metadata.targetGroups.NPM Scripts.8": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build": ["package.json", "nx/core/package-json-workspaces"],
|
||||
"targets.build.executor": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build.metadata": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build.dependsOn": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build.options": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build.options.script": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build.metadata.scriptContent": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
],
|
||||
"targets.build.metadata.runCommand": [
|
||||
"package.json",
|
||||
"nx/core/package-json-workspaces"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 30 KiB |
@@ -4,62 +4,6 @@
|
||||
"sourceRoot": "e2e/angular",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["angular"],
|
||||
"targets": {
|
||||
"e2e-ci--src/config.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/cypress-component-tests.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/misc.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/module-federation.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/ng-add.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/projects.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/tailwind.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/ngrx.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-angular --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -408,7 +408,7 @@ describe('Angular Projects', () => {
|
||||
|
||||
let mainBundle = readFile(`dist/${esbuildApp}/browser/main.js`);
|
||||
expect(mainBundle).toContain(
|
||||
'this.buildDefined = "Value was provided at build time";'
|
||||
'buildDefined = "Value was provided at build time";'
|
||||
);
|
||||
|
||||
// check @nx/angular:browser-esbuild
|
||||
@@ -426,7 +426,7 @@ describe('Angular Projects', () => {
|
||||
|
||||
mainBundle = readFile(`dist/${esbuildApp}/main.js`);
|
||||
expect(mainBundle).toContain(
|
||||
'this.buildDefined = "Value was provided at build time";'
|
||||
'buildDefined = "Value was provided at build time";'
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
@@ -4,20 +4,6 @@
|
||||
"sourceRoot": "e2e/cypress",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["cypress", "react"],
|
||||
"targets": {
|
||||
"e2e-ci--src/cypress.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/cypress-legacy.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-cypress --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -9,8 +9,7 @@ import {
|
||||
|
||||
const TEN_MINS_MS = 600_000;
|
||||
|
||||
// TODO(colum): Re-enable after investigation into Cypress 13.12 and Xvfb
|
||||
xdescribe('Cypress E2E Test runner (legacy)', () => {
|
||||
describe('Cypress E2E Test runner (legacy)', () => {
|
||||
beforeAll(() => {
|
||||
newProject({ packages: ['@nx/angular', '@nx/react'] });
|
||||
});
|
||||
|
||||
@@ -18,20 +18,6 @@
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/detox-legacy.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/detox.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,13 +4,6 @@
|
||||
"sourceRoot": "e2e/esbuild",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["esbuild"],
|
||||
"targets": {
|
||||
"e2e-ci--src/esbuild.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-esbuild --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -4,20 +4,6 @@
|
||||
"sourceRoot": "e2e/eslint",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["eslint"],
|
||||
"targets": {
|
||||
"e2e-ci--src/linter.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/linter-legacy.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-eslint --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -10,20 +10,6 @@
|
||||
},
|
||||
"e2e-macos-ci--src/expo-legacy.test.ts": {
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/expo-legacy.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/expo.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,13 +4,6 @@
|
||||
"sourceRoot": "e2e/gradle",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["eslint"],
|
||||
"targets": {
|
||||
"e2e-ci--src/gradle.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-gradle --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -4,27 +4,6 @@
|
||||
"sourceRoot": "e2e/jest",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["jest"],
|
||||
"targets": {
|
||||
"e2e-ci--src/jest.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/jest-legacy.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/jest-root.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-jest --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -5,47 +5,12 @@
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["jest"],
|
||||
"targets": {
|
||||
"e2e-ci--src/js-executor-node.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/js-executor-swc.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/js-executor-tsc.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/js-generators.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs"]
|
||||
},
|
||||
"e2e-ci--src/js-inlining.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/js-packaging.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,7 +60,12 @@ describe('js:tsc executor', () => {
|
||||
});
|
||||
const libBuildProcess = await runCommandUntil(
|
||||
`build ${lib} --watch`,
|
||||
(output) => output.includes(`Watching for file changes`)
|
||||
(output) => output.includes(`Watching for file changes`),
|
||||
{
|
||||
env: {
|
||||
NX_DAEMON: 'true',
|
||||
},
|
||||
}
|
||||
);
|
||||
updateFile(`libs/${lib}/README.md`, `Hello, World!`);
|
||||
updateJson(`libs/${lib}/package.json`, (json) => {
|
||||
|
||||
@@ -4,13 +4,6 @@
|
||||
"sourceRoot": "e2e/lerna-smoke-tests",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["nx", "devkit"],
|
||||
"targets": {
|
||||
"e2e-ci--src/lerna-smoke-tests.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-lerna-smoke-tests --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -4,76 +4,6 @@
|
||||
"sourceRoot": "e2e/next/src",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["next"],
|
||||
"targets": {
|
||||
"e2e-ci--src/next.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/next-appdir.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/next-component-tests.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/next-legacy.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/next-playwright.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/next-playwright-standalone-eslint.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/next-storybook.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/next-styles.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/next-svgr.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/next-webpack.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-next --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -5,40 +5,12 @@
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["node", "nest", "webpack"],
|
||||
"targets": {
|
||||
"e2e-ci--src/node.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/node-esbuild.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/node-server.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/webpack.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs"]
|
||||
},
|
||||
"e2e-ci--src/node-webpack.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`Node Applications + webpack should generate a Dockerfile 1`] = `
|
||||
"# This file is generated by Nx.
|
||||
#
|
||||
# Build the docker image with \`npx nx docker-build docker-express-app\`.
|
||||
# Tip: Modify "docker-build" options in project.json to change docker build args.
|
||||
#
|
||||
# Run the container with \`docker run -p 3000:3000 -t docker-express-app\`.
|
||||
FROM docker.io/node:lts-alpine
|
||||
|
||||
ENV HOST=0.0.0.0
|
||||
ENV PORT=3000
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN addgroup --system docker-express-app && \\
|
||||
adduser --system -G docker-express-app docker-express-app
|
||||
|
||||
COPY dist/apps/docker-express-app docker-express-app/
|
||||
RUN chown -R docker-express-app:docker-express-app .
|
||||
|
||||
# You can remove this install step if you build with \`--bundle\` option.
|
||||
# The bundled output will include external dependencies.
|
||||
RUN npm --prefix docker-express-app --omit=dev -f install
|
||||
|
||||
CMD [ "node", "docker-express-app" ]
|
||||
"
|
||||
`;
|
||||
@@ -2,6 +2,7 @@ import {
|
||||
checkFilesDoNotExist,
|
||||
checkFilesExist,
|
||||
cleanupProject,
|
||||
getSelectedPackageManager,
|
||||
killPort,
|
||||
newProject,
|
||||
promisifiedTreeKill,
|
||||
@@ -14,11 +15,19 @@ import {
|
||||
} from '@nx/e2e/utils';
|
||||
import { join } from 'path';
|
||||
|
||||
xdescribe('Node Applications + webpack', () => {
|
||||
describe('Node Applications + webpack', () => {
|
||||
let proj: string;
|
||||
const selectedPm = getSelectedPackageManager();
|
||||
|
||||
// TODO(nicholas): Look into how this can work with npm instead of forcing pnpm.
|
||||
beforeAll(() => {
|
||||
proj = newProject({
|
||||
packages: ['@nx/node'],
|
||||
// npm has resolution for ajv some packages require ajv6 and some require ajv8 and npm resolves it to ajv6 (Error: Cannot find module 'ajv/dist/compile/codegen')
|
||||
// - ajv@6 (fork-ts-checker-webpack-plugin, terser-webpack-plugin, webpack)
|
||||
// - ajv@8 (babel-loader)
|
||||
// Solution is to use pnpm or run fix it via npm ex.(npm dedupe --force)
|
||||
packageManager: selectedPm === 'npm' ? 'pnpm' : selectedPm,
|
||||
});
|
||||
});
|
||||
|
||||
@@ -47,10 +56,10 @@ xdescribe('Node Applications + webpack', () => {
|
||||
}
|
||||
}
|
||||
|
||||
async function runE2eTests(appName: string) {
|
||||
process.env.PORT = '5000';
|
||||
async function runE2eTests(appName: string, port: number = 5000) {
|
||||
process.env.PORT = `${port}`;
|
||||
const childProcess = await runCommandUntil(`serve ${appName}`, (output) => {
|
||||
return output.includes('http://localhost:5000');
|
||||
return output.includes(`http://localhost:${port}`);
|
||||
});
|
||||
const result = runCLI(`e2e ${appName}-e2e --verbose`);
|
||||
expect(result).toContain('Setting up...');
|
||||
@@ -58,13 +67,11 @@ xdescribe('Node Applications + webpack', () => {
|
||||
expect(result).toContain('Successfully ran target e2e');
|
||||
|
||||
await promisifiedTreeKill(childProcess.pid, 'SIGKILL');
|
||||
await killPort(5000);
|
||||
await killPort(port);
|
||||
process.env.PORT = '';
|
||||
}
|
||||
|
||||
// Disabled due to flakiness of ajv disabled (Error: Cannot find module 'ajv/dist/compile/codegen')
|
||||
// TODO: (nicholas) Re-enable when the flakiness is resolved
|
||||
xit('should generate an app using webpack', async () => {
|
||||
describe('frameworks', () => {
|
||||
const testLib1 = uniq('test1');
|
||||
const testLib2 = uniq('test2');
|
||||
const expressApp = uniq('expressapp');
|
||||
@@ -72,79 +79,98 @@ xdescribe('Node Applications + webpack', () => {
|
||||
const koaApp = uniq('koaapp');
|
||||
const nestApp = uniq('nest');
|
||||
|
||||
runCLI(`generate @nx/node:lib ${testLib1}`);
|
||||
runCLI(`generate @nx/node:lib ${testLib2} --importPath=@acme/test2`);
|
||||
runCLI(
|
||||
`generate @nx/node:app ${expressApp} --framework=express --no-interactive`
|
||||
);
|
||||
runCLI(
|
||||
`generate @nx/node:app ${fastifyApp} --framework=fastify --no-interactive`
|
||||
);
|
||||
runCLI(`generate @nx/node:app ${koaApp} --framework=koa --no-interactive`);
|
||||
runCLI(
|
||||
`generate @nx/node:app ${nestApp} --framework=nest --bundler=webpack --no-interactive`
|
||||
);
|
||||
beforeAll(() => {
|
||||
runCLI(`generate @nx/node:lib ${testLib1}`);
|
||||
runCLI(`generate @nx/node:lib ${testLib2} --importPath=@acme/test2`);
|
||||
runCLI(
|
||||
`generate @nx/node:app ${expressApp} --framework=express --port=7000 --no-interactive`
|
||||
);
|
||||
runCLI(
|
||||
`generate @nx/node:app ${fastifyApp} --framework=fastify --port=7001 --no-interactive`
|
||||
);
|
||||
runCLI(
|
||||
`generate @nx/node:app ${koaApp} --framework=koa --port=7002 --no-interactive`
|
||||
);
|
||||
runCLI(
|
||||
`generate @nx/node:app ${nestApp} --framework=nest --port=7003 --bundler=webpack --no-interactive`
|
||||
);
|
||||
|
||||
// Use esbuild by default
|
||||
checkFilesDoNotExist(`apps/${expressApp}/webpack.config.js`);
|
||||
checkFilesDoNotExist(`apps/${fastifyApp}/webpack.config.js`);
|
||||
checkFilesDoNotExist(`apps/${koaApp}/webpack.config.js`);
|
||||
addLibImport(expressApp, testLib1);
|
||||
addLibImport(expressApp, testLib2, '@acme/test2');
|
||||
addLibImport(fastifyApp, testLib1);
|
||||
addLibImport(fastifyApp, testLib2, '@acme/test2');
|
||||
addLibImport(koaApp, testLib1);
|
||||
addLibImport(koaApp, testLib2, '@acme/test2');
|
||||
|
||||
// Uses only webpack
|
||||
checkFilesExist(`apps/${nestApp}/webpack.config.js`);
|
||||
addLibImport(nestApp, testLib1);
|
||||
addLibImport(nestApp, testLib2, '@acme/test2');
|
||||
});
|
||||
|
||||
expect(() => runCLI(`lint ${expressApp}`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${fastifyApp}`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${koaApp}`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${nestApp}`)).not.toThrow();
|
||||
it('should generate an app defaults using webpack or esbuild', async () => {
|
||||
// Use esbuild by default
|
||||
checkFilesDoNotExist(`apps/${expressApp}/webpack.config.js`);
|
||||
checkFilesDoNotExist(`apps/${fastifyApp}/webpack.config.js`);
|
||||
checkFilesDoNotExist(`apps/${koaApp}/webpack.config.js`);
|
||||
|
||||
expect(() => runCLI(`lint ${expressApp}-e2e`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${fastifyApp}-e2e`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${koaApp}-e2e`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${nestApp}-e2e`)).not.toThrow();
|
||||
// Uses only webpack
|
||||
checkFilesExist(`apps/${nestApp}/webpack.config.js`);
|
||||
|
||||
// Only Fastify generates with unit tests since it supports them without additional libraries.
|
||||
expect(() => runCLI(`test ${fastifyApp}`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${expressApp}`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${fastifyApp}`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${koaApp}`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${nestApp}`)).not.toThrow();
|
||||
|
||||
// https://github.com/nrwl/nx/issues/16601
|
||||
const nestMainContent = readFile(`apps/${nestApp}/src/main.ts`);
|
||||
updateFile(
|
||||
`apps/${nestApp}/src/main.ts`,
|
||||
`
|
||||
expect(() => runCLI(`lint ${expressApp}-e2e`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${fastifyApp}-e2e`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${koaApp}-e2e`)).not.toThrow();
|
||||
expect(() => runCLI(`lint ${nestApp}-e2e`)).not.toThrow();
|
||||
|
||||
// Only Fastify generates with unit tests since it supports them without additional libraries.
|
||||
expect(() => runCLI(`test ${fastifyApp}`)).not.toThrow();
|
||||
|
||||
// https://github.com/nrwl/nx/issues/16601
|
||||
const nestMainContent = readFile(`apps/${nestApp}/src/main.ts`);
|
||||
updateFile(
|
||||
`apps/${nestApp}/src/main.ts`,
|
||||
`
|
||||
${nestMainContent}
|
||||
// Make sure this is not replaced during build time
|
||||
console.log('env: ' + process.env['NODE_ENV']);
|
||||
`
|
||||
);
|
||||
runCLI(`build ${nestApp}`);
|
||||
expect(readFile(`dist/apps/${nestApp}/main.js`)).toContain(
|
||||
`'env: ' + process.env['NODE_ENV']`
|
||||
);
|
||||
);
|
||||
runCLI(`build ${nestApp}`);
|
||||
expect(readFile(`dist/apps/${nestApp}/main.js`)).toContain(
|
||||
`'env: ' + process.env['NODE_ENV']`
|
||||
);
|
||||
}, 300_000);
|
||||
|
||||
addLibImport(expressApp, testLib1);
|
||||
addLibImport(expressApp, testLib2, '@acme/test2');
|
||||
addLibImport(fastifyApp, testLib1);
|
||||
addLibImport(fastifyApp, testLib2, '@acme/test2');
|
||||
addLibImport(koaApp, testLib1);
|
||||
addLibImport(koaApp, testLib2, '@acme/test2');
|
||||
it('should e2e test express app', async () => {
|
||||
await runE2eTests(expressApp, 7000);
|
||||
});
|
||||
|
||||
addLibImport(nestApp, testLib1);
|
||||
addLibImport(nestApp, testLib2, '@acme/test2');
|
||||
it('should e2e test fastify app', async () => {
|
||||
await runE2eTests(fastifyApp, 7001);
|
||||
});
|
||||
|
||||
await runE2eTests(expressApp);
|
||||
await runE2eTests(fastifyApp);
|
||||
await runE2eTests(koaApp);
|
||||
await runE2eTests(nestApp);
|
||||
}, 900_000);
|
||||
it('should e2e test koa app', async () => {
|
||||
await runE2eTests(koaApp, 7002);
|
||||
});
|
||||
|
||||
it('should e2e test nest app', async () => {
|
||||
await runE2eTests(nestApp, 7003);
|
||||
});
|
||||
});
|
||||
|
||||
it('should generate a Dockerfile', async () => {
|
||||
const expressApp = uniq('expressapp');
|
||||
const expressApp = 'docker-express-app'; // needs to be consistent for the Dockerfile snapshot
|
||||
|
||||
runCLI(
|
||||
`generate @nx/node:app ${expressApp} --framework=express --docker --no-interactive`
|
||||
`generate @nx/node:app ${expressApp} --framework=express --docker --no-interactive`
|
||||
);
|
||||
|
||||
checkFilesExist(`apps/${expressApp}/Dockerfile`);
|
||||
const dockerFile = readFile(`apps/${expressApp}/Dockerfile`);
|
||||
expect(dockerFile).toMatchSnapshot();
|
||||
}, 300_000);
|
||||
|
||||
it('should support waitUntilTargets for serve target', async () => {
|
||||
|
||||
@@ -11,6 +11,7 @@ import {
|
||||
uniq,
|
||||
updateFile,
|
||||
updateJson,
|
||||
promisifiedTreeKill,
|
||||
} from '@nx/e2e/utils';
|
||||
import { execSync } from 'child_process';
|
||||
import { join } from 'path';
|
||||
@@ -82,6 +83,11 @@ describe('Node Applications + webpack', () => {
|
||||
`serve ${app} --watch --runBuildTargetDependencies`,
|
||||
(output) => {
|
||||
return output.includes(`Hello`);
|
||||
},
|
||||
{
|
||||
env: {
|
||||
NX_DAEMON: 'true',
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
@@ -106,6 +112,6 @@ describe('Node Applications + webpack', () => {
|
||||
{ timeout: 60_000, ms: 200 }
|
||||
);
|
||||
|
||||
serveProcess.kill();
|
||||
await promisifiedTreeKill(serveProcess.pid, 'SIGKILL');
|
||||
}, 300_000);
|
||||
});
|
||||
|
||||
@@ -207,6 +207,11 @@ module.exports = {
|
||||
(output) => {
|
||||
process.stdout.write(output);
|
||||
return output.includes(`foobar: test foo bar`);
|
||||
},
|
||||
{
|
||||
env: {
|
||||
NX_DAEMON: 'true',
|
||||
},
|
||||
}
|
||||
);
|
||||
try {
|
||||
@@ -263,8 +268,15 @@ module.exports = {
|
||||
|
||||
// checking serve
|
||||
updateFile(`apps/${nodeapp}/src/assets/file.txt`, `Test`);
|
||||
const p = await runCommandUntil(`serve ${nodeapp}`, (output) =>
|
||||
output.includes(`Listening at http://localhost:${port}`)
|
||||
const p = await runCommandUntil(
|
||||
`serve ${nodeapp}`,
|
||||
(output) => output.includes(`Listening at http://localhost:${port}`),
|
||||
|
||||
{
|
||||
env: {
|
||||
NX_DAEMON: 'true',
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
let result = await getData(port);
|
||||
@@ -312,6 +324,11 @@ module.exports = {
|
||||
(output) => {
|
||||
process.stdout.write(output);
|
||||
return output.includes(`listening on ws://localhost:${port}`);
|
||||
},
|
||||
{
|
||||
env: {
|
||||
NX_DAEMON: 'true',
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
@@ -320,7 +337,7 @@ module.exports = {
|
||||
expect(e2eRsult.combinedOutput).toContain('Test Suites: 1 passed, 1 total');
|
||||
|
||||
await killPorts(port);
|
||||
p.kill();
|
||||
await promisifiedTreeKill(p.pid, 'SIGKILL');
|
||||
}, 120000);
|
||||
|
||||
// TODO(crystal, @ndcunningham): how do we handle this now?
|
||||
@@ -361,10 +378,18 @@ module.exports = {
|
||||
`
|
||||
);
|
||||
await runCLIAsync(`build ${esmapp}`);
|
||||
const p = await runCommandUntil(`serve ${esmapp}`, (output) => {
|
||||
return output.includes('Hello World');
|
||||
});
|
||||
p.kill();
|
||||
const p = await runCommandUntil(
|
||||
`serve ${esmapp}`,
|
||||
(output) => {
|
||||
return output.includes('Hello World');
|
||||
},
|
||||
{
|
||||
env: {
|
||||
NX_DAEMON: 'true',
|
||||
},
|
||||
}
|
||||
);
|
||||
await promisifiedTreeKill(p.pid, 'SIGKILL');
|
||||
}, 300000);
|
||||
});
|
||||
|
||||
|
||||
@@ -4,13 +4,6 @@
|
||||
"sourceRoot": "e2e/nuxt",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["nuxt"],
|
||||
"targets": {
|
||||
"e2e-ci--src/nuxt.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-nuxt --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -4,41 +4,6 @@
|
||||
"sourceRoot": "e2e/nx-init",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["nx", "angular", "react", "js", "nest"],
|
||||
"targets": {
|
||||
"e2e-ci--src/nx-init-angular.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/nx-init-monorepo.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/nx-init-nest.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/nx-init-npm-repo.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/nx-init-react.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-nx-init --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -4,83 +4,6 @@
|
||||
"sourceRoot": "e2e/nx-misc",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["nx", "js"],
|
||||
"targets": {
|
||||
"e2e-ci--src/affected-graph.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/cache.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/extras.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/invoke-runner.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/misc.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/nx-cloud.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/nxw.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/run.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/watch.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/workspace-legacy.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/workspace.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-nx --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -334,6 +334,12 @@ describe('Nx Commands', () => {
|
||||
}
|
||||
}, 300000);
|
||||
});
|
||||
|
||||
it('should show help if no command provided', () => {
|
||||
const output = runCLI('', { silenceError: true });
|
||||
expect(output).toContain('Smart Monorepos · Fast CI');
|
||||
expect(output).toContain('Commands:');
|
||||
});
|
||||
});
|
||||
|
||||
// TODO(colum): Change the fetcher to allow incremental migrations over multiple versions, allowing for beforeAll
|
||||
|
||||
@@ -4,13 +4,6 @@
|
||||
"sourceRoot": "e2e/playwright",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["playwright"],
|
||||
"targets": {
|
||||
"e2e-ci--src/playwright.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-playwright --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -4,13 +4,6 @@
|
||||
"sourceRoot": "e2e/plugin",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["create-nx-plugin"],
|
||||
"targets": {
|
||||
"e2e-ci--src/nx-plugin.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-plugin --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -10,20 +10,6 @@
|
||||
},
|
||||
"e2e-macos-ci--src/react-native.test.ts": {
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/react-native-legacy.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/react-native.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,62 +4,6 @@
|
||||
"sourceRoot": "e2e/react",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["react"],
|
||||
"targets": {
|
||||
"e2e-ci--src/react-package.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/react.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/cypress-component-tests.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/playwright.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/react-module-federation.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/react-vite.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/react-webpack.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/react-package-legacy.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-react --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -4,97 +4,6 @@
|
||||
"sourceRoot": "e2e/release",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["nx", "js"],
|
||||
"targets": {
|
||||
"e2e-ci--src/conventional-commits-config.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/create-github-release.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/custom-registries.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/first-release.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/independent-projects.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/lock-file-updates.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/multiple-release-branches.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/nx-release-git-operations.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/pre-version-command.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/private-js-packages.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/release.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/circular-dependencies.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/version-plans.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-release --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -4,13 +4,6 @@
|
||||
"sourceRoot": "e2e/remix",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["remix"],
|
||||
"targets": {
|
||||
"e2e-ci--src/nx-remix.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-remix --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||
@@ -4,20 +4,6 @@
|
||||
"sourceRoot": "e2e/rollup",
|
||||
"projectType": "application",
|
||||
"implicitDependencies": ["rollup", "js"],
|
||||
"targets": {
|
||||
"e2e-ci--src/rollup.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
},
|
||||
"e2e-ci--src/rollup-legacy.test.ts": {
|
||||
"dependsOn": [
|
||||
"nx:build-native",
|
||||
"@nx/nx-source:populate-local-registry-storage"
|
||||
],
|
||||
"inputs": ["e2eInputs", "^production"]
|
||||
}
|
||||
}
|
||||
"// targets": "to see all targets run: nx show project e2e-rollup --web",
|
||||
"targets": {}
|
||||
}
|
||||
|
||||