From 5abc616a79f19a9bb40910473e4d46574985c8cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 21 Mar 2016 16:47:38 -0700 Subject: [PATCH 01/62] Initial CircleCI config --- circle.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 circle.yml diff --git a/circle.yml b/circle.yml new file mode 100644 index 0000000000000..583eb8bb67aa0 --- /dev/null +++ b/circle.yml @@ -0,0 +1,11 @@ +--- +general: + branches: + ignore: + - gh-pages + +machine: + node: + version: 4 + ruby: + version: 2.2.3 From 2a963c73caa59d1843dcf457bbd828d05693c268 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 21 Mar 2016 18:26:42 -0700 Subject: [PATCH 02/62] circle timezone --- circle.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/circle.yml b/circle.yml index 583eb8bb67aa0..5687c6dfdd76d 100644 --- a/circle.yml +++ b/circle.yml @@ -5,6 +5,7 @@ general: - gh-pages machine: + timezone: America/Los_Angeles node: version: 4 ruby: From 06a836c484a66b8838ce03916fc53734498ea799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 21 Mar 2016 18:35:24 -0700 Subject: [PATCH 03/62] more circle --- circle.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/circle.yml b/circle.yml index 5687c6dfdd76d..83b38e1492a14 100644 --- a/circle.yml +++ b/circle.yml @@ -10,3 +10,11 @@ machine: version: 4 ruby: version: 2.2.3 + +dependencies: + post: + - npm install -g grunt + - npm ls --depth=0 + +test: + override: grunt jest:normal From 92887980e8426990309b72fe8b6c4c260cf71fed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 21 Mar 2016 18:41:41 -0700 Subject: [PATCH 04/62] fix circle --- circle.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/circle.yml b/circle.yml index 83b38e1492a14..b2dddf5245215 100644 --- a/circle.yml +++ b/circle.yml @@ -13,8 +13,8 @@ machine: dependencies: post: - - npm install -g grunt - npm ls --depth=0 test: - override: grunt jest:normal + override: + - ./node_modules/bin/grunt jest:normal From 05a3eaab0a75184ce1850533108fc13bb27a52d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 21 Mar 2016 18:55:57 -0700 Subject: [PATCH 05/62] circle npm bin path --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index b2dddf5245215..ba9864265f6f0 100644 --- a/circle.yml +++ b/circle.yml @@ -17,4 +17,4 @@ dependencies: test: override: - - ./node_modules/bin/grunt jest:normal + - ./node_modules/.bin/grunt jest:normal From 072b0871e2bb436d63df18e2c5039edb99c7120c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 21 Mar 2016 18:59:03 -0700 Subject: [PATCH 06/62] lint too --- circle.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/circle.yml b/circle.yml index ba9864265f6f0..9cb9969701cc0 100644 --- a/circle.yml +++ b/circle.yml @@ -18,3 +18,4 @@ dependencies: test: override: - ./node_modules/.bin/grunt jest:normal + - ./node_modules/.bin/grunt lint From 1111e51e1f01238a5f7a6f7f9c8b288694bfaf99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 21 Mar 2016 19:20:17 -0700 Subject: [PATCH 07/62] max out at 8 jest workers to prevent blowing memory limit --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 4b5cf100a644b..5a3f116d9d6e3 100644 --- a/package.json +++ b/package.json @@ -94,6 +94,7 @@ "flow": "flow" }, "jest": { + "maxWorkers": 8, "modulePathIgnorePatterns": [ "/.module-cache/", "/react/build/" From 5667104403f887226a46c7a71560d6d3ab4f5109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 21 Mar 2016 19:29:55 -0700 Subject: [PATCH 08/62] jest option name changed... --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5a3f116d9d6e3..36bb6e09b0020 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "flow": "flow" }, "jest": { - "maxWorkers": 8, + "maxRunners": 8, "modulePathIgnorePatterns": [ "/.module-cache/", "/react/build/" From 516bda9b8d2aa14a4c15bd613eca72d9e57e0fd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 21 Mar 2016 19:46:26 -0700 Subject: [PATCH 09/62] jest configuration sucks --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 36bb6e09b0020..4b5cf100a644b 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,6 @@ "flow": "flow" }, "jest": { - "maxRunners": 8, "modulePathIgnorePatterns": [ "/.module-cache/", "/react/build/" From 9a60b7457133c8f0f5ab7057761dcf65f30eedcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 22 Mar 2016 12:05:07 -0700 Subject: [PATCH 10/62] update instead of install --- circle.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/circle.yml b/circle.yml index 9cb9969701cc0..69ee97091c168 100644 --- a/circle.yml +++ b/circle.yml @@ -12,6 +12,8 @@ machine: version: 2.2.3 dependencies: + override: + - npm update post: - npm ls --depth=0 From a9a7151ab56396983e8441f317e2b662959596d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 22 Mar 2016 15:17:11 -0700 Subject: [PATCH 11/62] install docs bundle & cache it --- circle.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/circle.yml b/circle.yml index 69ee97091c168..3d73c5f90b6e9 100644 --- a/circle.yml +++ b/circle.yml @@ -14,8 +14,11 @@ machine: dependencies: override: - npm update + - bundle install --gemfile=docs/Gemfile --deployment --path=docs/vendor/bundle --jobs=3 --retry=3 post: - npm ls --depth=0 + cache_directories: + - docs/vendor/bundle test: override: From 067aac340152119cae13b861a812402c256f1a64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 22 Mar 2016 16:30:15 -0700 Subject: [PATCH 12/62] bundle install to the right path --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 3d73c5f90b6e9..290bd4190b371 100644 --- a/circle.yml +++ b/circle.yml @@ -14,7 +14,7 @@ machine: dependencies: override: - npm update - - bundle install --gemfile=docs/Gemfile --deployment --path=docs/vendor/bundle --jobs=3 --retry=3 + - bundle install --gemfile=docs/Gemfile --deployment --path=vendor/bundle --jobs=3 --retry=3 post: - npm ls --depth=0 cache_directories: From 4ed0330136b418b459e37b91947edf9ae7a615eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 22 Mar 2016 17:08:32 -0700 Subject: [PATCH 13/62] Upload builds --- circle.yml | 7 +++++++ scripts/circleci/upload_build.sh | 23 +++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100755 scripts/circleci/upload_build.sh diff --git a/circle.yml b/circle.yml index 290bd4190b371..a411f195eedb5 100644 --- a/circle.yml +++ b/circle.yml @@ -24,3 +24,10 @@ test: override: - ./node_modules/.bin/grunt jest:normal - ./node_modules/.bin/grunt lint + pre: + - ./node_modules/.bin/grunt build + +deployment: + branch: /*/ + commands: + - ./scripts/upload_build.sh diff --git a/scripts/circleci/upload_build.sh b/scripts/circleci/upload_build.sh new file mode 100755 index 0000000000000..470b83e6daee4 --- /dev/null +++ b/scripts/circleci/upload_build.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e + +if [ -z $CI_PULL_REQUEST ]; then + curl \ + -F "react=@build/react.js" \ + -F "react.min=@build/react.min.js" \ + -F "react-with-addons=@build/react-with-addons.js" \ + -F "react-with-addons.min=@build/react-with-addons.min.js" \ + -F "react-dom=@build/react-dom.js" \ + -F "react-dom.min=@build/react-dom.min.js" \ + -F "react-dom-server=@build/react-dom-server.js" \ + -F "react-dom-server.min=@build/react-dom-server.min.js" \ + -F "npm-react=@build/packages/react.tgz" \ + -F "npm-react-dom=@build/packages/react-dom.tgz" \ + -F "commit=$CIRCLE_SHA1" \ + -F "date=`git log --format='%ct' -1`" \ + -F "pull_request=false" \ + -F "token=$BUILD_SERVER_TOKEN" \ + -F "branch=$CIRCLE_BRANCH" \ + $BUILD_SERVER_ENDPOINT +fi From 9958fd1c61f6d7c2274cbd79deb69937158607ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 22 Mar 2016 17:12:17 -0700 Subject: [PATCH 14/62] fix build probably --- circle.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/circle.yml b/circle.yml index a411f195eedb5..a5a7002ba64d0 100644 --- a/circle.yml +++ b/circle.yml @@ -28,6 +28,7 @@ test: - ./node_modules/.bin/grunt build deployment: - branch: /*/ - commands: - - ./scripts/upload_build.sh + build: + branch: /*/ + commands: + - ./scripts/upload_build.sh From 3fa3dcfc8c639dfd4a3acd204685a26bc5e5d2a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 22 Mar 2016 17:22:42 -0700 Subject: [PATCH 15/62] use magic staging name maybe --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index a5a7002ba64d0..363cd2995f51e 100644 --- a/circle.yml +++ b/circle.yml @@ -28,7 +28,7 @@ test: - ./node_modules/.bin/grunt build deployment: - build: + staging: branch: /*/ commands: - ./scripts/upload_build.sh From e5935b954dba0ded69e7535ff4d8056ba271bc52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 22 Mar 2016 17:23:11 -0700 Subject: [PATCH 16/62] Cache grunt dir too for build comparison results --- circle.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/circle.yml b/circle.yml index 363cd2995f51e..8930bec210ca4 100644 --- a/circle.yml +++ b/circle.yml @@ -19,6 +19,7 @@ dependencies: - npm ls --depth=0 cache_directories: - docs/vendor/bundle + - .grunt # Show size comparisons between builds test: override: From 077ac68542cbda5a0bc2c76bfd24101219fdbbe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 22 Mar 2016 17:40:58 -0700 Subject: [PATCH 17/62] stop running jest for now for faster turnaround, we know it works --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 8930bec210ca4..e1fb9f140caad 100644 --- a/circle.yml +++ b/circle.yml @@ -23,7 +23,7 @@ dependencies: test: override: - - ./node_modules/.bin/grunt jest:normal + # - ./node_modules/.bin/grunt jest:normal - ./node_modules/.bin/grunt lint pre: - ./node_modules/.bin/grunt build From b2582b9b2e9be5a09f490c9e937411aa0bb28be1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 22 Mar 2016 17:41:24 -0700 Subject: [PATCH 18/62] how do regexs work? --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index e1fb9f140caad..2f665f63e1f8e 100644 --- a/circle.yml +++ b/circle.yml @@ -30,6 +30,6 @@ test: deployment: staging: - branch: /*/ + branch: /.*/ commands: - ./scripts/upload_build.sh From 3b6574d8b42fe589ab46172bb454b8d81140326a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Tue, 22 Mar 2016 17:44:52 -0700 Subject: [PATCH 19/62] so dumb --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 2f665f63e1f8e..c0d28e37b2a4c 100644 --- a/circle.yml +++ b/circle.yml @@ -32,4 +32,4 @@ deployment: staging: branch: /.*/ commands: - - ./scripts/upload_build.sh + - ./scripts/circleci/upload_build.sh From 06fee656e94226c843194e893357f6f3edc77473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Wed, 23 Mar 2016 14:07:42 -0700 Subject: [PATCH 20/62] run server rendering test too --- circle.yml | 3 ++- scripts/circleci/set_feature_flag.sh | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 scripts/circleci/set_feature_flag.sh diff --git a/circle.yml b/circle.yml index c0d28e37b2a4c..197e11b543b79 100644 --- a/circle.yml +++ b/circle.yml @@ -23,8 +23,9 @@ dependencies: test: override: - # - ./node_modules/.bin/grunt jest:normal - ./node_modules/.bin/grunt lint + # - ./node_modules/.bin/grunt jest:normal + - ./scripts/circleci/set_feature_flag.sh && ./node_modules/.bin/grunt/jest:normal pre: - ./node_modules/.bin/grunt build diff --git a/scripts/circleci/set_feature_flag.sh b/scripts/circleci/set_feature_flag.sh new file mode 100644 index 0000000000000..1ba29ba7319e5 --- /dev/null +++ b/scripts/circleci/set_feature_flag.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +echo 'Testing in server-render (HTML generation) mode...' +printf '\nmodule.exports.useCreateElement = false;\n' >> src/renderers/dom/shared/ReactDOMFeatureFlags.js From 4ae51627d152cc0d1ce569cc8e67f634c391b767 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Wed, 23 Mar 2016 14:39:24 -0700 Subject: [PATCH 21/62] +x --- scripts/circleci/set_feature_flag.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 scripts/circleci/set_feature_flag.sh diff --git a/scripts/circleci/set_feature_flag.sh b/scripts/circleci/set_feature_flag.sh old mode 100644 new mode 100755 From 9d0d5fad67c8ce805fea37b2fd9307ba0e745076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Wed, 23 Mar 2016 14:52:40 -0700 Subject: [PATCH 22/62] dummy --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 197e11b543b79..e8d5e8d216d3d 100644 --- a/circle.yml +++ b/circle.yml @@ -25,7 +25,7 @@ test: override: - ./node_modules/.bin/grunt lint # - ./node_modules/.bin/grunt jest:normal - - ./scripts/circleci/set_feature_flag.sh && ./node_modules/.bin/grunt/jest:normal + - ./scripts/circleci/set_feature_flag.sh && ./node_modules/.bin/grunt jest:normal pre: - ./node_modules/.bin/grunt build From 7ba88cad35308d603decf16f78b19634b778bedf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Wed, 23 Mar 2016 15:09:15 -0700 Subject: [PATCH 23/62] build website disable tests again since they are running --- circle.yml | 3 ++- scripts/circleci/build_gh_pages.sh | 34 ++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 scripts/circleci/build_gh_pages.sh diff --git a/circle.yml b/circle.yml index e8d5e8d216d3d..968f92eaa4bbe 100644 --- a/circle.yml +++ b/circle.yml @@ -25,7 +25,7 @@ test: override: - ./node_modules/.bin/grunt lint # - ./node_modules/.bin/grunt jest:normal - - ./scripts/circleci/set_feature_flag.sh && ./node_modules/.bin/grunt jest:normal + # - ./scripts/circleci/set_feature_flag.sh && ./node_modules/.bin/grunt jest:normal pre: - ./node_modules/.bin/grunt build @@ -34,3 +34,4 @@ deployment: branch: /.*/ commands: - ./scripts/circleci/upload_build.sh + - ./scripts/circleci/build_gh_pages.sh diff --git a/scripts/circleci/build_gh_pages.sh b/scripts/circleci/build_gh_pages.sh new file mode 100644 index 0000000000000..57c0e13ee7df7 --- /dev/null +++ b/scripts/circleci/build_gh_pages.sh @@ -0,0 +1,34 @@ +#!/bin/sh + +set -e + +if [ -z $CI_PULL_REQUEST ] && [ "$CIRCLE_BRANCH" = "$REACT_WEBSITE_BRANCH" ]; then + + GH_PAGES_DIR=`pwd`/../react-gh-pages + echo "machine github.com login zpao password $GITHUB_TOKEN" >~/.netrc + git config --global user.name "Travis CI" + git config --global user.email "travis@reactjs.org" + + # TODO: check if directory exists (restored from cache) + # if [ -d $GH_PAGES_DIR ] + # pushd $GH_PAGES_DIR + # git pull origin gh-pages + # popd + # else + # clone + # fi + git clone --branch gh-pages --depth=1 \ + https://zpao@github.com/zpao/react.git \ + $GH_PAGES_DIR + pushd docs + bundle exec rake release + cd $GH_PAGES_DIR + git status + git diff + if ! git diff-index --quiet HEAD --; then + git add -A . + git commit -m "Rebuild website" + git push origin gh-pages + fi + popd +fi From a1aa2f987e2add87c6516dab8213c7720d0cb1c6 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Wed, 23 Mar 2016 15:59:42 -0700 Subject: [PATCH 24/62] actually build docs without failing --- circle.yml | 1 + scripts/circleci/build_gh_pages.sh | 24 +++++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) mode change 100644 => 100755 scripts/circleci/build_gh_pages.sh diff --git a/circle.yml b/circle.yml index 968f92eaa4bbe..53c8be84df1b6 100644 --- a/circle.yml +++ b/circle.yml @@ -20,6 +20,7 @@ dependencies: cache_directories: - docs/vendor/bundle - .grunt # Show size comparisons between builds + - $HOME/react-gh-pages # docs checkout test: override: diff --git a/scripts/circleci/build_gh_pages.sh b/scripts/circleci/build_gh_pages.sh old mode 100644 new mode 100755 index 57c0e13ee7df7..cc7d634e6f6f3 --- a/scripts/circleci/build_gh_pages.sh +++ b/scripts/circleci/build_gh_pages.sh @@ -10,25 +10,27 @@ if [ -z $CI_PULL_REQUEST ] && [ "$CIRCLE_BRANCH" = "$REACT_WEBSITE_BRANCH" ]; th git config --global user.email "travis@reactjs.org" # TODO: check if directory exists (restored from cache) - # if [ -d $GH_PAGES_DIR ] - # pushd $GH_PAGES_DIR - # git pull origin gh-pages - # popd - # else - # clone - # fi - git clone --branch gh-pages --depth=1 \ - https://zpao@github.com/zpao/react.git \ - $GH_PAGES_DIR + if [ -d $GH_PAGES_DIR ]; then + pushd $GH_PAGES_DIR + git pull origin gh-pages + popd + else + git clone --branch gh-pages --depth=1 \ + https://zpao@github.com/zpao/react.git \ + $GH_PAGES_DIR + fi + pushd docs bundle exec rake release cd $GH_PAGES_DIR git status - git diff + git --no-pager diff if ! git diff-index --quiet HEAD --; then git add -A . git commit -m "Rebuild website" git push origin gh-pages fi popd +else + echo "Not building website" fi From 2f9f25e0ac7e16de66b5c0170f4197029f9d1a25 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Wed, 23 Mar 2016 16:09:56 -0700 Subject: [PATCH 25/62] run everything in bash scripts to get that pushd builtin --- scripts/circleci/build_gh_pages.sh | 2 +- scripts/circleci/set_feature_flag.sh | 2 +- scripts/circleci/upload_build.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/circleci/build_gh_pages.sh b/scripts/circleci/build_gh_pages.sh index cc7d634e6f6f3..fa9fd55965a32 100755 --- a/scripts/circleci/build_gh_pages.sh +++ b/scripts/circleci/build_gh_pages.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -e diff --git a/scripts/circleci/set_feature_flag.sh b/scripts/circleci/set_feature_flag.sh index 1ba29ba7319e5..e668cc1c46279 100755 --- a/scripts/circleci/set_feature_flag.sh +++ b/scripts/circleci/set_feature_flag.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash echo 'Testing in server-render (HTML generation) mode...' printf '\nmodule.exports.useCreateElement = false;\n' >> src/renderers/dom/shared/ReactDOMFeatureFlags.js diff --git a/scripts/circleci/upload_build.sh b/scripts/circleci/upload_build.sh index 470b83e6daee4..540afb69b81fd 100755 --- a/scripts/circleci/upload_build.sh +++ b/scripts/circleci/upload_build.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash set -e From c938b56ba578ef624b3d5b807391f16c1ea6bb13 Mon Sep 17 00:00:00 2001 From: Travis CI Date: Wed, 23 Mar 2016 16:50:47 -0700 Subject: [PATCH 26/62] try to get the commit range --- circle.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/circle.yml b/circle.yml index 53c8be84df1b6..7cba872e5432a 100644 --- a/circle.yml +++ b/circle.yml @@ -10,11 +10,15 @@ machine: version: 4 ruby: version: 2.2.3 + environment: + COMMIT_RANGE: `echo CIRCLE_COMPARE_URL | cut -d/ -f7` dependencies: override: - npm update - bundle install --gemfile=docs/Gemfile --deployment --path=vendor/bundle --jobs=3 --retry=3 + pre: + - echo $COMMIT_RANGE post: - npm ls --depth=0 cache_directories: From 0e03b81e5ed5fd39e38a98ebe247d9a27aa986bc Mon Sep 17 00:00:00 2001 From: Travis CI Date: Wed, 23 Mar 2016 16:54:57 -0700 Subject: [PATCH 27/62] maybe this --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 7cba872e5432a..99c08e804305a 100644 --- a/circle.yml +++ b/circle.yml @@ -11,7 +11,7 @@ machine: ruby: version: 2.2.3 environment: - COMMIT_RANGE: `echo CIRCLE_COMPARE_URL | cut -d/ -f7` + COMMIT_RANGE: echo CIRCLE_COMPARE_URL | cut -d/ -f7 dependencies: override: From a120a37f307112b33a7546a0f52103bbb16052d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 22:38:11 +0000 Subject: [PATCH 28/62] add yarn --- circle.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 99c08e804305a..875fb2e5882b6 100644 --- a/circle.yml +++ b/circle.yml @@ -15,16 +15,21 @@ machine: dependencies: override: - - npm update - bundle install --gemfile=docs/Gemfile --deployment --path=vendor/bundle --jobs=3 --retry=3 pre: - echo $COMMIT_RANGE + # install yarn + - sudo apt-key adv --fetch-keys http://dl.yarnpkg.com/debian/pubkey.gpg + - echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list + - sudo apt-get update -qq + - sudo apt-get install -y -qq yarn post: - npm ls --depth=0 cache_directories: - docs/vendor/bundle - .grunt # Show size comparisons between builds - $HOME/react-gh-pages # docs checkout + - "~/.yarn-cache" test: override: From 05423f1882ce6004ed401bc95da3bf6eabf5e599 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 22:42:26 +0000 Subject: [PATCH 29/62] yarn install --- circle.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/circle.yml b/circle.yml index 875fb2e5882b6..2e5ba11393dee 100644 --- a/circle.yml +++ b/circle.yml @@ -16,6 +16,7 @@ machine: dependencies: override: - bundle install --gemfile=docs/Gemfile --deployment --path=vendor/bundle --jobs=3 --retry=3 + - yarn install pre: - echo $COMMIT_RANGE # install yarn From a771f2121614e1cee103a62ec3ae2a769cf4890c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 22:42:41 +0000 Subject: [PATCH 30/62] cache bundler --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 2e5ba11393dee..4aaaf42cebc2d 100644 --- a/circle.yml +++ b/circle.yml @@ -27,7 +27,7 @@ dependencies: post: - npm ls --depth=0 cache_directories: - - docs/vendor/bundle + - vendor/bundle - .grunt # Show size comparisons between builds - $HOME/react-gh-pages # docs checkout - "~/.yarn-cache" From 5be76bbadfd2848a34210062974ad4742dd59f0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 22:46:01 +0000 Subject: [PATCH 31/62] don't npm ls --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 4aaaf42cebc2d..3549ad9d07743 100644 --- a/circle.yml +++ b/circle.yml @@ -25,7 +25,7 @@ dependencies: - sudo apt-get update -qq - sudo apt-get install -y -qq yarn post: - - npm ls --depth=0 + # - npm ls --depth=0 cache_directories: - vendor/bundle - .grunt # Show size comparisons between builds From e7b951e9daa3607c53cc4f3bbbb11e4f8d1d9fcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 23:00:09 +0000 Subject: [PATCH 32/62] play with caching --- circle.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/circle.yml b/circle.yml index 3549ad9d07743..ccb464fd93765 100644 --- a/circle.yml +++ b/circle.yml @@ -27,10 +27,10 @@ dependencies: post: # - npm ls --depth=0 cache_directories: - - vendor/bundle + - docs/vendor/bundle - .grunt # Show size comparisons between builds - - $HOME/react-gh-pages # docs checkout - - "~/.yarn-cache" + - ~/react-gh-pages # docs checkout + - ~/.yarn-cache test: override: From fbb626e5457157ec83e3f97a1ab890312f7d9233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 23:03:38 +0000 Subject: [PATCH 33/62] try jest again --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index ccb464fd93765..553f0ef5cd41f 100644 --- a/circle.yml +++ b/circle.yml @@ -35,7 +35,7 @@ dependencies: test: override: - ./node_modules/.bin/grunt lint - # - ./node_modules/.bin/grunt jest:normal + - ./node_modules/.bin/grunt jest:normal # - ./scripts/circleci/set_feature_flag.sh && ./node_modules/.bin/grunt jest:normal pre: - ./node_modules/.bin/grunt build From f433e6222904bf8edb00c8b2890fb8f5a74fb544 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 23:12:41 +0000 Subject: [PATCH 34/62] better jest, run in band --- grunt/tasks/jest.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grunt/tasks/jest.js b/grunt/tasks/jest.js index 8cc2c47193ddf..e72eeebed35aa 100644 --- a/grunt/tasks/jest.js +++ b/grunt/tasks/jest.js @@ -7,7 +7,7 @@ function run(done, coverage) { grunt.log.writeln('running jest'); var args = [ - path.join('node_modules', 'jest-cli', 'bin', 'jest'), + path.join('node_modules', 'jest-cli', 'bin', 'jest', '--runInBand'), ]; if (coverage) { args.push('--coverage'); From bbfae27f2401ec256cc795184e3a70f81d79132a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 23:16:32 +0000 Subject: [PATCH 35/62] fi runinband --- grunt/tasks/jest.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/grunt/tasks/jest.js b/grunt/tasks/jest.js index e72eeebed35aa..c95dfb992cd83 100644 --- a/grunt/tasks/jest.js +++ b/grunt/tasks/jest.js @@ -7,7 +7,8 @@ function run(done, coverage) { grunt.log.writeln('running jest'); var args = [ - path.join('node_modules', 'jest-cli', 'bin', 'jest', '--runInBand'), + path.join('node_modules', 'jest-cli', 'bin', 'jest'), + '--runInBand', ]; if (coverage) { args.push('--coverage'); From 18352762ab68a448c3783749567e55e864c23e02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 23:17:05 +0000 Subject: [PATCH 36/62] disable build steps so we get to tests faster --- circle.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/circle.yml b/circle.yml index 553f0ef5cd41f..2cc690509d779 100644 --- a/circle.yml +++ b/circle.yml @@ -34,11 +34,11 @@ dependencies: test: override: - - ./node_modules/.bin/grunt lint + # - ./node_modules/.bin/grunt lint - ./node_modules/.bin/grunt jest:normal # - ./scripts/circleci/set_feature_flag.sh && ./node_modules/.bin/grunt jest:normal pre: - - ./node_modules/.bin/grunt build + # - ./node_modules/.bin/grunt build deployment: staging: From 90265c6fe603f2f8681822e82a7ea7abd57a129c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 23:25:55 +0000 Subject: [PATCH 37/62] stop tryign to upload build artifacts --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 2cc690509d779..9b54a17db0e17 100644 --- a/circle.yml +++ b/circle.yml @@ -44,5 +44,5 @@ deployment: staging: branch: /.*/ commands: - - ./scripts/circleci/upload_build.sh + # - ./scripts/circleci/upload_build.sh - ./scripts/circleci/build_gh_pages.sh From b8e2af5711c9d807fc3a74c93f2bba9b8cc9ef32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 23:26:23 +0000 Subject: [PATCH 38/62] run flow --- circle.yml | 2 ++ scripts/circleci/flow.sh | 10 ++++++++++ 2 files changed, 12 insertions(+) create mode 100755 scripts/circleci/flow.sh diff --git a/circle.yml b/circle.yml index 9b54a17db0e17..71ff7a9227563 100644 --- a/circle.yml +++ b/circle.yml @@ -12,6 +12,7 @@ machine: version: 2.2.3 environment: COMMIT_RANGE: echo CIRCLE_COMPARE_URL | cut -d/ -f7 + TRAVIS_REPO_SLUG: zpao/react dependencies: override: @@ -37,6 +38,7 @@ test: # - ./node_modules/.bin/grunt lint - ./node_modules/.bin/grunt jest:normal # - ./scripts/circleci/set_feature_flag.sh && ./node_modules/.bin/grunt jest:normal + - ./scripts/circleci/flow.sh pre: # - ./node_modules/.bin/grunt build diff --git a/scripts/circleci/flow.sh b/scripts/circleci/flow.sh new file mode 100755 index 0000000000000..ad0bea6e4aac9 --- /dev/null +++ b/scripts/circleci/flow.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -e +./node_modules/.bin/grunt flow + +ALL_FILES=`find src -name '*.js' | grep -v umd/ | grep -v __tests__ | grep -v __mocks__` +COUNT_ALL_FILES=`echo "$ALL_FILES" | wc -l` +COUNT_WITH_FLOW=`grep '@flow' $ALL_FILES | perl -pe 's/:.+//' | wc -l` +node scripts/facts-tracker/index.js \ + "flow-files" "$COUNT_WITH_FLOW/$COUNT_ALL_FILES" From f293dce4a1914bc34a378bd9c94b8328d4ab6b03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 21 Mar 2016 19:20:17 -0700 Subject: [PATCH 39/62] max out at 8 jest workers to prevent blowing memory limit --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 4b5cf100a644b..5a3f116d9d6e3 100644 --- a/package.json +++ b/package.json @@ -94,6 +94,7 @@ "flow": "flow" }, "jest": { + "maxWorkers": 8, "modulePathIgnorePatterns": [ "/.module-cache/", "/react/build/" From 59bd23b3ede717b65d0b296273953d25ffc380c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 21 Mar 2016 19:29:55 -0700 Subject: [PATCH 40/62] jest option name changed... --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5a3f116d9d6e3..36bb6e09b0020 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "flow": "flow" }, "jest": { - "maxWorkers": 8, + "maxRunners": 8, "modulePathIgnorePatterns": [ "/.module-cache/", "/react/build/" From c083f2cf0da4e6512250600d4dde0bf00b7f5793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Mon, 21 Mar 2016 19:46:26 -0700 Subject: [PATCH 41/62] jest configuration sucks --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 36bb6e09b0020..4b5cf100a644b 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,6 @@ "flow": "flow" }, "jest": { - "maxRunners": 8, "modulePathIgnorePatterns": [ "/.module-cache/", "/react/build/" From ae0a1461e6cb8099c9877135f7d5573b3302a96e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 22:42:41 +0000 Subject: [PATCH 42/62] cache bundler --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 71ff7a9227563..1938926cea0c5 100644 --- a/circle.yml +++ b/circle.yml @@ -28,7 +28,7 @@ dependencies: post: # - npm ls --depth=0 cache_directories: - - docs/vendor/bundle + - vendor/bundle - .grunt # Show size comparisons between builds - ~/react-gh-pages # docs checkout - ~/.yarn-cache From c64aa1d63ed8a28a12fbed1222b3a5f5091d8350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Paul=20O=E2=80=99Shannessy?= Date: Fri, 18 Nov 2016 23:00:09 +0000 Subject: [PATCH 43/62] play with caching --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 1938926cea0c5..71ff7a9227563 100644 --- a/circle.yml +++ b/circle.yml @@ -28,7 +28,7 @@ dependencies: post: # - npm ls --depth=0 cache_directories: - - vendor/bundle + - docs/vendor/bundle - .grunt # Show size comparisons between builds - ~/react-gh-pages # docs checkout - ~/.yarn-cache From 8a97e959456666febfa8030e4e06b77d51f05b6c Mon Sep 17 00:00:00 2001 From: tomocchino Date: Wed, 30 Nov 2016 13:54:37 -0800 Subject: [PATCH 44/62] upgrade node to v6, and test circle again --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 71ff7a9227563..86db8a1e1ea48 100644 --- a/circle.yml +++ b/circle.yml @@ -7,7 +7,7 @@ general: machine: timezone: America/Los_Angeles node: - version: 4 + version: 6 ruby: version: 2.2.3 environment: From 024c36b1e3aceddeebe8fcc7441e743b051d7795 Mon Sep 17 00:00:00 2001 From: tomocchino Date: Wed, 30 Nov 2016 14:16:57 -0800 Subject: [PATCH 45/62] run lint and jest:coverage --- circle.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 86db8a1e1ea48..5491bc254f025 100644 --- a/circle.yml +++ b/circle.yml @@ -35,8 +35,9 @@ dependencies: test: override: - # - ./node_modules/.bin/grunt lint + - ./node_modules/.bin/grunt lint - ./node_modules/.bin/grunt jest:normal + - ./node_modules/.bin/grunt jest:coverage # - ./scripts/circleci/set_feature_flag.sh && ./node_modules/.bin/grunt jest:normal - ./scripts/circleci/flow.sh pre: From 6e30a166b6df4319808bc40591b2625c1a2b2203 Mon Sep 17 00:00:00 2001 From: tomocchino Date: Wed, 30 Nov 2016 15:09:40 -0800 Subject: [PATCH 46/62] test html generation --- circle.yml | 3 +-- scripts/circleci/set_feature_flag.sh | 4 ---- scripts/circleci/test_html_generation.sh | 7 +++++++ 3 files changed, 8 insertions(+), 6 deletions(-) delete mode 100755 scripts/circleci/set_feature_flag.sh create mode 100755 scripts/circleci/test_html_generation.sh diff --git a/circle.yml b/circle.yml index 5491bc254f025..e515381609bcb 100644 --- a/circle.yml +++ b/circle.yml @@ -36,9 +36,8 @@ dependencies: test: override: - ./node_modules/.bin/grunt lint - - ./node_modules/.bin/grunt jest:normal - ./node_modules/.bin/grunt jest:coverage - # - ./scripts/circleci/set_feature_flag.sh && ./node_modules/.bin/grunt jest:normal + - ./scripts/circleci/test_html_generation.sh - ./scripts/circleci/flow.sh pre: # - ./node_modules/.bin/grunt build diff --git a/scripts/circleci/set_feature_flag.sh b/scripts/circleci/set_feature_flag.sh deleted file mode 100755 index e668cc1c46279..0000000000000 --- a/scripts/circleci/set_feature_flag.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -echo 'Testing in server-render (HTML generation) mode...' -printf '\nmodule.exports.useCreateElement = false;\n' >> src/renderers/dom/shared/ReactDOMFeatureFlags.js diff --git a/scripts/circleci/test_html_generation.sh b/scripts/circleci/test_html_generation.sh new file mode 100755 index 0000000000000..f98c3e80bd8a1 --- /dev/null +++ b/scripts/circleci/test_html_generation.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +echo 'Testing in server-render (HTML generation) mode...' +printf '\nmodule.exports.useCreateElement = false;\n' \ + >> src/renderers/dom/shared/ReactDOMFeatureFlags.js +./node_modules/.bin/grunt jest:normal +git checkout -- src/renderers/dom/shared/ReactDOMFeatureFlags.js From 5a5a385e78de5d0b9b8304acf86873e43059c31b Mon Sep 17 00:00:00 2001 From: tomocchino Date: Wed, 30 Nov 2016 15:25:27 -0800 Subject: [PATCH 47/62] rename flow.sh to track_flow_facts and move flow and lint to just use gulp directly --- circle.yml | 9 +++++---- scripts/circleci/{flow.sh => track_flow_facts.sh} | 6 +----- 2 files changed, 6 insertions(+), 9 deletions(-) rename scripts/circleci/{flow.sh => track_flow_facts.sh} (62%) diff --git a/circle.yml b/circle.yml index e515381609bcb..ef6d343bc39dc 100644 --- a/circle.yml +++ b/circle.yml @@ -34,13 +34,14 @@ dependencies: - ~/.yarn-cache test: + pre: + # - ./node_modules/.bin/grunt build override: - - ./node_modules/.bin/grunt lint + - ./node_modules/.bin/gulp lint + - ./node_modules/.bin/gulp flow - ./node_modules/.bin/grunt jest:coverage - ./scripts/circleci/test_html_generation.sh - - ./scripts/circleci/flow.sh - pre: - # - ./node_modules/.bin/grunt build + - ./scripts/circleci/track_flow_facts.sh deployment: staging: diff --git a/scripts/circleci/flow.sh b/scripts/circleci/track_flow_facts.sh similarity index 62% rename from scripts/circleci/flow.sh rename to scripts/circleci/track_flow_facts.sh index ad0bea6e4aac9..dd7cc69f163bd 100755 --- a/scripts/circleci/flow.sh +++ b/scripts/circleci/track_flow_facts.sh @@ -1,10 +1,6 @@ #!/bin/bash -set -e -./node_modules/.bin/grunt flow - ALL_FILES=`find src -name '*.js' | grep -v umd/ | grep -v __tests__ | grep -v __mocks__` COUNT_ALL_FILES=`echo "$ALL_FILES" | wc -l` COUNT_WITH_FLOW=`grep '@flow' $ALL_FILES | perl -pe 's/:.+//' | wc -l` -node scripts/facts-tracker/index.js \ - "flow-files" "$COUNT_WITH_FLOW/$COUNT_ALL_FILES" +node scripts/facts-tracker/index.js "flow-files" "$COUNT_WITH_FLOW/$COUNT_ALL_FILES" From db4b83421c8bacbd70b495031bccc54c32fcb855 Mon Sep 17 00:00:00 2001 From: tomocchino Date: Wed, 30 Nov 2016 15:37:03 -0800 Subject: [PATCH 48/62] mess with CIRCLE_COMPARE_URL --- circle.yml | 3 +-- scripts/circleci/test_html_generation.sh | 2 ++ scripts/circleci/track_flow_facts.sh | 2 ++ 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/circle.yml b/circle.yml index ef6d343bc39dc..3c41a91f3528d 100644 --- a/circle.yml +++ b/circle.yml @@ -11,7 +11,6 @@ machine: ruby: version: 2.2.3 environment: - COMMIT_RANGE: echo CIRCLE_COMPARE_URL | cut -d/ -f7 TRAVIS_REPO_SLUG: zpao/react dependencies: @@ -19,7 +18,7 @@ dependencies: - bundle install --gemfile=docs/Gemfile --deployment --path=vendor/bundle --jobs=3 --retry=3 - yarn install pre: - - echo $COMMIT_RANGE + - echo $CIRCLE_COMPARE_URL | cut -d/ -f7 # install yarn - sudo apt-key adv --fetch-keys http://dl.yarnpkg.com/debian/pubkey.gpg - echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list diff --git a/scripts/circleci/test_html_generation.sh b/scripts/circleci/test_html_generation.sh index f98c3e80bd8a1..0bedb26aea4ea 100755 --- a/scripts/circleci/test_html_generation.sh +++ b/scripts/circleci/test_html_generation.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e + echo 'Testing in server-render (HTML generation) mode...' printf '\nmodule.exports.useCreateElement = false;\n' \ >> src/renderers/dom/shared/ReactDOMFeatureFlags.js diff --git a/scripts/circleci/track_flow_facts.sh b/scripts/circleci/track_flow_facts.sh index dd7cc69f163bd..a8a3eae1fad21 100755 --- a/scripts/circleci/track_flow_facts.sh +++ b/scripts/circleci/track_flow_facts.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e + ALL_FILES=`find src -name '*.js' | grep -v umd/ | grep -v __tests__ | grep -v __mocks__` COUNT_ALL_FILES=`echo "$ALL_FILES" | wc -l` COUNT_WITH_FLOW=`grep '@flow' $ALL_FILES | perl -pe 's/:.+//' | wc -l` From 32a824b1e29640e513b7b48e85d01d95f0dd5b5c Mon Sep 17 00:00:00 2001 From: tomocchino Date: Wed, 30 Nov 2016 17:00:18 -0800 Subject: [PATCH 49/62] add extract-errors task --- circle.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/circle.yml b/circle.yml index 3c41a91f3528d..db4233ccae4f0 100644 --- a/circle.yml +++ b/circle.yml @@ -38,6 +38,7 @@ test: override: - ./node_modules/.bin/gulp lint - ./node_modules/.bin/gulp flow + - ./node_modules/.bin/gulp react:extract-errors - ./node_modules/.bin/grunt jest:coverage - ./scripts/circleci/test_html_generation.sh - ./scripts/circleci/track_flow_facts.sh From 3c6b26b9d20b61ff6d74072917403cbc4961a5e4 Mon Sep 17 00:00:00 2001 From: tomocchino Date: Wed, 30 Nov 2016 16:12:57 -0800 Subject: [PATCH 50/62] add test_fiber.sh --- circle.yml | 1 + scripts/circleci/test_fiber.sh | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100755 scripts/circleci/test_fiber.sh diff --git a/circle.yml b/circle.yml index db4233ccae4f0..2271d37fb6c85 100644 --- a/circle.yml +++ b/circle.yml @@ -41,6 +41,7 @@ test: - ./node_modules/.bin/gulp react:extract-errors - ./node_modules/.bin/grunt jest:coverage - ./scripts/circleci/test_html_generation.sh + - ./scripts/circleci/test_fiber.sh - ./scripts/circleci/track_flow_facts.sh deployment: diff --git a/scripts/circleci/test_fiber.sh b/scripts/circleci/test_fiber.sh new file mode 100755 index 0000000000000..d6b6380c2b02d --- /dev/null +++ b/scripts/circleci/test_fiber.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +set -e + +echo 'Testing in fiber mode...' +./scripts/fiber/record-tests --track-facts +git --no-pager diff scripts/fiber +FIBER_TESTS_STATUS=$(git status --porcelain scripts/fiber) +test -z "$FIBER_TESTS_STATUS" From f5cb809e331b1a4928ee445996fc8f3e62a6be96 Mon Sep 17 00:00:00 2001 From: tomocchino Date: Wed, 30 Nov 2016 19:34:20 -0800 Subject: [PATCH 51/62] disable fiber tests for now until I figure out how to run them with runInBand --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 2271d37fb6c85..5833320e83767 100644 --- a/circle.yml +++ b/circle.yml @@ -41,7 +41,7 @@ test: - ./node_modules/.bin/gulp react:extract-errors - ./node_modules/.bin/grunt jest:coverage - ./scripts/circleci/test_html_generation.sh - - ./scripts/circleci/test_fiber.sh + # - ./scripts/circleci/test_fiber.sh - ./scripts/circleci/track_flow_facts.sh deployment: From 34462e74e38559144966727b155165dbcfa18c73 Mon Sep 17 00:00:00 2001 From: tomocchino Date: Wed, 30 Nov 2016 21:21:53 -0800 Subject: [PATCH 52/62] reenable fiber tests with maxWorkers jest config set to 1 --- circle.yml | 2 +- scripts/fiber/record-tests | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/circle.yml b/circle.yml index 5833320e83767..1cb0d02bbcc47 100644 --- a/circle.yml +++ b/circle.yml @@ -40,8 +40,8 @@ test: - ./node_modules/.bin/gulp flow - ./node_modules/.bin/gulp react:extract-errors - ./node_modules/.bin/grunt jest:coverage + - ./scripts/circleci/test_fiber.sh - ./scripts/circleci/test_html_generation.sh - # - ./scripts/circleci/test_fiber.sh - ./scripts/circleci/track_flow_facts.sh deployment: diff --git a/scripts/fiber/record-tests b/scripts/fiber/record-tests index 7b0f5df09e8a2..d4575ec582632 100755 --- a/scripts/fiber/record-tests +++ b/scripts/fiber/record-tests @@ -92,7 +92,7 @@ function runJest() { hasteMap, config, { - maxWorkers: Math.max(os.cpus().length - 1, 1), + maxWorkers: 1, getTestSummary: () => 'You did it!' } ); From 9ed80555f6402ae66e0e74040bc444e263d756b1 Mon Sep 17 00:00:00 2001 From: tomocchino Date: Thu, 1 Dec 2016 16:50:26 -0800 Subject: [PATCH 53/62] change order of steps because errors are stupid --- circle.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/circle.yml b/circle.yml index 1cb0d02bbcc47..954fa59b7540f 100644 --- a/circle.yml +++ b/circle.yml @@ -38,11 +38,11 @@ test: override: - ./node_modules/.bin/gulp lint - ./node_modules/.bin/gulp flow - - ./node_modules/.bin/gulp react:extract-errors - ./node_modules/.bin/grunt jest:coverage - ./scripts/circleci/test_fiber.sh - ./scripts/circleci/test_html_generation.sh - ./scripts/circleci/track_flow_facts.sh + - ./node_modules/.bin/gulp react:extract-errors deployment: staging: From c8cc94ad0793943261aec217a8e8f966f3aabafe Mon Sep 17 00:00:00 2001 From: tomocchino Date: Thu, 1 Dec 2016 17:05:12 -0800 Subject: [PATCH 54/62] change gitconfig global username to Circle CI instead of Travis --- scripts/circleci/build_gh_pages.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/circleci/build_gh_pages.sh b/scripts/circleci/build_gh_pages.sh index fa9fd55965a32..98efe150c3d3f 100755 --- a/scripts/circleci/build_gh_pages.sh +++ b/scripts/circleci/build_gh_pages.sh @@ -6,8 +6,8 @@ if [ -z $CI_PULL_REQUEST ] && [ "$CIRCLE_BRANCH" = "$REACT_WEBSITE_BRANCH" ]; th GH_PAGES_DIR=`pwd`/../react-gh-pages echo "machine github.com login zpao password $GITHUB_TOKEN" >~/.netrc - git config --global user.name "Travis CI" - git config --global user.email "travis@reactjs.org" + git config --global user.name "Circle CI" + git config --global user.email "circle@reactjs.org" # TODO: check if directory exists (restored from cache) if [ -d $GH_PAGES_DIR ]; then From e8a43b2d9c9bc7e38c0ee9eb50d3b00c39b8f44e Mon Sep 17 00:00:00 2001 From: tomocchino Date: Thu, 1 Dec 2016 17:06:33 -0800 Subject: [PATCH 55/62] move test coverage tracking to a shell script so we can pipe the output to coveralls --- circle.yml | 2 +- scripts/circleci/track_coverage.sh | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100755 scripts/circleci/track_coverage.sh diff --git a/circle.yml b/circle.yml index 954fa59b7540f..eabe00a17582a 100644 --- a/circle.yml +++ b/circle.yml @@ -38,7 +38,7 @@ test: override: - ./node_modules/.bin/gulp lint - ./node_modules/.bin/gulp flow - - ./node_modules/.bin/grunt jest:coverage + - ./scripts/circleci/track_coverage.sh - ./scripts/circleci/test_fiber.sh - ./scripts/circleci/test_html_generation.sh - ./scripts/circleci/track_flow_facts.sh diff --git a/scripts/circleci/track_coverage.sh b/scripts/circleci/track_coverage.sh new file mode 100755 index 0000000000000..efeb4dab4a603 --- /dev/null +++ b/scripts/circleci/track_coverage.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -e + +./node_modules/.bin/grunt jest:coverage +cat ./coverage/lcov.info | ./node_modules/.bin/coveralls From 61e21a37ca5a1f4122e30ab9d99a98016de4bd87 Mon Sep 17 00:00:00 2001 From: tomocchino Date: Thu, 1 Dec 2016 17:45:37 -0800 Subject: [PATCH 56/62] switch order of pre and override for dependencies section --- circle.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/circle.yml b/circle.yml index eabe00a17582a..2d99a699f190a 100644 --- a/circle.yml +++ b/circle.yml @@ -14,9 +14,6 @@ machine: TRAVIS_REPO_SLUG: zpao/react dependencies: - override: - - bundle install --gemfile=docs/Gemfile --deployment --path=vendor/bundle --jobs=3 --retry=3 - - yarn install pre: - echo $CIRCLE_COMPARE_URL | cut -d/ -f7 # install yarn @@ -24,6 +21,9 @@ dependencies: - echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list - sudo apt-get update -qq - sudo apt-get install -y -qq yarn + override: + - bundle install --gemfile=docs/Gemfile --deployment --path=vendor/bundle --jobs=3 --retry=3 + - yarn install post: # - npm ls --depth=0 cache_directories: From c5438748465ceac0461a5f0eff7bef7a351984c1 Mon Sep 17 00:00:00 2001 From: tomocchino Date: Thu, 1 Dec 2016 23:33:06 -0800 Subject: [PATCH 57/62] rename and reorder some steps, enable the grunt build step --- circle.yml | 6 +++--- scripts/circleci/{track_coverage.sh => test_coverage.sh} | 0 scripts/circleci/{track_flow_facts.sh => track_stats.sh} | 0 3 files changed, 3 insertions(+), 3 deletions(-) rename scripts/circleci/{track_coverage.sh => test_coverage.sh} (100%) rename scripts/circleci/{track_flow_facts.sh => track_stats.sh} (100%) diff --git a/circle.yml b/circle.yml index 2d99a699f190a..27a61aa24bfa4 100644 --- a/circle.yml +++ b/circle.yml @@ -34,14 +34,14 @@ dependencies: test: pre: - # - ./node_modules/.bin/grunt build + - ./node_modules/.bin/grunt build override: - ./node_modules/.bin/gulp lint - ./node_modules/.bin/gulp flow - - ./scripts/circleci/track_coverage.sh + - ./scripts/circleci/test_coverage.sh - ./scripts/circleci/test_fiber.sh - ./scripts/circleci/test_html_generation.sh - - ./scripts/circleci/track_flow_facts.sh + - ./scripts/circleci/track_stats.sh - ./node_modules/.bin/gulp react:extract-errors deployment: diff --git a/scripts/circleci/track_coverage.sh b/scripts/circleci/test_coverage.sh similarity index 100% rename from scripts/circleci/track_coverage.sh rename to scripts/circleci/test_coverage.sh diff --git a/scripts/circleci/track_flow_facts.sh b/scripts/circleci/track_stats.sh similarity index 100% rename from scripts/circleci/track_flow_facts.sh rename to scripts/circleci/track_stats.sh From 79b091aa309eeb4b84389fc1dac374b10c96adcf Mon Sep 17 00:00:00 2001 From: tomocchino Date: Thu, 1 Dec 2016 23:38:55 -0800 Subject: [PATCH 58/62] move grunt build to post instead of pre because apparently it relies on extract-errors... this should ultimately just be moved into upload_build.sh, imo --- circle.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/circle.yml b/circle.yml index 27a61aa24bfa4..1850c1c6ee903 100644 --- a/circle.yml +++ b/circle.yml @@ -33,8 +33,6 @@ dependencies: - ~/.yarn-cache test: - pre: - - ./node_modules/.bin/grunt build override: - ./node_modules/.bin/gulp lint - ./node_modules/.bin/gulp flow @@ -43,6 +41,8 @@ test: - ./scripts/circleci/test_html_generation.sh - ./scripts/circleci/track_stats.sh - ./node_modules/.bin/gulp react:extract-errors + post: + - ./node_modules/.bin/grunt build deployment: staging: From 2e5d1e7722ad17d53822cbce3c6fea706bd71f41 Mon Sep 17 00:00:00 2001 From: tomocchino Date: Fri, 2 Dec 2016 00:05:17 -0800 Subject: [PATCH 59/62] document what is for --- circle.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/circle.yml b/circle.yml index 1850c1c6ee903..b1a0aec6f6703 100644 --- a/circle.yml +++ b/circle.yml @@ -15,6 +15,8 @@ machine: dependencies: pre: + # This is equivalent to $TRAVIS_COMMIT_RANGE + # Need to figure out how to bail early if this is a "docs only" build - echo $CIRCLE_COMPARE_URL | cut -d/ -f7 # install yarn - sudo apt-key adv --fetch-keys http://dl.yarnpkg.com/debian/pubkey.gpg From 99287c7458f375356874805a7568a66feb54767b Mon Sep 17 00:00:00 2001 From: tomocchino Date: Fri, 2 Dec 2016 12:45:51 -0800 Subject: [PATCH 60/62] move build back above extract errors --- circle.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/circle.yml b/circle.yml index b1a0aec6f6703..5140201b0a5f3 100644 --- a/circle.yml +++ b/circle.yml @@ -42,9 +42,8 @@ test: - ./scripts/circleci/test_fiber.sh - ./scripts/circleci/test_html_generation.sh - ./scripts/circleci/track_stats.sh - - ./node_modules/.bin/gulp react:extract-errors - post: - ./node_modules/.bin/grunt build + - ./node_modules/.bin/gulp react:extract-errors deployment: staging: From f383cff86644e09105eec6a95d078b6bc23b53f4 Mon Sep 17 00:00:00 2001 From: tomocchino Date: Fri, 2 Dec 2016 12:53:12 -0800 Subject: [PATCH 61/62] s/zpao/facebook|reactjs-bot/ and uncomment upload build.. fingers crossed --- circle.yml | 4 ++-- scripts/circleci/build_gh_pages.sh | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/circle.yml b/circle.yml index 5140201b0a5f3..eeaf42e15f28c 100644 --- a/circle.yml +++ b/circle.yml @@ -11,7 +11,7 @@ machine: ruby: version: 2.2.3 environment: - TRAVIS_REPO_SLUG: zpao/react + TRAVIS_REPO_SLUG: facebook/react dependencies: pre: @@ -49,5 +49,5 @@ deployment: staging: branch: /.*/ commands: - # - ./scripts/circleci/upload_build.sh + - ./scripts/circleci/upload_build.sh - ./scripts/circleci/build_gh_pages.sh diff --git a/scripts/circleci/build_gh_pages.sh b/scripts/circleci/build_gh_pages.sh index 98efe150c3d3f..8c825fa546f74 100755 --- a/scripts/circleci/build_gh_pages.sh +++ b/scripts/circleci/build_gh_pages.sh @@ -5,7 +5,7 @@ set -e if [ -z $CI_PULL_REQUEST ] && [ "$CIRCLE_BRANCH" = "$REACT_WEBSITE_BRANCH" ]; then GH_PAGES_DIR=`pwd`/../react-gh-pages - echo "machine github.com login zpao password $GITHUB_TOKEN" >~/.netrc + echo "machine github.com login reactjs-bot password $GITHUB_TOKEN" >~/.netrc git config --global user.name "Circle CI" git config --global user.email "circle@reactjs.org" @@ -16,7 +16,7 @@ if [ -z $CI_PULL_REQUEST ] && [ "$CIRCLE_BRANCH" = "$REACT_WEBSITE_BRANCH" ]; th popd else git clone --branch gh-pages --depth=1 \ - https://zpao@github.com/zpao/react.git \ + https://reactjs-bot@github.com/facebook/react.git \ $GH_PAGES_DIR fi From 54c7cd6fed6296f638f48e58e67f9f7fa07f1fff Mon Sep 17 00:00:00 2001 From: Ben Alpert Date: Fri, 2 Dec 2016 13:44:37 -0800 Subject: [PATCH 62/62] Set max workers back, set up github keys before facts --- circle.yml | 1 + scripts/circleci/build_gh_pages.sh | 5 +---- scripts/circleci/set_up_github_keys.sh | 12 ++++++++++++ scripts/circleci/test_fiber.sh | 2 +- scripts/fiber/record-tests | 13 ++++++++----- 5 files changed, 23 insertions(+), 10 deletions(-) create mode 100755 scripts/circleci/set_up_github_keys.sh diff --git a/circle.yml b/circle.yml index eeaf42e15f28c..0c81a0fd91beb 100644 --- a/circle.yml +++ b/circle.yml @@ -26,6 +26,7 @@ dependencies: override: - bundle install --gemfile=docs/Gemfile --deployment --path=vendor/bundle --jobs=3 --retry=3 - yarn install + - scripts/circleci/set_up_github_keys.sh post: # - npm ls --depth=0 cache_directories: diff --git a/scripts/circleci/build_gh_pages.sh b/scripts/circleci/build_gh_pages.sh index 8c825fa546f74..fcf49f2af95d8 100755 --- a/scripts/circleci/build_gh_pages.sh +++ b/scripts/circleci/build_gh_pages.sh @@ -5,11 +5,8 @@ set -e if [ -z $CI_PULL_REQUEST ] && [ "$CIRCLE_BRANCH" = "$REACT_WEBSITE_BRANCH" ]; then GH_PAGES_DIR=`pwd`/../react-gh-pages - echo "machine github.com login reactjs-bot password $GITHUB_TOKEN" >~/.netrc - git config --global user.name "Circle CI" - git config --global user.email "circle@reactjs.org" - # TODO: check if directory exists (restored from cache) + # check if directory exists (restored from cache) if [ -d $GH_PAGES_DIR ]; then pushd $GH_PAGES_DIR git pull origin gh-pages diff --git a/scripts/circleci/set_up_github_keys.sh b/scripts/circleci/set_up_github_keys.sh new file mode 100755 index 0000000000000..302c40eef0e2f --- /dev/null +++ b/scripts/circleci/set_up_github_keys.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e + +if [ -n $GITHUB_TOKEN ]; then + + GH_PAGES_DIR=`pwd`/../react-gh-pages + echo "machine github.com login reactjs-bot password $GITHUB_TOKEN" >~/.netrc + git config --global user.name "Circle CI" + git config --global user.email "circle@reactjs.org" + +fi diff --git a/scripts/circleci/test_fiber.sh b/scripts/circleci/test_fiber.sh index d6b6380c2b02d..47fbf9cbe9906 100755 --- a/scripts/circleci/test_fiber.sh +++ b/scripts/circleci/test_fiber.sh @@ -3,7 +3,7 @@ set -e echo 'Testing in fiber mode...' -./scripts/fiber/record-tests --track-facts +./scripts/fiber/record-tests --track-facts --max-workers 1 git --no-pager diff scripts/fiber FIBER_TESTS_STATUS=$(git status --porcelain scripts/fiber) test -z "$FIBER_TESTS_STATUS" diff --git a/scripts/fiber/record-tests b/scripts/fiber/record-tests index d4575ec582632..8be131cca7980 100755 --- a/scripts/fiber/record-tests +++ b/scripts/fiber/record-tests @@ -78,7 +78,7 @@ function wrapRunner(originalPath) { }; } -function runJest() { +function runJest(maxWorkers) { return readConfig(argv, root) .then((config) => { config = Object.assign({}, config, { @@ -92,7 +92,7 @@ function runJest() { hasteMap, config, { - maxWorkers: 1, + maxWorkers: maxWorkers, getTestSummary: () => 'You did it!' } ); @@ -119,9 +119,9 @@ function formatResults(runResults, predicate) { return formatted.join('\n\n'); } -function recordTests(trackFacts) { +function recordTests(maxWorkers, trackFacts) { process.env.REACT_DOM_JEST_USE_FIBER = true; - runJest() + runJest(maxWorkers) .then((runResults) => { const passing = formatResults( runResults, @@ -169,12 +169,15 @@ function recordTests(trackFacts) { if (require.main === module) { const argv = require('yargs') .demand(0, 0) + .number('max-workers') + .describe('max-workers', 'Number of workers to use for jest.') + .default('max-workers', Math.max(os.cpus().length - 1, 1)) .boolean('track-facts') .describe('track-facts', 'Use facts-tracker to record passing tests.') .strict() .help() .argv; - recordTests(argv.trackFacts); + recordTests(argv.maxWorkers, argv.trackFacts); } module.exports = {