step-restore-cache: &step-restore-cache restore_cache: keys: - v1-dependencies-{{ arch }}-{{ checksum "yarn.lock" }} - v1-dependencies-{{ arch }} steps-test: &steps-test steps: - checkout - *step-restore-cache - run: yarn --frozen-lockfile - save_cache: paths: - node_modules key: v1-dependencies-{{ arch }}-{{ checksum "yarn.lock" }} - run: yarn build - run: yarn test version: 2.1 jobs: test: macos: xcode: "13.4.1" <<: *steps-test release: docker: - image: circleci/node:14.15 steps: - checkout - *step-restore-cache - run: yarn --frozen-lockfile - run: npx semantic-release workflows: version: 2 test_and_release: jobs: - test - release: requires: - test filters: branches: only: - master