diff --git a/.circleci/config.yml b/.circleci/config.yml index 24fcca76a573281c7b5294c7219606a570cbd791..310c794f7c2d337f71a45905e61aa1ca0333d2b9 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -44,23 +44,33 @@ aliases: working_directory: ~/repo jobs: - build: + setup: <<: *config_job_environment - environment: - NODE_ENV: production - JEST_JUNIT_OUTPUT_NAME: results.xml steps: - *step_restore_git_cache - checkout - *step_save_git_cache - - *step_restore_dependency_cache - - run: sudo npm install -g greenkeeper-lockfile - - run: npm --production=false install - - run: greenkeeper-lockfile-update + - run: npm ci - *step_save_dependency_cache + lint: + <<: *config_job_environment + steps: + - *step_restore_git_cache + - checkout + - *step_restore_dependency_cache - run: name: Lint command: npm run test:lint -- --quiet --output-file test-results/eslint/results.xml --format junit + - store_test_results: + path: test-results + unit: + <<: *config_job_environment + environment: + JEST_JUNIT_OUTPUT_NAME: results.xml + steps: + - *step_restore_git_cache + - checkout + - *step_restore_dependency_cache - run: name: Unit environment: @@ -68,6 +78,17 @@ jobs: command: npm run test:unit -- --reporters="default" --reporters="jest-junit" --coverage --coverageReporters=text --coverageReporters=lcov - store_artifacts: path: coverage + - store_test_results: + path: test-results + build: + <<: *config_job_environment + environment: + NODE_ENV: production + NODE_OPTIONS: --max-old-space-size=4000 + steps: + - *step_restore_git_cache + - checkout + - *step_restore_dependency_cache - run: name: Build command: npm run build @@ -77,6 +98,15 @@ jobs: path: dist - *step_save_build_cache - *step_save_dist_cache + integration: + <<: *config_job_environment + environment: + JEST_JUNIT_OUTPUT_NAME: results.txt + steps: + - *step_restore_git_cache + - checkout + - *step_restore_dependency_cache + - *step_restore_build_cache - run: name: Integration environment: @@ -84,7 +114,6 @@ jobs: command: npm run test:integration -- --reporters="default" --reporters="jest-junit" - store_test_results: path: test-results - - run: greenkeeper-lockfile-upload deploy-npm: <<: *config_job_environment @@ -124,11 +153,26 @@ jobs: workflows: version: 2 - build_and_deploy: + build-test-deploy: jobs: - - build + - setup + - lint: + requires: + - setup + - unit: + requires: + - setup + - build: + requires: + - setup + - integration: + requires: + - build - deploy-npm: requires: + - lint + - unit + - integration - build filters: branches: @@ -139,4 +183,7 @@ workflows: - /^hotfix\/.*/ - deploy-gh-pages: requires: + - lint + - unit + - integration - build