mirror of https://github.com/status-im/metro.git
115 lines
2.9 KiB
YAML
115 lines
2.9 KiB
YAML
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:
|
|
command: echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
|
|
- 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]+)*/
|