version: 2 defaults: &defaults working_directory: ~/project/vue docker: - image: vuejs/ci jobs: install: <<: *defaults steps: - checkout - restore_cache: keys: - v1-vue-{{ .Branch }}-{{ checksum "yarn.lock" }} - v1-vue-{{ .Branch }}- - v1-vue- - run: npm install - save_cache: key: v1-vue-{{ .Branch }}-{{ checksum "yarn.lock" }} paths: - node_modules/ - persist_to_workspace: root: ~/project paths: - vue lint-flow-types: <<: *defaults steps: - attach_workspace: at: ~/project - run: npm run lint - run: npm run flow - run: npm run test:types test-cover: <<: *defaults steps: - attach_workspace: at: ~/project - run: npm run test:cover - run: name: report coverage stats for non-PRs command: | if [[ -z $CI_PULL_REQUEST ]]; then ./node_modules/.bin/codecov fi test-e2e: <<: *defaults steps: - attach_workspace: at: ~/project - run: npm run test:e2e -- --env phantomjs test-ssr-weex: <<: *defaults steps: - attach_workspace: at: ~/project - run: npm run test:ssr - run: npm run test:weex trigger-regression-test: <<: *defaults steps: - run: command: | curl --user ${CIRCLE_TOKEN}: \ --data build_parameters[CIRCLE_JOB]=update \ --data build_parameters[VUE_REVISION]=${CIRCLE_SHA1} \ https://circleci.com/api/v1.1/project/github/vuejs/regression-testing/tree/master workflows: version: 2 install-and-parallel-test: jobs: - install - test-cover: requires: - install - lint-flow-types: requires: - install - test-e2e: requires: - install - test-ssr-weex: requires: - install - trigger-regression-test: filters: branches: only: - regression-test requires: - test-cover - lint-flow-types - test-e2e - test-ssr-weex weekly_regression_test: triggers: - schedule: # At 13:00 UTC (9:00 EDT) on every Monday cron: "0 13 * * 1" filters: branches: only: dev jobs: - install - test-cover: requires: - install - lint-flow-types: requires: - install - test-e2e: requires: - install - test-ssr-weex: requires: - install - trigger-regression-test: requires: - test-cover - lint-flow-types - test-e2e - test-ssr-weex