--- sudo: required dist: trusty language: node_js node_js: - 6 rvm: - 2.2.3 cache: directories: - docs/vendor/bundle - node_modules - $HOME/.yarn-cache before_install: - | echo "machine github.com login reactjs-bot password $GITHUB_TOKEN" >~/.netrc unset GITHUB_TOKEN if [ "$TEST_TYPE" != build_website ] && \ ! git diff --name-only $TRAVIS_COMMIT_RANGE | grep -qvE '(\.md$)|(^(docs|examples))/' then echo "Only docs were updated, stopping build process." exit fi 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 yarn --version install: - | yarn install script: - | if [ "$TEST_TYPE" = build_website ]; then if [ "$TRAVIS_BRANCH" = "$REACT_WEBSITE_BRANCH" ] && [ "$TRAVIS_PULL_REQUEST" = false ]; then set -e GH_PAGES_DIR="$TRAVIS_BUILD_DIR"/../react-gh-pages git config --global user.name "$GITHUB_USER_NAME" git config --global user.email "$GITHUB_USER_EMAIL" git clone --branch gh-pages --depth=50 \ https://reactjs-bot@github.com/facebook/react.git \ $GH_PAGES_DIR pushd docs bundle install --jobs=3 --retry=3 --path=vendor/bundle bundle exec rake release cd $GH_PAGES_DIR git status if test -n "$(git status --porcelain)"; then git add -A . git commit -m "Rebuild website" git push origin gh-pages fi popd fi elif [ "$TEST_TYPE" = build ]; then if [ "$SERVER" ]; then set -e ./node_modules/.bin/grunt build curl \ -F "react=@build/react.js" \ -F "react.min=@build/react.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 "npm-react-native=@build/packages/react-native-renderer.tgz" \ -F "commit=$TRAVIS_COMMIT" \ -F "date=`git log --format='%ct' -1`" \ -F "pull_request=$TRAVIS_PULL_REQUEST" \ -F "token=$SECRET_TOKEN" \ -F "branch=$TRAVIS_BRANCH" \ $SERVER fi elif [ "$TEST_TYPE" = test ]; then set -e ./node_modules/.bin/grunt jest:coverage cat ./coverage/lcov.info | ./node_modules/.bin/coveralls 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 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" ./node_modules/.bin/gulp react:extract-errors elif [ "$TEST_TYPE" = flow ]; then 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" else ./node_modules/.bin/grunt $TEST_TYPE fi env: matrix: - TEST_TYPE=build - TEST_TYPE=test - TEST_TYPE=lint - TEST_TYPE=flow - TEST_TYPE=build_website global: # SERVER - secure: qPvsJ46XzGrdIuPA70b55xQNGF8jcK7N1LN5CCQYYocXLa+fBrl+fTE77QvehOPhqwJXcj6kOxI+sY0KrVwV7gmq2XY2HZGWUSCxTN0SZlNIzqPA80Y7G/yOjA4PUt8LKgP+8tptyhTAY56qf+hgW8BoLiKOdztYF2p+3zXOLuA= # SECRET_TOKEN - secure: dkpPW+VnoqC/okhRdV90m36NcyBFhcwEKL3bNFExAwi0dXnFao8RoFlvnwiPlA23h2faROkMIetXlti6Aju08BgUFV+f9aL6vLyU7gUent4Nd3413zf2fwDtXIWIETg6uLnOpSykGKgCAT/hY3Q2oPLqOoY0OxfgnbqwxkxljrE= # GITHUB_TOKEN - secure: Sn+HwLSkbgM5MqVszq/CJHcOsZax17zwW0ILpGgAaEKD6MHNmEBdc71skaLr+6R4gHVO5ybV2cgSxHuBLHKzYoidq5ksGKRHNeXfyOv8jeHGTN/FjwMQbM+WkIK3wFroLsuQ1kW2FBfFEXqx4rET6GXwdcqycGl8GSFB1l0VNzE= # COVERALLS_TOKEN - secure: h/cUq+TrUMZOQmkFD7CvuwX0uAwmjIfKZ4qSUzY+QzUtDzOzA0L/XF84xTBq1Q5YYsEiaoF6GxxGCdrLQiBA/ZTd+88UHgeZPMRvi0xG9Q+PeePVOsZMTxy4/WWFgOfSQCk49Mj9zizGgO78i6vxq+SDXMtFHnZ+TpPJIEW6/m0= notifications: irc: use_notice: true skip_join: true on_success: change on_failure: change channels: - chat.freenode.net#reactjs