Skip to content

Commit

Permalink
⚡ Feat: Add nx distributed cloud execution
Browse files Browse the repository at this point in the history
  • Loading branch information
Will Cory authored and Will Cory committed Nov 19, 2023
1 parent 17b6ccf commit f1d1b3f
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 7 deletions.
6 changes: 0 additions & 6 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,6 @@ runs:
with:
version: nightly

# Workaround for parallel building with forge:
# https://github.com/foundry-rs/foundry/issues/4736
- name: Setup forge hack
shell: bash
run: forge build

- name: Get pnpm store directory
shell: bash
run: |
Expand Down
68 changes: 68 additions & 0 deletions .github/workflows/nx.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: CI
on:
push:
branches:
- main
pull_request:
workflow_dispatch:

env:
NX_CLOUD_DISTRIBUTED_EXECUTION: true
# give extra memory to speed up a bit
NODE_OPTIONS: '--max_old_space_size=4096'
NX_BRANCH: ${{ github.event.number || github.ref_name }}
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}

jobs:
agents:
name: Nx Cloud Agents
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
matrix:
agent: [1, 2, 3, 4, 5, 6, 7, 8]
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version-file: ".nvmrc"
registry-url: https://registry.npmjs.org
- name: "Setup"
uses: ./.github/actions/setup
- name: Start Nx Agent ${{ matrix.agent }}
run: bunx nx-cloud start-agent
env:
NX_AGENT_NAME: ${{ matrix.agent }}
main:
name: Nx Cloud - Main Job
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
name: Checkout [Pull Request]
if: ${{ github.event_name == 'pull_request' }}
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- uses: actions/checkout@v4
name: Checkout [Default Branch]
if: ${{ github.event_name != 'pull_request' }}
with:
fetch-depth: 0
- name: "Setup"
uses: ./.github/actions/setup
- name: Initialize the Nx Cloud distributed CI run and stop agents when the build tasks are done
run: bunx nx-cloud start-ci-run --stop-agents-after=build:dist
- name: Run verification
uses: JamesHenry/parallel-bash-commands@v0.1
with:
cmd1: bunx nx affected --target build:dist
cmd2: bunx nx affected --target build:types
cmd3: bunx nx affected --target generate:docs
cmd4: bunx nx affected --target typecheck
cmd5: bunx nx affected --target test:coverage
- name: Stop agents
run: bunx nx-cloud stop-all-agents
- name: Tag main branch if all jobs succeed
if: ${{ github.event_name != 'pull_request' }}
uses: nrwl/nx-tag-successful-ci-run@v1
8 changes: 8 additions & 0 deletions nx.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
{
"defaultProject": "@evmts/example-vite",
"tasksRunnerOptions": {
"default": {
"runner": "nx-cloud",
"options": {
"accessToken": "MDdkNmQwZWEtOGYwNy00ZjhkLWI5NGMtNjBiNGExY2Q5MzI2fHJlYWQ="
}
}
},
"targetDefaults": {
"lint:check": {
"inputs": ["default"],
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"contributors": [
"Will Cory <willcory10@gmail.com>"
],
"type": "module",
"type": "commonjs",
"workspaces": [
"bundler/*",
"bundler",
Expand Down

0 comments on commit f1d1b3f

Please sign in to comment.