aliases: - &restore-cache keys: - dependencies-{{ .Branch }}-{{ checksum "package.json" }} # Fallback in case checksum fails - dependencies-{{ .Branch }}- - &save-cache paths: - node_modules key: dependencies-{{ .Branch }}-{{ checksum "package.json" }} - &deploy-website command: | # Deploy Metro website git config --global user.email "metro-bot@users.noreply.github.com" git config --global user.name "Website Deployment Script" echo "machine github.com login metro-bot password $GITHUB_TOKEN" > ~/.netrc # install Docusaurus and generate file of English strings cd website && yarn && yarn run write-translations # build and publish website GIT_USER=metro-bot yarn run publish-gh-pages version: 2 jobs: run-js-checks: working_directory: ~/metro docker: - image: circleci/node:8 steps: - checkout - restore-cache: *restore-cache - run: yarn --no-progress - save-cache: *save-cache - run: yarn run test-ci test-node-9: working_directory: ~/metro docker: - image: circleci/node:9 steps: - checkout - restore-cache: *restore-cache - run: yarn --no-progress - save-cache: *save-cache - run: yarn run jest test-node-8: working_directory: ~/metro docker: - image: circleci/node:8 steps: - checkout - restore-cache: *restore-cache - run: yarn --no-progress - save-cache: *save-cache - run: yarn run jest test-node-6: working_directory: ~/metro docker: - image: circleci/node:6 steps: - checkout - restore-cache: *restore-cache - run: sudo npm i -g yarn@^1.2.1 - run: yarn --no-progress - save-cache: *save-cache - run: yarn run jest publish-to-npm: working_directory: ~/metro docker: - image: circleci/node:8 steps: - checkout - restore-cache: *restore-cache - run: working_directory: packages/metro command: yarn --no-progress - save-cache: *save-cache - run: working_directory: ~/metro command: npm run publish test-and-deploy-website: working_directory: ~/metro docker: - image: circleci/node:8 steps: - checkout - restore-cache: *restore-cache - run: | cd website yarn --no-progress - save-cache: *save-cache - deploy: *deploy-website # Workflows enables us to run multiple jobs in parallel workflows: version: 2 build-and-deploy: jobs: - run-js-checks - test-node-6 - test-node-8 - test-node-9 - test-and-deploy-website - publish-to-npm: filters: branches: ignore: /.*/ tags: only: /v[0-9]+(\.[0-9]+)*/