version: 2.1 commands: commoncmd: steps: - checkout - restore_cache: keys: - dependency-cache-{{ checksum "package.json" }} - run: yarn install --frozen-lockfile - save_cache: key: dependency-cache-{{ checksum "package.json" }} paths: - ./node_modules - run: yarn run build jobs: lint: docker: - image: circleci/node:latest steps: - run: sudo apt update - run: sudo apt install -qq shellcheck - commoncmd - run: bash -c 'GLOBIGNORE="node_modules" shellcheck -e2012 **/*.sh' - run: yarn run lint - run: bash -c '"$(yarn bin)/eslint" src --ext .ts' unit: docker: - image: circleci/node:latest steps: - commoncmd - run: bash -c '"$(yarn bin)/jest" src' mozilla: docker: - image: circleci/node:latest steps: - commoncmd - run: bash -c 'cd build; "$(yarn bin)/web-ext" lint' workflows: version: 2 build_test_lint: jobs: - lint - mozilla - unit