135 lines
4.7 KiB
YAML
135 lines
4.7 KiB
YAML
---
|
|
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
|