version: 2 defaults: &defaults working_directory: ~/project docker: - image: circleci/node:12.8.1-browsers jobs: test-node: <<: *defaults steps: - checkout - run: 'yarn install' - run: 'yarn lint:ci' - run: 'yarn build:ci' - run: 'yarn test:node --maxWorkers=4' - run: name: Parser Preview command: ./scripts/pr-parser-preview.sh when: always - store_artifacts: path: tmp/artifacts - persist_to_workspace: root: ~/project paths: . test-web: <<: *defaults steps: - attach_workspace: at: ~/project - checkout - run: 'yarn install' - run: 'yarn test:web --maxWorkers=4' - run: 'yarn build:web:ci --maxWorkers=4' deploy: <<: *defaults steps: - attach_workspace: at: ~/project - run: name: Authenticate with registry command: echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/project/.npmrc - run: name: Publish package command: npm publish --access public update-fixtures: docker: - image: circleci/node:12.8.1 steps: - checkout - run: 'yarn install' - run: 'node ./scripts/update-fixtures.js' workflows: version: 2 build_and_test: jobs: - test-node: filters: # required since `deploy` has tag filters AND requires `test-node` branches: only: /.*/ tags: only: /.*/ - test-web: filters: # required since `deploy` has tag filters AND requires `test-web` branches: only: /.*/ tags: only: /.*/ - deploy: requires: - test-node - test-web filters: tags: only: /^v.*/ branches: ignore: /.*/ # UNCOMMENT WHEN READY TO AUTOMATE THIS TASK # scheduled_tasks: # triggers: # # run once per hour # - schedule: # cron: "0 * * * *" # filters: # branches: # only: # - master # jobs: # - update-fixtures