From 304ec210c985c59dbfd822f055cf2a4753d8456f Mon Sep 17 00:00:00 2001 From: Caleb Ukle Date: Tue, 24 Mar 2026 11:25:42 -0500 Subject: [PATCH 1/4] fix(nx-dev): correctly track search events search_query -> search + search_term now include picked item from a search via select_content --- astro-docs/public/global-scripts.js | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/astro-docs/public/global-scripts.js b/astro-docs/public/global-scripts.js index 368082be8c7..d76690a5a80 100644 --- a/astro-docs/public/global-scripts.js +++ b/astro-docs/public/global-scripts.js @@ -139,6 +139,7 @@ let lastSearchQuery = ''; let currentSearchInput = null; let inputHandler = null; + let resultClickHandler = null; function sendSearchEvent(eventType, data) { pushGtmEvent(eventType, data); @@ -150,8 +151,8 @@ clearTimeout(searchDebounceTimer); searchDebounceTimer = setTimeout(() => { lastSearchQuery = query; - sendSearchEvent('search_query', { - query: query, + sendSearchEvent('search', { + search_term: query, }); }, SEARCH_DEBOUNCE_MS); } @@ -175,12 +176,30 @@ searchInput.addEventListener('input', inputHandler); currentSearchInput = searchInput; } + + // Track search result clicks via event delegation + if (!resultClickHandler) { + resultClickHandler = (e) => { + const link = e.target.closest('a[href]'); + if (!link) return; + const query = currentSearchInput + ? currentSearchInput.value.trim() + : ''; + pushGtmEvent('select_content', { + content_type: 'search_result', + item_id: link.getAttribute('href'), + search_term: query, + }); + }; + searchDialog.addEventListener('click', resultClickHandler); + } } // If dialog is not found but we have handler, etc. then it must be closed and we should clean up else if (currentSearchInput && inputHandler) { currentSearchInput.removeEventListener('input', inputHandler); currentSearchInput = null; inputHandler = null; + resultClickHandler = null; } }); From 88d4d0a0363a55d0adaee5e31e8319a8a1b07744 Mon Sep 17 00:00:00 2001 From: Caleb Ukle Date: Tue, 24 Mar 2026 11:47:00 -0500 Subject: [PATCH 2/4] fix(nx-dev): enforce search filter type frontmatter --- astro-docs/src/content.config.ts | 4 +++- .../Source Control Integration/github-app-permissions.mdoc | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/astro-docs/src/content.config.ts b/astro-docs/src/content.config.ts index ef3c20e676e..424217bb4ef 100644 --- a/astro-docs/src/content.config.ts +++ b/astro-docs/src/content.config.ts @@ -12,7 +12,9 @@ const searchSchema = z.object({ .min(0, 'Search weight cannot be lower than 0') .max(10, 'Search weight cannot be higher than 10') .optional(), - filter: z.string().optional(), + filter: z + .enum(['type:Concepts', 'type:Features', 'type:Guides', 'type:References']) + .optional(), }); const customDocsSchema = z diff --git a/astro-docs/src/content/docs/guides/Nx Cloud/Source Control Integration/github-app-permissions.mdoc b/astro-docs/src/content/docs/guides/Nx Cloud/Source Control Integration/github-app-permissions.mdoc index e12183e0559..cb7d5daec7f 100644 --- a/astro-docs/src/content/docs/guides/Nx Cloud/Source Control Integration/github-app-permissions.mdoc +++ b/astro-docs/src/content/docs/guides/Nx Cloud/Source Control Integration/github-app-permissions.mdoc @@ -1,7 +1,7 @@ --- title: GitHub App Permissions description: A detailed breakdown of each permission the Nx Cloud GitHub App requires and why. -filter: 'type:Reference' +filter: 'type:References' --- The Nx Cloud GitHub App requires the following permissions to provide CI/CD integration and setup experiences. Most information is used transiently during operations and not stored in our systems. From 5c636514a70ec4fc3a6dc7624124b675b197e87c Mon Sep 17 00:00:00 2001 From: Caleb Ukle Date: Tue, 24 Mar 2026 11:55:21 -0500 Subject: [PATCH 3/4] fix(nx-dev): split launch templates page into ref and examples page was too long and impacting search perf for launch template specific items --- astro-docs/sidebar.mts | 4 + .../Nx Cloud/launch-template-examples.mdoc | 529 ++++++++++++++++++ .../reference/Nx Cloud/launch-templates.mdoc | 524 +---------------- 3 files changed, 535 insertions(+), 522 deletions(-) create mode 100644 astro-docs/src/content/docs/reference/Nx Cloud/launch-template-examples.mdoc diff --git a/astro-docs/sidebar.mts b/astro-docs/sidebar.mts index 8297c18d257..15353463157 100644 --- a/astro-docs/sidebar.mts +++ b/astro-docs/sidebar.mts @@ -825,6 +825,10 @@ const knowledgeBaseGroups: SidebarItems = [ label: 'Launch templates', link: 'reference/nx-cloud/launch-templates', }, + { + label: 'Launch template examples', + link: 'reference/nx-cloud/launch-template-examples', + }, { label: 'Reduce waste in CI', link: 'concepts/ci-concepts/reduce-waste', diff --git a/astro-docs/src/content/docs/reference/Nx Cloud/launch-template-examples.mdoc b/astro-docs/src/content/docs/reference/Nx Cloud/launch-template-examples.mdoc new file mode 100644 index 00000000000..c3c9a8409f1 --- /dev/null +++ b/astro-docs/src/content/docs/reference/Nx Cloud/launch-template-examples.mdoc @@ -0,0 +1,529 @@ +--- +title: 'Launch Template Examples' +description: 'Common configuration examples for Nx Agents launch templates' +filter: 'type:References' +--- + +This page contains common configuration examples for [launch templates](/docs/reference/nx-cloud/launch-templates). For the full reference of available fields, see the [launch templates reference page](/docs/reference/nx-cloud/launch-templates). + +## Full example + +This is an example of a launch template using all pre-built features: + +```yaml +// ./nx/workflows/agents.yaml +# Define common setup steps that can be reused across templates +common-js-init-steps: &common-js-init-steps + # using a reusable step in an external GitHub repo, + # this step is provided by Nx Cloud: https://github.com/nrwl/nx-cloud-workflows/tree/main/workflow-steps + - name: Checkout + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' + - name: Restore Node Modules Cache + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/cache/main.yaml' + # the cache step requires configuration via env vars + # https://github.com/nrwl/nx-cloud-workflows/tree/main/workflow-steps/cache#options + inputs: + # Include patches directories to ensure cache is busted when patches change + # If you use a custom patches directory, add it to the key as well + key: 'package-lock.json|yarn.lock|pnpm-lock.yaml|patches/**|.yarn/patches/**' + paths: | + ~/.npm + # or ~/.cache/yarn + # or ~/.local/share/pnpm/store + base-branch: 'main' + - name: Restore Browser Binary Cache + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/cache/main.yaml' + inputs: + key: 'package-lock.json|yarn.lock|pnpm-lock.yaml|"browsers"' + paths: | + '~/.cache/Cypress' + base-branch: 'main' + - name: Install Node Modules + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node-modules/main.yaml' + - name: Install Browsers (if needed) + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-browsers/main.yaml' + # You can also run a custom script to configure various things on the agent machine + - name: Run a custom script + script: | + git config --global user.email test@test.com + git config --global user.name "Test Test" + - name: Define Step Env Var + # this env var will be available to all future steps using these 'common-init-steps' reusable steps + # persist env vars between steps by writing to the $NX_CLOUD_ENV file + script: | + echo "MY_STEP_ENV=step-env-var" >> $NX_CLOUD_ENV + +common-rust-init-steps: &common-rust-init-steps + - name: Checkout + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' + + # add Rust-specific steps + - name: Install Rust + script: | + curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh -s -- -y + source "$HOME/.cargo/env" + rustup toolchain install stable + # persist cargo bin into PATH + echo "PATH=$HOME/.cargo/bin:$PATH" >> $NX_CLOUD_ENV + +launch-templates: + # Custom template name, the name is referenced via --distribute-on="3 my-linux-medium-js" + # You can define as many templates as you need, commonly used to make different sizes or toolchains depending on your workspace needs + my-linux-medium-js: + resource-class: 'docker_linux_amd64/medium' + image: 'ubuntu22.04-node20.19-v3' + # Define environment variables shared among all steps in this launch template + env: + MY_ENV_VAR: shared + # list out steps to run on the agent before accepting tasks + # the agent will need a copy of the source code and dependencies installed + # note we are using yaml anchors to reduce duplication with the below launch-template (they have the same init-steps) + init-steps: *common-js-init-steps + + # another template which does the same as above, but with a large resource class + # You're not required to define a template for every resource class, only define what you need! + my-linux-large-js: + resource-class: 'docker_linux_amd64/large' + image: 'ubuntu22.04-node20.19-v3' + env: + MY_ENV_VAR: shared + # note we are using yaml anchors to reduce duplication with the above launch-template (they have the same init-steps) + init-steps: *common-js-init-steps + + # template that installs rust + my-linux-rust-large: + resource-class: 'docker_linux_amd64/large' + image: 'ubuntu22.04-node20.19-v3' + init-steps: *common-rust-init-steps +``` + +These templates can be used by passing the number of agents desired, and the template name via `--distribute-on` when starting your CI run. + +```shell +nx-cloud start-ci-run --distribute-on="4 my-linux-medium-js" +``` + +```shell +nx-cloud start-ci-run --distribute-on="4 my-linux-large-js" +``` + +```shell +nx-cloud start-ci-run --distribute-on="4 my-linux-large-rust" +``` + +## Pass environment variables + +If you need to send environment variables to agents, you can use the [--with-env-vars](/docs/reference/nx-cloud-cli#withenvvars-nx-agents-only) flag on the `nx-cloud start-ci-run` command. You can pass a specific list of environment variables like this: + +```shell +nx-cloud start-ci-run --distribute-on="8 linux-medium-js" --with-env-vars="VAR1,VAR2" +``` + +## Pass values between steps + +If you need to pass a value from one step to another step, such as assigning the value to an existing or new environment variable. You can write to the `NX_CLOUD_ENV` environment file. + +Commonly used for redefining the `PATH` or setting options for tooling. + +```yaml +// ./nx/workflows/agents.yaml +launch-templates: + my-template-name: + init-steps: + - name: Set PATH + script: echo "PATH=$HOME/.cargo/bin:$PATH" >> $NX_CLOUD_ENV + - name: Check PATH + script: | + # now contains $HOME/.cargo/bin + echo $PATH + # can invoke cargo directly because it's in the PATH now. + cargo --version +``` + +## Private npm registry + +{% aside type="caution" title="Protect sensitive values" %} +To prevent any sensitive values from showing up in a `git diff`, we recommend using the `user` level location for the `.npmrc` or `.yarnrc` file. +{% /aside %} + +If your project consumes packages from a private registry, you'll have to set up an authentication step in a custom launch template and authenticate like you normally would, usually this is via a `.npmrc` or `.yarnrc` file. You can pass the auth token from your main agent, so it's available to the agent machines. + +```yaml +// .nx/workflows/agents.yaml +launch-templates: + my-linux-medium-js: + resource-class: 'docker_linux_amd64/medium' + image: 'ubuntu22.04-node20.19-v3' + init-steps: + - name: Checkout + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' + - name: Auth to Registry + script: | + # we recommend add to the 'user' level npmrc file + # create .npmrc with @myorg scoped packages pointing to GH npm registry + # or yarn config set -l user if you use yarn + npm config set -L user "@myorg:registry" "https://npm.pkg.github.com" + npm config set -L user "//npm.pkg.github.com/:_authToken" "${SOME_AUTH_TOKEN}" + - name: Install Node Modules + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node-modules/main.yaml' +``` + +Pass `SOME_AUTH_TOKEN` via `--with-env-vars` + +```shell +# this assumes SOME_AUTH_TOKEN is already defined on the main agent +nx-cloud start-ci-run --distribute-on="5 my-linux-medium-js" --with-env-vars="SOME_AUTH_TOKEN" +``` + +## Custom node version + +Nx Agents come with node LTS installed. If you want to use a different version, you can add a step to install the desired node version. + +{% tabs %} +{% tabitem label="mise" %} + +You can use [mise](#install-tools-with-mise) to manage node versions alongside other toolchains. + +```yaml +// .nx/workflows/agents.yaml +launch-templates: + node-21: + resource-class: 'docker_linux_amd64/medium' + image: 'ubuntu22.04-node20.19-v3' + init-steps: + - name: Checkout + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' + - name: Install mise + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-mise/main.yaml' + inputs: + # you can also define a mise.toml in your repo instead of inline tools + tools: | + node=21 + - name: Install Node Modules + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node-modules/main.yaml' +``` + +{% /tabitem %} +{% tabitem label="nvm" %} + +Nx Cloud provides a [pre-built step to install a custom node version](https://github.com/nrwl/nx-cloud-workflows/tree/main/workflow-steps/install-node) within your workflow. This step is available as of `v4` of the workflow steps and requires the minimum image version to be `ubuntu22.04-node20.11-v9` or later. + +```yaml +// .nx/workflows/agents.yaml +launch-templates: + node-21: + resource-class: 'docker_linux_amd64/medium' + # note the image version of v9, + # earlier versions of the base image will not work + image: 'ubuntu22.04-node20.19-v3' + init-steps: + - name: Checkout + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' + - name: Install Node + # note the step is only released as of v4 of the workflow steps + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node/main.yaml' + inputs: + # can omit value if a '.nvmrc' file is within the root of the repo + node_version: '21' +``` + +{% /tabitem %} +{% tabitem label="Manual Installation" %} + +Here is a simplified launch template manually installing [nvm](https://github.com/nvm-sh/nvm) to manage different node version. +Feel free to use your preferred tool, other popular options are [volta](https://volta.sh/) or [fnm](https://github.com/Schniz/fnm). +The steps follow the general pattern of: + +1. install tool +1. install node with tool +1. persist any environment variable changes for future steps + +```yaml +// .nx/workflows/agents.yaml +launch-templates: + node-21: + resource-class: 'docker_linux_amd64/medium' + image: 'ubuntu22.04-node20.19-v3' + init-steps: + - name: Checkout + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' + - name: Install nvm + script: | + # run nvm install script + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash + # source the updated profile to get the nvm command available + source ~/.profile + # install the needed version of node via nvm + nvm install 21.7.3 + # echo the current path (which now includes the nvm-provided version of node) to NX_CLOUD_ENV + echo "PATH=$PATH" >> $NX_CLOUD_ENV + - name: Print node version + # confirm that the node version has changed + script: node -v + - name: Install Node Modules + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node-modules/main.yaml' + # Continue setup steps as needed +``` + +{% /tabitem %} +{% /tabs %} + +## Specific package manager version + +Nx Agents have [corepack enabled](https://nodejs.org/api/corepack.html#corepack) by default, allowing you to define the yarn or pnpm version via the `package.json`. + +```json +// package.json +{ + "packageManager": "yarn@4.1.1" +} +``` + +{% aside type="note" %} +**Supported Package Managers** + +Currently, corepack [only supports yarn or pnpm](https://nodejs.org/api/corepack.html#supported-package-managers) as package managers. If you need to use a specific npm version, you will need to create a custom launch template and install the specific npm version, i.e. `npm install -g npm@` +{% /aside %} + +## Installing packages + +You can use `apt` to install popular linux packages. This is helpful in streamlining setting up various toolchains needed for your workspace. + +For example, you can install the [GitHub CLI](https://cli.github.com/) on the agents if needed. + +```yaml +// ./nx/workflows/agents.yaml +launch-templates: + my-linux-medium-js: + resource-class: 'docker_linux_amd64/medium' + image: 'ubuntu22.04-node20.19-v3' + init-steps: + - name: Install Extras + script: | + sudo apt install gh unzip zip -y +``` + +{% aside type="note" %} +**Installing without apt** + +If you're trying to install a package that isn't available on `apt`, check that packages install steps for Debian base linux. Usually there are a handful of installation scripts that can be used [similar to `nvm`](#custom-node-version) +{% /aside %} + +## Install tools with mise + +[mise](https://mise.jdx.dev/) is a polyglot version manager that can install and manage multiple tools and runtimes (node, Rust, Python, Go, and more) in a single step. Nx Cloud provides a [pre-built step](https://github.com/nrwl/nx-cloud-workflows/tree/main/workflow-steps/install-mise) to install mise and configure tools on your agents. + +{% tabs %} +{% tabitem label="With mise.toml" %} + +If your repo already has a `mise.toml` file, mise automatically installs the tools defined there. + +```yaml +// .nx/workflows/agents.yaml +launch-templates: + my-linux-medium-js: + resource-class: 'docker_linux_amd64/medium' + image: 'ubuntu22.04-node20.19-v3' + init-steps: + - name: Checkout + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' + - name: Install mise + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-mise/main.yaml' + - name: Install Node Modules + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node-modules/main.yaml' +``` + +{% /tabitem %} +{% tabitem label="With inline tools" %} + +You can define tools inline using the `tools` input. Each line specifies a tool and version separated by `=`, `@`, or a space. + +```yaml +// .nx/workflows/agents.yaml +launch-templates: + my-linux-medium-js: + resource-class: 'docker_linux_amd64/medium' + image: 'ubuntu22.04-node20.19-v3' + init-steps: + - name: Checkout + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' + - name: Install mise + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-mise/main.yaml' + inputs: + tools: | + node=22 + rust=1.90 + python=3.12 + - name: Install Node Modules + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node-modules/main.yaml' +``` + +{% aside type="caution" %} +Defining tools inline overrides any `mise.toml` in your repo. This can cause differences between CI and local environments. Use inline tools only when your repo does not have a `mise.toml`. +{% /aside %} + +{% /tabitem %} +{% /tabs %} + +## AWS CLI + +First, define the environment variables on your main agent, where you call [`nx-cloud start-ci-run`](/docs/reference/nx-cloud-cli#npx-nxcloud-startcirun). Pass the same environment variables to your agents via the [`--with-env-vars` flag](/docs/reference/nx-cloud-cli#withenvvars-nx-agents-only). + +Minimally the `AWS_REGION` (or `AWS_DEFAULT_REGION`), `AWS_ACCESS_KEY_ID`, and `AWS_SECRET_ACCESS_KEY` environment variables are required. + +{% aside type="tip" %} +**OIDC Provider** + +If using an [OIDC provider](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html), e.g. the [AWS GitHub Action recommended setup](https://github.com/aws-actions/configure-aws-credentials?tab=readme-ov-file#using-this-action), then the environment variables are automatically configured for you after authentication to AWS. Since the credentials created for with OIDC provider flow are temporary, you'll need to pass the `AWS_SESSION_TOKEN` environment variable to your agents. + +{% /aside %} + +{% tabs %} +{% tabitem label="Pre-Built Step" %} + +Using the pre-built step simplifies and provides debugging checks to make sure the AWS CLI is properly authenticated to AWS before continuing. The step is recommended for most use cases. + +```yaml {% meta="{6-8}" %} +// ./nx/workflows/agents.yaml +launch-templates: + my-linux-medium-js: + resource-class: 'docker_linux_amd64/medium' + image: 'ubuntu22.04-node20.19-v3' + init-steps: + - name: Install AWS CLI + uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-aws-cli/main.yaml' + # no additional inputs required, as all configuration is via environment variables via --with-env-vars +``` + +{% /tabitem %} +{% tabitem label="Manual Installation" %} + +Manual installation follows [installing the AWS CLI using the official directions](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html). In order to decompress the installation archive, you'll need to install the `unzip` package in your step. +Manual installation is helpful if a custom installation setup is required. +It is helpful to run `aws sts get-caller-identity` command to make sure you're properly authenticated to AWS before proceeding + +```yaml {% meta="{6-20}" %} +// ./nx/workflows/agents.yaml +launch-templates: + my-linux-medium-js: + resource-class: 'docker_linux_amd64/medium' + image: 'ubuntu22.04-node20.19-v3' + init-steps: + # step assumes you've passed all required AWS_* environment variables from the main agent via --with-env-vars + - name: Install AWS CLI + script: | + # unzip is required to unzip the AWS CLI installer + sudo apt install gh unzip -y + curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" + unzip awscliv2.zip + # run installer, default location is already in the PATH + # if installing in a custom location, + # then update the $PATH like `PATH=$PATH:[extra-path-items] >> $NX_CLOUD_ENV` + sudo ./aws/install + # print AWS CLI version to verify command is avaiable + aws --version + # verify credentials to AWS is working + aws sts get-caller-identity +``` + +{% /tabitem %} +{% /tabs %} + +## Dynamic changesets + +NxCloud can calculate how big your pull request is based on how many projects in your workspace it affects. You can then configure Nx Agents to dynamically use a different number of agents based on your changeset size. + +Here we define a `small`, `medium` and `large` distribution strategy: + +```yaml +// .nx/workflows/dynamic-changesets.yaml +distribute-on: + small-changeset: 3 linux-medium-js + medium-changeset: 8 linux-medium-js + large-changeset: 12 linux-medium-js +``` + +Then you can pass the path to the file to the `--distribute-on` parameter. + +```shell +nx-cloud start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yaml" +``` + +## Debugging + +You can add steps to your template which print information about your workspace, toolchains, or any other needs. +Below are some common steps people use for debugging such as running nx commands, printing file contents and/or listing directory contents. + +{% aside type="caution" %} +**Environment Variables** + +Exercise caution when printing out environment variables, they will be shown in plain text. +{% /aside %} + +```yaml +// .nx/workflows/agents.yaml +launch-templates: + my-linux-medium-js: + resource-class: 'docker_linux_amd64/medium' + image: 'ubuntu22.04-node20.19-v3' + env: + # enable verbose logging for all steps + NX_VERBOSE_LOGGING: true + init-steps: + - name: 'Debug: Print Nx Report' + script: | + nx report + - name: 'Debug: List Directory Contents' + script: | + echo $HOME + ls -la $HOME + output_dir=$HOME/dist + # if output directory exists list it's contents + if [ -d output_dir ]; then + ls -la $output_dir + else + echo "$output_dir does not exist" + fi + - name: 'Debug: Show File Contents' + script: | + cat $HOME/.profile + - name: 'Debug: Check For Checkout Files' + script: | + git diff + - name: 'Debug: Print Versions' + script: | + # note if you use yarn and try to run pnpm, corepack might throw an error at you + # saying you're using the wrong package manager, in that case just remove the usage of pnpm + echo "Versions:" + echo "Node: $(node -v)" + echo "NPM: $(npm -v)" + echo "Yarn: $(yarn -v)" + echo "PNPM: $(pnpm -v)" + echo "Golang: $(go version)" + echo "Java: $(javac --version)" + # add any other toolchain you want + - name: 'Debug: Print env' + script: | + # !!! DO NOT RUN THIS IF YOU HAVE PASSWORD/ACCESS TOKENS IN YOUR ENV VARS !!! + # this will print your env as plain text values to the terminal + env + # This is a safer approach to prevent leaking tokens/passwords + echo "SOME_VALUE: $SOME_VALUE" +``` + +## Nx workspace in a subdirectory + +If your Nx workspace is in a subdirectory of your repository, set `NX_WORKING_DIRECTORY` in your launch template: + +```yaml +launch-templates: + my-template: + resource-class: 'docker_linux_amd64/medium' + image: 'ubuntu22.04-node20.19-v3' + env: + NX_WORKING_DIRECTORY: './client' + init-steps: + # ... +``` + +The `install-node-modules` step automatically respects this variable (but can be overridden at the step level if your lockfile is hosted at the root). For other steps, set the working directory manually. diff --git a/astro-docs/src/content/docs/reference/Nx Cloud/launch-templates.mdoc b/astro-docs/src/content/docs/reference/Nx Cloud/launch-templates.mdoc index 78ef9722d8c..bc97bec572e 100644 --- a/astro-docs/src/content/docs/reference/Nx Cloud/launch-templates.mdoc +++ b/astro-docs/src/content/docs/reference/Nx Cloud/launch-templates.mdoc @@ -87,7 +87,7 @@ Nx Cloud provides the following images: **Ubuntu:** - `ubuntu22.04-node20.11-v5`: added elevated permission access via `sudo` -- `ubuntu22.04-node20.11-v6`: `corepack` enabled by default with global pnpm v8, yarn v1, npm v10. See how to install a [specific package manager version](#specific-package-manager-version) +- `ubuntu22.04-node20.11-v6`: `corepack` enabled by default with global pnpm v8, yarn v1, npm v10. See how to install a [specific package manager version](/docs/reference/nx-cloud/launch-template-examples#specific-package-manager-version) - `ubuntu22.04-node20.11-v7`: added Java 17 - `ubuntu22.04-node20.11-v8`: added [nvm](https://github.com/nvm-sh/nvm) - `ubuntu22.04-node20.11-v9`: prevented corepack from auto-updating `package.json` and removed corepack enable from sudo user @@ -304,111 +304,6 @@ grouped together logically. The below cache steps will also be collapsed togethe base-branch: 'main' ``` -## Full example - -This is an example of a launch template using all pre-built features: - -```yaml -// ./nx/workflows/agents.yaml -# Define common setup steps that can be reused across templates -common-js-init-steps: &common-js-init-steps - # using a reusable step in an external GitHub repo, - # this step is provided by Nx Cloud: https://github.com/nrwl/nx-cloud-workflows/tree/main/workflow-steps - - name: Checkout - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' - - name: Restore Node Modules Cache - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/cache/main.yaml' - # the cache step requires configuration via env vars - # https://github.com/nrwl/nx-cloud-workflows/tree/main/workflow-steps/cache#options - inputs: - # Include patches directories to ensure cache is busted when patches change - # If you use a custom patches directory, add it to the key as well - key: 'package-lock.json|yarn.lock|pnpm-lock.yaml|patches/**|.yarn/patches/**' - paths: | - ~/.npm - # or ~/.cache/yarn - # or ~/.local/share/pnpm/store - base-branch: 'main' - - name: Restore Browser Binary Cache - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/cache/main.yaml' - inputs: - key: 'package-lock.json|yarn.lock|pnpm-lock.yaml|"browsers"' - paths: | - '~/.cache/Cypress' - base-branch: 'main' - - name: Install Node Modules - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node-modules/main.yaml' - - name: Install Browsers (if needed) - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-browsers/main.yaml' - # You can also run a custom script to configure various things on the agent machine - - name: Run a custom script - script: | - git config --global user.email test@test.com - git config --global user.name "Test Test" - - name: Define Step Env Var - # this env var will be available to all future steps using these 'common-init-steps' reusable steps - # persist env vars between steps by writing to the $NX_CLOUD_ENV file - script: | - echo "MY_STEP_ENV=step-env-var" >> $NX_CLOUD_ENV - -common-rust-init-steps: &common-rust-init-steps - - name: Checkout - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' - - # add Rust-specific steps - - name: Install Rust - script: | - curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh -s -- -y - source "$HOME/.cargo/env" - rustup toolchain install stable - # persist cargo bin into PATH - echo "PATH=$HOME/.cargo/bin:$PATH" >> $NX_CLOUD_ENV - -launch-templates: - # Custom template name, the name is referenced via --distribute-on="3 my-linux-medium-js" - # You can define as many templates as you need, commonly used to make different sizes or toolchains depending on your workspace needs - my-linux-medium-js: - resource-class: 'docker_linux_amd64/medium' - image: 'ubuntu22.04-node20.19-v3' - # Define environment variables shared among all steps in this launch template - env: - MY_ENV_VAR: shared - # list out steps to run on the agent before accepting tasks - # the agent will need a copy of the source code and dependencies installed - # note we are using yaml anchors to reduce duplication with the below launch-template (they have the same init-steps) - init-steps: *common-js-init-steps - - # another template which does the same as above, but with a large resource class - # You're not required to define a template for every resource class, only define what you need! - my-linux-large-js: - resource-class: 'docker_linux_amd64/large' - image: 'ubuntu22.04-node20.19-v3' - env: - MY_ENV_VAR: shared - # note we are using yaml anchors to reduce duplication with the above launch-template (they have the same init-steps) - init-steps: *common-js-init-steps - - # template that installs rust - my-linux-rust-large: - resource-class: 'docker_linux_amd64/large' - image: 'ubuntu22.04-node20.19-v3' - init-steps: *common-rust-init-steps -``` - -These templates can be used by passing the number of agents desired, and the template name via `--distribute-on` when starting your CI run. - -```shell -nx-cloud start-ci-run --distribute-on="4 my-linux-medium-js" -``` - -```shell -nx-cloud start-ci-run --distribute-on="4 my-linux-large-js" -``` - -```shell -nx-cloud start-ci-run --distribute-on="4 my-linux-large-rust" -``` - ## Validating launch templates {% aside type="note" %} @@ -425,419 +320,4 @@ To do this, run the `nx-cloud validate` command, with the path to the launch tem nx-cloud validate --workflow-file=./.nx/workflows/agents.yaml ``` -## Pass environment variables - -If you need to send environment variables to agents, you can use the [--with-env-vars](/docs/reference/nx-cloud-cli#withenvvars-nx-agents-only) flag on the `nx-cloud start-ci-run` command. You can pass a specific list of environment variables like this: - -```shell -nx-cloud start-ci-run --distribute-on="8 linux-medium-js" --with-env-vars="VAR1,VAR2" -``` - -## Pass values between steps - -If you need to pass a value from one step to another step, such as assigning the value to an existing or new environment variable. You can write to the `NX_CLOUD_ENV` environment file. - -Commonly used for redefining the `PATH` or setting options for tooling. - -```yaml -// ./nx/workflows/agents.yaml -launch-templates: - my-template-name: - init-steps: - - name: Set PATH - script: echo "PATH=$HOME/.cargo/bin:$PATH" >> $NX_CLOUD_ENV - - name: Check PATH - script: | - # now contains $HOME/.cargo/bin - echo $PATH - # can invoke cargo directly because it's in the PATH now. - cargo --version -``` - -## Private npm registry - -{% aside type="caution" title="Protect sensitive values" %} -To prevent any sensitive values from showing up in a `git diff`, we recommend using the `user` level location for the `.npmrc` or `.yarnrc` file. -{% /aside %} - -If your project consumes packages from a private registry, you'll have to set up an authentication step in a custom launch template and authenticate like you normally would, usually this is via a `.npmrc` or `.yarnrc` file. You can pass the auth token from your main agent, so it's available to the agent machines. - -```yaml -// .nx/workflows/agents.yaml -launch-templates: - my-linux-medium-js: - resource-class: 'docker_linux_amd64/medium' - image: 'ubuntu22.04-node20.19-v3' - init-steps: - - name: Checkout - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' - - name: Auth to Registry - script: | - # we recommend add to the 'user' level npmrc file - # create .npmrc with @myorg scoped packages pointing to GH npm registry - # or yarn config set -l user if you use yarn - npm config set -L user "@myorg:registry" "https://npm.pkg.github.com" - npm config set -L user "//npm.pkg.github.com/:_authToken" "${SOME_AUTH_TOKEN}" - - name: Install Node Modules - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node-modules/main.yaml' -``` - -Pass `SOME_AUTH_TOKEN` via `--with-env-vars` - -```shell -# this assumes SOME_AUTH_TOKEN is already defined on the main agent -nx-cloud start-ci-run --distribute-on="5 my-linux-medium-js" --with-env-vars="SOME_AUTH_TOKEN" -``` - -## Custom node version - -Nx Agents come with node LTS installed. If you want to use a different version, you can add a step to install the desired node version. - -{% tabs %} -{% tabitem label="mise" %} - -You can use [mise](#install-tools-with-mise) to manage node versions alongside other toolchains. - -```yaml -// .nx/workflows/agents.yaml -launch-templates: - node-21: - resource-class: 'docker_linux_amd64/medium' - image: 'ubuntu22.04-node20.19-v3' - init-steps: - - name: Checkout - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' - - name: Install mise - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-mise/main.yaml' - inputs: - # you can also define a mise.toml in your repo instead of inline tools - tools: | - node=21 - - name: Install Node Modules - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node-modules/main.yaml' -``` - -{% /tabitem %} -{% tabitem label="nvm" %} - -Nx Cloud provides a [pre-built step to install a custom node version](https://github.com/nrwl/nx-cloud-workflows/tree/main/workflow-steps/install-node) within your workflow. This step is available as of `v4` of the workflow steps and requires the minimum image version to be `ubuntu22.04-node20.11-v9` or later. - -```yaml -// .nx/workflows/agents.yaml -launch-templates: - node-21: - resource-class: 'docker_linux_amd64/medium' - # note the image version of v9, - # earlier versions of the base image will not work - image: 'ubuntu22.04-node20.19-v3' - init-steps: - - name: Checkout - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' - - name: Install Node - # note the step is only released as of v4 of the workflow steps - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node/main.yaml' - inputs: - # can omit value if a '.nvmrc' file is within the root of the repo - node_version: '21' -``` - -{% /tabitem %} -{% tabitem label="Manual Installation" %} - -Here is a simplified launch template manually installing [nvm](https://github.com/nvm-sh/nvm) to manage different node version. -Feel free to use your preferred tool, other popular options are [volta](https://volta.sh/) or [fnm](https://github.com/Schniz/fnm). -The steps follow the general pattern of: - -1. install tool -1. install node with tool -1. persist any environment variable changes for future steps - -```yaml -// .nx/workflows/agents.yaml -launch-templates: - node-21: - resource-class: 'docker_linux_amd64/medium' - image: 'ubuntu22.04-node20.19-v3' - init-steps: - - name: Checkout - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' - - name: Install nvm - script: | - # run nvm install script - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash - # source the updated profile to get the nvm command available - source ~/.profile - # install the needed version of node via nvm - nvm install 21.7.3 - # echo the current path (which now includes the nvm-provided version of node) to NX_CLOUD_ENV - echo "PATH=$PATH" >> $NX_CLOUD_ENV - - name: Print node version - # confirm that the node version has changed - script: node -v - - name: Install Node Modules - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node-modules/main.yaml' - # Continue setup steps as needed -``` - -{% /tabitem %} -{% /tabs %} - -## Specific package manager version - -Nx Agents have [corepack enabled](https://nodejs.org/api/corepack.html#corepack) by default, allowing you to define the yarn or pnpm version via the `package.json`. - -```json -// package.json -{ - "packageManager": "yarn@4.1.1" -} -``` - -{% aside type="note" %} -**Supported Package Managers** - -Currently, corepack [only supports yarn or pnpm](https://nodejs.org/api/corepack.html#supported-package-managers) as package managers. If you need to use a specific npm version, you will need to create a custom launch template and install the specific npm version, i.e. `npm install -g npm@` -{% /aside %} - -## Installing packages - -You can use `apt` to install popular linux packages. This is helpful in streamlining setting up various toolchains needed for your workspace. - -For example, you can install the [GitHub CLI](https://cli.github.com/) on the agents if needed. - -```yaml -// ./nx/workflows/agents.yaml -launch-templates: - my-linux-medium-js: - resource-class: 'docker_linux_amd64/medium' - image: 'ubuntu22.04-node20.19-v3' - init-steps: - - name: Install Extras - script: | - sudo apt install gh unzip zip -y -``` - -{% aside type="note" %} -**Installing without apt** - -If you're trying to install a package that isn't available on `apt`, check that packages install steps for Debian base linux. Usually there are a handful of installation scripts that can be used [similar to `nvm`](#custom-node-version) -{% /aside %} - -## Install tools with mise - -[mise](https://mise.jdx.dev/) is a polyglot version manager that can install and manage multiple tools and runtimes (node, Rust, Python, Go, and more) in a single step. Nx Cloud provides a [pre-built step](https://github.com/nrwl/nx-cloud-workflows/tree/main/workflow-steps/install-mise) to install mise and configure tools on your agents. - -{% tabs %} -{% tabitem label="With mise.toml" %} - -If your repo already has a `mise.toml` file, mise automatically installs the tools defined there. - -```yaml -// .nx/workflows/agents.yaml -launch-templates: - my-linux-medium-js: - resource-class: 'docker_linux_amd64/medium' - image: 'ubuntu22.04-node20.19-v3' - init-steps: - - name: Checkout - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' - - name: Install mise - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-mise/main.yaml' - - name: Install Node Modules - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node-modules/main.yaml' -``` - -{% /tabitem %} -{% tabitem label="With inline tools" %} - -You can define tools inline using the `tools` input. Each line specifies a tool and version separated by `=`, `@`, or a space. - -```yaml -// .nx/workflows/agents.yaml -launch-templates: - my-linux-medium-js: - resource-class: 'docker_linux_amd64/medium' - image: 'ubuntu22.04-node20.19-v3' - init-steps: - - name: Checkout - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml' - - name: Install mise - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-mise/main.yaml' - inputs: - tools: | - node=22 - rust=1.90 - python=3.12 - - name: Install Node Modules - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-node-modules/main.yaml' -``` - -{% aside type="caution" %} -Defining tools inline overrides any `mise.toml` in your repo. This can cause differences between CI and local environments. Use inline tools only when your repo does not have a `mise.toml`. -{% /aside %} - -{% /tabitem %} -{% /tabs %} - -## AWS CLI - -First, define the environment variables on your main agent, where you call [`nx-cloud start-ci-run`](/docs/reference/nx-cloud-cli#npx-nxcloud-startcirun). Pass the same environment variables to your agents via the [`--with-env-vars` flag](/docs/reference/nx-cloud-cli#withenvvars-nx-agents-only). - -Minimally the `AWS_REGION` (or `AWS_DEFAULT_REGION`), `AWS_ACCESS_KEY_ID`, and `AWS_SECRET_ACCESS_KEY` environment variables are required. - -{% aside type="tip" %} -**OIDC Provider** - -If using an [OIDC provider](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html), e.g. the [AWS GitHub Action recommended setup](https://github.com/aws-actions/configure-aws-credentials?tab=readme-ov-file#using-this-action), then the environment variables are automatically configured for you after authentication to AWS. Since the credentials created for with OIDC provider flow are temporary, you'll need to pass the `AWS_SESSION_TOKEN` environment variable to your agents. - -{% /aside %} - -{% tabs %} -{% tabitem label="Pre-Built Step" %} - -Using the pre-built step simplifies and provides debugging checks to make sure the AWS CLI is properly authenticated to AWS before continuing. The step is recommended for most use cases. - -```yaml {% meta="{6-8}" %} -// ./nx/workflows/agents.yaml -launch-templates: - my-linux-medium-js: - resource-class: 'docker_linux_amd64/medium' - image: 'ubuntu22.04-node20.19-v3' - init-steps: - - name: Install AWS CLI - uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/install-aws-cli/main.yaml' - # no additional inputs required, as all configuration is via environment variables via --with-env-vars -``` - -{% /tabitem %} -{% tabitem label="Manual Installation" %} - -Manual installation follows [installing the AWS CLI using the official directions](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html). In order to decompress the installation archive, you'll need to install the `unzip` package in your step. -Manual installation is helpful if a custom installation setup is required. -It is helpful to run `aws sts get-caller-identity` command to make sure you're properly authenticated to AWS before proceeding - -```yaml {% meta="{6-20}" %} -// ./nx/workflows/agents.yaml -launch-templates: - my-linux-medium-js: - resource-class: 'docker_linux_amd64/medium' - image: 'ubuntu22.04-node20.19-v3' - init-steps: - # step assumes you've passed all required AWS_* environment variables from the main agent via --with-env-vars - - name: Install AWS CLI - script: | - # unzip is required to unzip the AWS CLI installer - sudo apt install gh unzip -y - curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" - unzip awscliv2.zip - # run installer, default location is already in the PATH - # if installing in a custom location, - # then update the $PATH like `PATH=$PATH:[extra-path-items] >> $NX_CLOUD_ENV` - sudo ./aws/install - # print AWS CLI version to verify command is avaiable - aws --version - # verify credentials to AWS is working - aws sts get-caller-identity -``` - -{% /tabitem %} -{% /tabs %} - -## Dynamic changesets - -NxCloud can calculate how big your pull request is based on how many projects in your workspace it affects. You can then configure Nx Agents to dynamically use a different number of agents based on your changeset size. - -Here we define a `small`, `medium` and `large` distribution strategy: - -```yaml -// .nx/workflows/dynamic-changesets.yaml -distribute-on: - small-changeset: 3 linux-medium-js - medium-changeset: 8 linux-medium-js - large-changeset: 12 linux-medium-js -``` - -Then you can pass the path to the file to the `--distribute-on` parameter. - -```shell -nx-cloud start-ci-run --distribute-on=".nx/workflows/dynamic-changesets.yaml" -``` - -## Debugging - -You can add steps to your template which print information about your workspace, toolchains, or any other needs. -Below are some common steps people use for debugging such as running nx commands, printing file contents and/or listing directory contents. - -{% aside type="caution" %} -**Environment Variables** - -Exercise caution when printing out environment variables, they will be shown in plain text. -{% /aside %} - -```yaml -// .nx/workflows/agents.yaml -launch-templates: - my-linux-medium-js: - resource-class: 'docker_linux_amd64/medium' - image: 'ubuntu22.04-node20.19-v3' - env: - # enable verbose logging for all steps - NX_VERBOSE_LOGGING: true - init-steps: - - name: 'Debug: Print Nx Report' - script: | - nx report - - name: 'Debug: List Directory Contents' - script: | - echo $HOME - ls -la $HOME - output_dir=$HOME/dist - # if output directory exists list it's contents - if [ -d output_dir ]; then - ls -la $output_dir - else - echo "$output_dir does not exist" - fi - - name: 'Debug: Show File Contents' - script: | - cat $HOME/.profile - - name: 'Debug: Check For Checkout Files' - script: | - git diff - - name: 'Debug: Print Versions' - script: | - # note if you use yarn and try to run pnpm, corepack might throw an error at you - # saying you're using the wrong package manager, in that case just remove the usage of pnpm - echo "Versions:" - echo "Node: $(node -v)" - echo "NPM: $(npm -v)" - echo "Yarn: $(yarn -v)" - echo "PNPM: $(pnpm -v)" - echo "Golang: $(go version)" - echo "Java: $(javac --version)" - # add any other toolchain you want - - name: 'Debug: Print env' - script: | - # !!! DO NOT RUN THIS IF YOU HAVE PASSWORD/ACCESS TOKENS IN YOUR ENV VARS !!! - # this will print your env as plain text values to the terminal - env - # This is a safer approach to prevent leaking tokens/passwords - echo "SOME_VALUE: $SOME_VALUE" -``` - -## Nx workspace in a subdirectory - -If your Nx workspace is in a subdirectory of your repository, set `NX_WORKING_DIRECTORY` in your launch template: - -```yaml -launch-templates: - my-template: - resource-class: 'docker_linux_amd64/medium' - image: 'ubuntu22.04-node20.19-v3' - env: - NX_WORKING_DIRECTORY: './client' - init-steps: - # ... -``` - -The `install-node-modules` step automatically respects this variable (but can be overridden at the step level if your lockfile is hosted at the root). For other steps, set the working directory manually. +For examples of common configurations such as private registries, custom node versions, AWS CLI setup, and more, see the [launch template examples](/docs/reference/nx-cloud/launch-template-examples). From 642bab94430449c5698d6fe6b00f52899721b2bd Mon Sep 17 00:00:00 2001 From: Caleb Ukle Date: Tue, 24 Mar 2026 12:19:35 -0500 Subject: [PATCH 4/4] fix(nx-dev): improve framework/technology specific intros in search when searching for framework or plugin the pages should be in top 2 results. other pages tested don't show any other impact (as expected): cli references, nx cloud setups, launch templates, dependencies management etc will keep iterating once more metrics come in --- .../docs/technologies/angular/angular-rsbuild/introduction.mdoc | 1 + .../angular/angular-rspack-compiler/introduction.mdoc | 1 + .../docs/technologies/angular/angular-rspack/introduction.mdoc | 1 + .../src/content/docs/technologies/angular/introduction.mdoc | 1 + .../docs/technologies/build-tools/docker/introduction.mdoc | 1 + .../docs/technologies/build-tools/esbuild/introduction.mdoc | 1 + .../docs/technologies/build-tools/rollup/introduction.mdoc | 1 + .../docs/technologies/build-tools/rsbuild/introduction.mdoc | 1 + .../docs/technologies/build-tools/rspack/introduction.mdoc | 1 + .../content/docs/technologies/build-tools/vite/introduction.mdoc | 1 + .../docs/technologies/build-tools/webpack/introduction.mdoc | 1 + .../src/content/docs/technologies/dotnet/introduction.mdoc | 1 + .../docs/technologies/eslint/eslint-plugin/introduction.mdoc | 1 + .../src/content/docs/technologies/eslint/introduction.mdoc | 1 + .../src/content/docs/technologies/java/gradle/introduction.mdoc | 1 + astro-docs/src/content/docs/technologies/java/introduction.mdoc | 1 + .../src/content/docs/technologies/java/maven/introduction.mdoc | 1 + .../docs/technologies/module-federation/introduction.mdoc | 1 + .../src/content/docs/technologies/node/express/introduction.mdoc | 1 + astro-docs/src/content/docs/technologies/node/introduction.mdoc | 1 + .../src/content/docs/technologies/node/nest/introduction.mdoc | 1 + .../src/content/docs/technologies/react/expo/introduction.mdoc | 1 + astro-docs/src/content/docs/technologies/react/introduction.mdoc | 1 + .../src/content/docs/technologies/react/next/introduction.mdoc | 1 + .../docs/technologies/react/react-native/introduction.mdoc | 1 + .../src/content/docs/technologies/react/remix/introduction.mdoc | 1 + .../docs/technologies/test-tools/cypress/introduction.mdoc | 1 + .../content/docs/technologies/test-tools/detox/introduction.mdoc | 1 + .../content/docs/technologies/test-tools/jest/introduction.mdoc | 1 + .../docs/technologies/test-tools/playwright/introduction.mdoc | 1 + .../docs/technologies/test-tools/storybook/introduction.mdoc | 1 + .../docs/technologies/test-tools/vitest/introduction.mdoc | 1 + .../src/content/docs/technologies/typescript/introduction.mdoc | 1 + astro-docs/src/content/docs/technologies/vue/introduction.mdoc | 1 + .../src/content/docs/technologies/vue/nuxt/introduction.mdoc | 1 + 35 files changed, 35 insertions(+) diff --git a/astro-docs/src/content/docs/technologies/angular/angular-rsbuild/introduction.mdoc b/astro-docs/src/content/docs/technologies/angular/angular-rsbuild/introduction.mdoc index 2f87cdbe9cb..b03400342fc 100644 --- a/astro-docs/src/content/docs/technologies/angular/angular-rsbuild/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/angular/angular-rsbuild/introduction.mdoc @@ -3,6 +3,7 @@ title: 'Angular Rsbuild Plugin for Nx' description: 'Use Rsbuild as the build tool for Angular applications in your Nx workspace with the @nx/angular-rsbuild plugin.' sidebar: label: 'Introduction' +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/angular/angular-rspack-compiler/introduction.mdoc b/astro-docs/src/content/docs/technologies/angular/angular-rspack-compiler/introduction.mdoc index e4c3b2a2831..71664a0f430 100644 --- a/astro-docs/src/content/docs/technologies/angular/angular-rspack-compiler/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/angular/angular-rspack-compiler/introduction.mdoc @@ -3,6 +3,7 @@ title: 'Angular Rspack Compiler' description: 'Compilation utilities for Angular with Rspack and Rsbuild.' sidebar: label: 'Introduction' +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/angular/angular-rspack/introduction.mdoc b/astro-docs/src/content/docs/technologies/angular/angular-rspack/introduction.mdoc index b0ff38fd75b..de0983ec04c 100644 --- a/astro-docs/src/content/docs/technologies/angular/angular-rspack/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/angular/angular-rspack/introduction.mdoc @@ -3,6 +3,7 @@ title: 'Angular Rspack Plugin for Nx' description: 'Learn how Rspack can help you speed up your Angular applications.' sidebar: label: 'Introduction' +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/angular/introduction.mdoc b/astro-docs/src/content/docs/technologies/angular/introduction.mdoc index 2f2682cf18a..758c43bbf40 100644 --- a/astro-docs/src/content/docs/technologies/angular/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/angular/introduction.mdoc @@ -5,6 +5,7 @@ keywords: [angular] sidebar: label: Introduction order: 1 +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/build-tools/docker/introduction.mdoc b/astro-docs/src/content/docs/technologies/build-tools/docker/introduction.mdoc index 936305e806a..61492375620 100644 --- a/astro-docs/src/content/docs/technologies/build-tools/docker/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/build-tools/docker/introduction.mdoc @@ -4,6 +4,7 @@ description: The Nx Plugin for Docker contains executors and utilities for build keywords: [docker] sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/build-tools/esbuild/introduction.mdoc b/astro-docs/src/content/docs/technologies/build-tools/esbuild/introduction.mdoc index 8a76632b9a3..718fd3b2be9 100644 --- a/astro-docs/src/content/docs/technologies/build-tools/esbuild/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/build-tools/esbuild/introduction.mdoc @@ -3,6 +3,7 @@ title: esbuild Plugin for Nx description: The Nx Plugin for esbuild contains executors and generators that support building applications using esbuild, including setup and configuration for your Nx workspace. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/build-tools/rollup/introduction.mdoc b/astro-docs/src/content/docs/technologies/build-tools/rollup/introduction.mdoc index 8f2645e7da8..85c497a8fe3 100644 --- a/astro-docs/src/content/docs/technologies/build-tools/rollup/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/build-tools/rollup/introduction.mdoc @@ -3,6 +3,7 @@ title: Rollup Plugin for Nx description: The Nx Plugin for Rollup contains executors and generators that support building applications using Rollup. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/build-tools/rsbuild/introduction.mdoc b/astro-docs/src/content/docs/technologies/build-tools/rsbuild/introduction.mdoc index 48b6d9f6402..ca5746faa8c 100644 --- a/astro-docs/src/content/docs/technologies/build-tools/rsbuild/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/build-tools/rsbuild/introduction.mdoc @@ -3,6 +3,7 @@ title: Rsbuild Plugin for Nx description: The Nx Plugin for Rsbuild contains executors and generators that support building applications using Rsbuild. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/build-tools/rspack/introduction.mdoc b/astro-docs/src/content/docs/technologies/build-tools/rspack/introduction.mdoc index 35cade8dd39..dfdbe43508f 100644 --- a/astro-docs/src/content/docs/technologies/build-tools/rspack/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/build-tools/rspack/introduction.mdoc @@ -3,6 +3,7 @@ title: Rspack Plugin for Nx description: The Nx Plugin for Rspack contains executors, generators, and utilities for managing Rspack projects in an Nx Workspace. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/build-tools/vite/introduction.mdoc b/astro-docs/src/content/docs/technologies/build-tools/vite/introduction.mdoc index 236dc706b5a..cbbb010b75e 100644 --- a/astro-docs/src/content/docs/technologies/build-tools/vite/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/build-tools/vite/introduction.mdoc @@ -3,6 +3,7 @@ title: Vite Plugin for Nx description: Use Vite with Nx for inferred dev/build tasks, generators, and CI-friendly workflows. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/build-tools/webpack/introduction.mdoc b/astro-docs/src/content/docs/technologies/build-tools/webpack/introduction.mdoc index 2307b7dd7c9..8cb939b02a5 100644 --- a/astro-docs/src/content/docs/technologies/build-tools/webpack/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/build-tools/webpack/introduction.mdoc @@ -3,6 +3,7 @@ title: Webpack Plugin for Nx description: The Nx Plugin for Webpack contains executors and generators that support building applications using Webpack. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/dotnet/introduction.mdoc b/astro-docs/src/content/docs/technologies/dotnet/introduction.mdoc index 86899773d62..3e4861a2cb9 100644 --- a/astro-docs/src/content/docs/technologies/dotnet/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/dotnet/introduction.mdoc @@ -3,6 +3,7 @@ title: .NET Plugin for Nx description: This plugin allows .NET projects to be run through Nx. sidebar: label: 'Introduction' +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/eslint/eslint-plugin/introduction.mdoc b/astro-docs/src/content/docs/technologies/eslint/eslint-plugin/introduction.mdoc index 8918aa1f764..9f3db539c31 100644 --- a/astro-docs/src/content/docs/technologies/eslint/eslint-plugin/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/eslint/eslint-plugin/introduction.mdoc @@ -3,6 +3,7 @@ title: ESLint Plugin sidebar: hidden: true description: Nx ESLint plugin features +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/eslint/introduction.mdoc b/astro-docs/src/content/docs/technologies/eslint/introduction.mdoc index b66640dc4dd..344491125b1 100644 --- a/astro-docs/src/content/docs/technologies/eslint/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/eslint/introduction.mdoc @@ -3,6 +3,7 @@ title: ESLint Plugin for Nx description: Learn how to set up and use the @nx/eslint plugin to integrate ESLint with Nx, enabling caching and providing code generators for ESLint configuration. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/java/gradle/introduction.mdoc b/astro-docs/src/content/docs/technologies/java/gradle/introduction.mdoc index 52742378193..17de9067bdb 100644 --- a/astro-docs/src/content/docs/technologies/java/gradle/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/java/gradle/introduction.mdoc @@ -3,6 +3,7 @@ title: Gradle Plugin for Nx description: Run Gradle tasks through Nx with caching, graph insights, and CI optimization. sidebar: label: 'Introduction' +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/java/introduction.mdoc b/astro-docs/src/content/docs/technologies/java/introduction.mdoc index f58c2996293..3d406d2c3e6 100644 --- a/astro-docs/src/content/docs/technologies/java/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/java/introduction.mdoc @@ -3,6 +3,7 @@ title: Java with Nx description: Build scalable Java applications with Nx sidebar: label: 'Introduction' +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/java/maven/introduction.mdoc b/astro-docs/src/content/docs/technologies/java/maven/introduction.mdoc index 5efe7a67002..adb79655a71 100644 --- a/astro-docs/src/content/docs/technologies/java/maven/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/java/maven/introduction.mdoc @@ -3,6 +3,7 @@ title: Maven Plugin for Nx description: This plugin allows Maven tasks to be run through Nx. sidebar: label: 'Introduction' +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/module-federation/introduction.mdoc b/astro-docs/src/content/docs/technologies/module-federation/introduction.mdoc index 9230796ee50..56446de54b9 100644 --- a/astro-docs/src/content/docs/technologies/module-federation/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/module-federation/introduction.mdoc @@ -3,6 +3,7 @@ title: Module Federation Plugin for Nx description: Details about the NxModuleFederationPlugin sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/node/express/introduction.mdoc b/astro-docs/src/content/docs/technologies/node/express/introduction.mdoc index 641f07691b4..eaccb8b161e 100644 --- a/astro-docs/src/content/docs/technologies/node/express/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/node/express/introduction.mdoc @@ -3,6 +3,7 @@ title: Express Plugin for Nx description: Learn how to use the @nx/express plugin to create and manage Express applications in your Nx workspace, including setup and common guides. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/node/introduction.mdoc b/astro-docs/src/content/docs/technologies/node/introduction.mdoc index 7a1bea9b53b..e4bfa40adbf 100644 --- a/astro-docs/src/content/docs/technologies/node/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/node/introduction.mdoc @@ -3,6 +3,7 @@ title: Node.js Plugin for Nx description: Learn how to use the @nx/node plugin to create and manage Node.js applications and libraries in your Nx workspace, including setup, building, and testing. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/node/nest/introduction.mdoc b/astro-docs/src/content/docs/technologies/node/nest/introduction.mdoc index fac188900fa..0dc8b9434f5 100644 --- a/astro-docs/src/content/docs/technologies/node/nest/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/node/nest/introduction.mdoc @@ -4,6 +4,7 @@ description: Learn how to use the @nx/nest plugin to create and manage Nest.js a keywords: [nest, nestjs] sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/react/expo/introduction.mdoc b/astro-docs/src/content/docs/technologies/react/expo/introduction.mdoc index 66da7a918c5..38c53773e8a 100644 --- a/astro-docs/src/content/docs/technologies/react/expo/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/react/expo/introduction.mdoc @@ -3,6 +3,7 @@ title: Expo Plugin for Nx description: Learn how to use the @nx/expo plugin to manage Expo applications and libraries within an Nx workspace, including setup, configuration, and task inference. sidebar: label: 'Introduction' +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/react/introduction.mdoc b/astro-docs/src/content/docs/technologies/react/introduction.mdoc index 21674fa7726..e28ca3638f4 100644 --- a/astro-docs/src/content/docs/technologies/react/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/react/introduction.mdoc @@ -5,6 +5,7 @@ keywords: [react] sidebar: label: 'Introduction' order: 1 +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/react/next/introduction.mdoc b/astro-docs/src/content/docs/technologies/react/next/introduction.mdoc index b81a6669eaf..b6ce9503b7e 100644 --- a/astro-docs/src/content/docs/technologies/react/next/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/react/next/introduction.mdoc @@ -5,6 +5,7 @@ keywords: [nextjs, next, react] sidebar: label: 'Introduction' order: 1 +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/react/react-native/introduction.mdoc b/astro-docs/src/content/docs/technologies/react/react-native/introduction.mdoc index 4cdca089197..ac8409536fb 100644 --- a/astro-docs/src/content/docs/technologies/react/react-native/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/react/react-native/introduction.mdoc @@ -3,6 +3,7 @@ title: React Native Plugin for Nx description: The Nx Plugin for React Native contains generators for managing React Native applications and libraries within an Nx workspace, including setup and configuration. sidebar: label: 'Introduction' +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/react/remix/introduction.mdoc b/astro-docs/src/content/docs/technologies/react/remix/introduction.mdoc index 7e0cefb8549..f9a9050093b 100644 --- a/astro-docs/src/content/docs/technologies/react/remix/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/react/remix/introduction.mdoc @@ -5,6 +5,7 @@ keywords: [remix, react] sidebar: label: 'Introduction' order: 1 +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/test-tools/cypress/introduction.mdoc b/astro-docs/src/content/docs/technologies/test-tools/cypress/introduction.mdoc index 65c7234a5f1..d44584b8626 100644 --- a/astro-docs/src/content/docs/technologies/test-tools/cypress/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/test-tools/cypress/introduction.mdoc @@ -3,6 +3,7 @@ title: Cypress Plugin for Nx description: The Nx Plugin for Cypress contains executors and generators that support e2e testing with Cypress, including setup and configuration for your Nx workspace. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/test-tools/detox/introduction.mdoc b/astro-docs/src/content/docs/technologies/test-tools/detox/introduction.mdoc index ed45a59dfde..5fe2147bf0b 100644 --- a/astro-docs/src/content/docs/technologies/test-tools/detox/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/test-tools/detox/introduction.mdoc @@ -3,6 +3,7 @@ title: Detox Plugin for Nx description: Learn how to set up and use Detox for end-to-end testing of mobile applications in your Nx workspace, including environment setup and configuration options. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/test-tools/jest/introduction.mdoc b/astro-docs/src/content/docs/technologies/test-tools/jest/introduction.mdoc index 278f76e35ac..6df48aaef57 100644 --- a/astro-docs/src/content/docs/technologies/test-tools/jest/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/test-tools/jest/introduction.mdoc @@ -3,6 +3,7 @@ title: Jest Plugin for Nx description: The Nx Plugin for Jest contains executors and generators that support testing projects using Jest, including setup and configuration for your Nx workspace. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/test-tools/playwright/introduction.mdoc b/astro-docs/src/content/docs/technologies/test-tools/playwright/introduction.mdoc index fc385375141..4cfb5a70644 100644 --- a/astro-docs/src/content/docs/technologies/test-tools/playwright/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/test-tools/playwright/introduction.mdoc @@ -3,6 +3,7 @@ title: Playwright Plugin for Nx description: The Nx Plugin for Playwright contains executors and generators that support e2e testing with Playwright, including setup and configuration for your Nx workspace. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/test-tools/storybook/introduction.mdoc b/astro-docs/src/content/docs/technologies/test-tools/storybook/introduction.mdoc index 2546afbfea1..8d0f303a769 100644 --- a/astro-docs/src/content/docs/technologies/test-tools/storybook/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/test-tools/storybook/introduction.mdoc @@ -3,6 +3,7 @@ title: Storybook Plugin for Nx description: This is an overview page for the Storybook plugin in Nx. It explains what Storybook is and how to set it up in your Nx workspace. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/test-tools/vitest/introduction.mdoc b/astro-docs/src/content/docs/technologies/test-tools/vitest/introduction.mdoc index 32e2356d83d..d787260cf10 100644 --- a/astro-docs/src/content/docs/technologies/test-tools/vitest/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/test-tools/vitest/introduction.mdoc @@ -3,6 +3,7 @@ title: Vitest Plugin for Nx description: The Nx Plugin for Vitest contains executors and generators that support testing projects using Vitest, including setup and configuration for your Nx workspace. sidebar: label: Introduction +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/typescript/introduction.mdoc b/astro-docs/src/content/docs/technologies/typescript/introduction.mdoc index b157e520b54..c0b458f5a39 100644 --- a/astro-docs/src/content/docs/technologies/typescript/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/typescript/introduction.mdoc @@ -5,6 +5,7 @@ keywords: [typescript, javascript, js, ts] sidebar: label: Introduction order: 1 +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/vue/introduction.mdoc b/astro-docs/src/content/docs/technologies/vue/introduction.mdoc index 40feedc52fe..b0c2774209b 100644 --- a/astro-docs/src/content/docs/technologies/vue/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/vue/introduction.mdoc @@ -3,6 +3,7 @@ title: Vue Plugin for Nx description: The Nx Plugin for Vue contains generators for managing Vue applications and libraries within an Nx workspace, including setup and configuration. sidebar: label: 'Introduction' +weight: 5 filter: 'type:References' --- diff --git a/astro-docs/src/content/docs/technologies/vue/nuxt/introduction.mdoc b/astro-docs/src/content/docs/technologies/vue/nuxt/introduction.mdoc index 4cd51ea9915..9df3e01bfcf 100644 --- a/astro-docs/src/content/docs/technologies/vue/nuxt/introduction.mdoc +++ b/astro-docs/src/content/docs/technologies/vue/nuxt/introduction.mdoc @@ -3,6 +3,7 @@ title: Nuxt Plugin for Nx description: The Nx Plugin for Nuxt contains generators for managing Nuxt applications within an Nx workspace, including setup and configuration. sidebar: label: Introduction +weight: 5 filter: 'type:References' ---