diff --git a/.circleci/config.yml b/.circleci/config.yml index eaba45ab5e..86560abfcb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -42,7 +42,7 @@ default-job: &default-job TEST_GATE: << parameters.test-gate >> AWS_REGION_ARTIFACTS: eu-central-1 COREPACK_ENABLE_DOWNLOAD_PROMPT: '0' - working_directory: /tmp/base-ui + working_directory: /mnt/ramdisk/base-ui docker: - image: cimg/node:18.20 @@ -60,24 +60,21 @@ default-context: &default-context # key: v1-repo-{{ .Branch }}-{{ .Revision }} commands: - install_js: + install_pnpm: parameters: browsers: type: boolean default: false description: 'Set to true if you intend to any browser (for example with playwright).' - react-version: - description: The version of react to be used - type: string - default: stable - steps: - when: condition: << parameters.browsers >> steps: - run: name: Install pnpm package manager - command: corepack enable + command: | + corepack enable + pnpm config set store-dir /mnt/ramdisk/.pnpm-store - when: condition: not: << parameters.browsers >> @@ -85,7 +82,24 @@ commands: - run: name: Install pnpm package manager # See https://stackoverflow.com/a/73411601 - command: corepack enable --install-directory ~/bin + command: | + corepack enable --install-directory ~/bin + pnpm config set store-dir /mnt/ramdisk/.pnpm-store + + install_js: + parameters: + browsers: + type: boolean + default: false + description: 'Set to true if you intend to any browser (for example with playwright).' + react-version: + description: The version of react to be used + type: string + default: stable + + steps: + - install_pnpm: + browsers: << parameters.browsers >> - run: name: Resolve React version @@ -130,6 +144,10 @@ jobs: condition: equal: [<< parameters.react-version >>, stable] steps: + - persist_to_workspace: + root: . + paths: + - . - run: name: Should not have any git not staged command: git add -A && git diff --exit-code --staged @@ -146,9 +164,10 @@ jobs: test_unit: <<: *default-job steps: - - checkout - - install_js: - react-version: << parameters.react-version >> + - attach_workspace: + at: . + - install_pnpm: + browsers: false - run: name: Run tests on JSDOM command: pnpm test:jsdom:coverage @@ -168,9 +187,10 @@ jobs: test_lint: <<: *default-job steps: - - checkout - - install_js: - react-version: << parameters.react-version >> + - attach_workspace: + at: . + - install_pnpm: + browsers: false - run: name: Eslint command: pnpm eslint:ci @@ -186,9 +206,10 @@ jobs: test_static: <<: *default-job steps: - - checkout - - install_js: - react-version: << parameters.react-version >> + - attach_workspace: + at: . + - install_pnpm: + browsers: false - run: name: '`pnpm prettier` changes committed?' command: pnpm prettier --check @@ -218,9 +239,10 @@ jobs: <<: *default-job resource_class: 'medium+' steps: - - checkout - - install_js: - react-version: << parameters.react-version >> + - attach_workspace: + at: . + - install_pnpm: + browsers: false - run: name: Tests TypeScript definitions command: pnpm typescript @@ -239,9 +261,10 @@ jobs: <<: *default-job resource_class: 'medium+' steps: - - checkout - - install_js: - react-version: << parameters.react-version >> + - attach_workspace: + at: . + - install_pnpm: + browsers: false - run: name: Resolve typescript version command: | @@ -283,10 +306,11 @@ jobs: resource_class: 'medium+' docker: - image: mcr.microsoft.com/playwright:v1.50.0-noble + working_directory: /tmp/base-ui steps: - - checkout - - install_js: - react-version: << parameters.react-version >> + - attach_workspace: + at: . + - install_pnpm: browsers: true - run: name: Run tests on headless Chromium @@ -309,9 +333,9 @@ jobs: docker: - image: mcr.microsoft.com/playwright:v1.50.0-noble steps: - - checkout - - install_js: - react-version: << parameters.react-version >> + - attach_workspace: + at: . + - install_pnpm: browsers: true - run: name: Run visual regression tests @@ -324,8 +348,9 @@ jobs: docker: - image: mcr.microsoft.com/playwright:v1.50.0-noble steps: - - checkout - - install_js: + - attach_workspace: + at: . + - install_pnpm: browsers: true - run: name: pnpm test:e2e @@ -339,9 +364,10 @@ jobs: test_package: <<: *default-job steps: - - checkout - - install_js: - react-version: << parameters.react-version >> + - attach_workspace: + at: . + - install_pnpm: + browsers: false - run: name: Build packages command: pnpm release:build