w3bdesign/dfweb-v4

View on GitHub
.circleci/config.yml

Summary

Maintainability
Test Coverage
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