Course
From PNPM Workspaces to Distributed CI
In this course, we'll walk through a step-by-step guide using the Tasker application as our example. Tasker is a task management app built with Next.js, structured as a PNPM workspace monorepo. The monorepo contains the Next.js application which is modularized into packages that handle data access via Prisma to a local DB, UI components, and more.
Throughout the course, we'll take incremental steps to enhance the monorepo:
- Adding Nx
- Configuring and fine-tuning local caching
- Defining task pipelines to ensure correct task execution order
- Optimizing CI configuration with remote caching
- Adjusting the current CI configuration to enable task distribution
- Splitting and parallelizing Playwright e2e tests to reduce execution time from 20 minutes to 9 minutes
- Lessons
- 12
Lessons
- 01Initialize Nx in Your Project with nx init
- 02Run and Manage Tasks Efficiently Using Nx in a PNPM workspace
- 03Configure Nx Cache Outputs to Handle the .next Folder
- 04Create a Task Pipelines to Build Your Next app Before Serving it
- 05Link an e2e Project with Its Web App Through Implicit Dependencies with Nx
- 06Connect an Nx Workspace Workspace to Nx Cloud
- 07Use Nx to run commands on CI
- 08Enable read/write access to your Nx remote cache from CI
- 09Debug Remote Cache misses with Nx Cloud
- 10Enable Remote Caching for your Developer Machine with Nx Login
- 11Speed up CI by running tasks on multiple machines
- 12Run Playwright e2e Tests faster by Parallelizing Them on CI