Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

⚡ Feat: Add nx distributed cloud execution #706

Merged
merged 1 commit into from
Nov 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
21 changes: 1 addition & 20 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,4 @@
# .github/workflows

Workflows that are run in CI
Workflows that are run in CI. They are ran with nx cloud which spins up different workers that accept jobs. This creates really fast worst case and best case CI times.

### docker.yml

Builds all docker containers and deploys to dockerhub on release

## e2e.yml

Runs playwright tests vs the example apps

### lint.yml

Runs prettier and eslint

### npm.yml

Runs npm publish in dry mode. On workflow releases it will actually publish

### unit.yml

Runs run unit tests for all packages
44 changes: 0 additions & 44 deletions .github/workflows/build.yml

This file was deleted.

28 changes: 0 additions & 28 deletions .github/workflows/docs.yml

This file was deleted.

28 changes: 0 additions & 28 deletions .github/workflows/fixtures.yml

This file was deleted.

61 changes: 0 additions & 61 deletions .github/workflows/lint.yml

This file was deleted.

78 changes: 78 additions & 0 deletions .github/workflows/nx.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
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 typecheck
cmd4: bunx nx affected --target test:coverage
cmd5: bunx nx affected --target lint:check
cmd6: bunx nx affected --target dev:run
cmd7: bun sort-package-json
cmd8: bunx nx affected --target generate:docs

- 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

113 changes: 0 additions & 113 deletions .github/workflows/test.yml

This file was deleted.

Loading
Loading