.circleci/config.yml
version: 2.1
orbs:
cypress: cypress-io/cypress@3.4.0
codecov: codecov/codecov@5.0.0
node: circleci/node@6.3.0
executors:
with-chrome-and-firefox:
docker:
- image: "cypress/browsers:node16.14.2-slim-chrome100-ff99-edge"
resource_class: large
jobs:
chromatic-deployment:
docker:
- image: cimg/node:23.0.0
working_directory: ~/chromatic
steps:
- checkout
- restore_cache:
keys:
- pnpm-packages-v1-{{ checksum "pnpm-lock.yaml" }}
- pnpm-packages-cache-v1
- run:
name: Install pnpm package manager
command: |
sudo corepack enable
sudo corepack prepare pnpm@latest-8 --activate
- run:
name: Install Dependencies
command: pnpm install --frozen-lockfile
- run: pnpm run chromatic -- --project-token=${CHROMATIC_PROJECT_TOKEN}
- save_cache:
key: pnpm-packages-v1-{{ checksum "pnpm-lock.yaml" }}
paths:
- ~/.pnpm-store
build:
working_directory: /home/circleci/dfweb
docker:
- image: cimg/node:23.0.0-browsers
steps:
- checkout
- restore_cache:
key: pnpm-cache-v2-{{ checksum "pnpm-lock.yaml" }}
- run:
name: Install pnpm package manager
command: |
sudo corepack enable
sudo corepack prepare pnpm@latest-8 --activate
- run:
name: Install Dependencies
command: pnpm install --no-frozen-lockfile
- run:
name: Chrome key start setup
command: sudo apt update -y
- run:
name: Chrome key finish setup
command: wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
- run:
name: Chrome package download
command: sudo apt install ./google-chrome-stable_current_amd64.deb
- save_cache:
key: pnpm-cache-v2-{{ checksum "pnpm-lock.yaml" }}
paths:
- ~/.pnpm-store
- store_artifacts:
path: /root/.npm/_logs
- run:
name: Run Jest Tests
command: pnpm test
- run:
name: Make sure ~/.gnupg directory exists
command: mkdir -p ~/.gnupg
- codecov/upload
parallelism: 6
workflows:
chromatic-deploy:
jobs:
- build:
name: Build Next.js project