mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-02-11 09:20:54 +08:00
Migrate to CircleCI v2 (#1517)
Use the new Docker-based, beta version of CircleCI. This adds a docker image that has the correct deps to run flow, and then migrates from the old circle.yml format to the new. This gets test runs wayyyyy down. Earlier today, on the old stack, before optimizations, we were at > 9 min for PR builds (aka, CI runs without a website deploy). The build for this PR ran in 1 min 33 seconds. Woo!
This commit is contained in:
@@ -1,33 +1,31 @@
|
||||
machine:
|
||||
node:
|
||||
version: 6
|
||||
environment:
|
||||
PATH: "${PATH}:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"
|
||||
|
||||
dependencies:
|
||||
pre:
|
||||
- curl -o- -L https://yarnpkg.com/install.sh | bash
|
||||
cache_directories:
|
||||
- ~/.cache/yarn
|
||||
- ./website/node_modules
|
||||
- ./examples/NavigationPlayground/node_modules
|
||||
- ./examples/ReduxExample/node_modules
|
||||
override:
|
||||
- yarn
|
||||
- cd website && yarn
|
||||
- cd examples/NavigationPlayground && yarn
|
||||
- cd examples/ReduxExample && yarn
|
||||
|
||||
test:
|
||||
override:
|
||||
- ./scripts/test.sh:
|
||||
parallel: true
|
||||
post:
|
||||
- yarn codecov
|
||||
|
||||
deployment:
|
||||
website-prod:
|
||||
branch: master
|
||||
commands:
|
||||
- yarn run build-docs
|
||||
- ./scripts/deploy-website.sh
|
||||
version: 2
|
||||
jobs:
|
||||
build:
|
||||
docker:
|
||||
- image: reactcommunity/node-ci:7.10.0 # custom image -- includes ocaml, libelf1, Yarn
|
||||
parallelism: 3
|
||||
working_directory: ~/react-navigation
|
||||
steps:
|
||||
- checkout
|
||||
- restore_cache:
|
||||
key: v1-react-navigation-{{ .Branch }} # generate cache per branch
|
||||
- run:
|
||||
command: |
|
||||
yarn
|
||||
cd website && yarn && cd ../
|
||||
cd examples/NavigationPlayground && yarn && cd ../../
|
||||
cd examples/ReduxExample && yarn && cd ../../
|
||||
- save_cache:
|
||||
key: v1-react-navigation-{{ .Branch }} # generate cache per branch
|
||||
paths:
|
||||
- ~/.cache/yarn
|
||||
- ~/react-navigation/website/node_modules
|
||||
- ~/react-navigation/examples/NavigationPlayground/node_modules
|
||||
- ~/react-navigation/examples/ReduxExample/node_modules
|
||||
- run: ./scripts/test.sh
|
||||
- deploy:
|
||||
command: |
|
||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||
yarn run build-docs
|
||||
./scripts/deploy-website.sh
|
||||
fi
|
||||
|
||||
6
packages/react-navigation/scripts/build-push-docker.sh
Executable file
6
packages/react-navigation/scripts/build-push-docker.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
docker build -t reactcommunity/node-ci:7.10.0 -f ./ci.Dockerfile .
|
||||
docker push reactcommunity/node-ci:7.10.0
|
||||
6
packages/react-navigation/scripts/ci.Dockerfile
Normal file
6
packages/react-navigation/scripts/ci.Dockerfile
Normal file
@@ -0,0 +1,6 @@
|
||||
FROM node:7.10.0
|
||||
|
||||
RUN apt-get update -y && \
|
||||
apt-get install -y ocaml libelf1 && \
|
||||
rm -rf /var/lib/apt/lists/* && \
|
||||
curl -o- -L https://yarnpkg.com/install.sh | bash
|
||||
0
packages/react-navigation/scripts/compile-docs.js
vendored
Normal file → Executable file
0
packages/react-navigation/scripts/compile-docs.js
vendored
Normal file → Executable file
@@ -3,7 +3,7 @@
|
||||
set -eo pipefail
|
||||
|
||||
case $CIRCLE_NODE_INDEX in
|
||||
0) yarn test ;;
|
||||
0) yarn test && yarn codecov ;;
|
||||
1) cd examples/NavigationPlayground && yarn test ;;
|
||||
2) cd examples/ReduxExample && yarn test ;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user