~vovd/node-lodash/HEAD

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
language: node_js
sudo: false
node_js:
  - 7

addons:
  jwt:
    secure: OYhRpW+8A0Iik+9GmHwa45ZwXeBXw/6zh6I+1w2H9g/LqPRp+Nhq3f4FSpvrrfno8lO8W4h+7s6+JOzF8C8NxNda5UUygKjF9pUphgiQdqls3YZMJlC9zXVl7gQXAHi3nG1s8vWSpwpzYD9fqczE1FX9n0+R63qX3eB6C/LbPeI=

cache:
  directories:
    - ~/.npm
    - ~/.yarn-cache
    - travis_phantomjs

env:
  global:
    - BIN=node ISTANBUL=false OPTION=""
    - SAUCE_LABS=false SAUCE_USERNAME=lodash

  matrix:
    -
    - BIN=phantomjs
    - ISTANBUL=true
    - SAUCE_LABS=true

matrix:
  include:
    - node_js: 6
      env:

git:
  depth: 10

branches:
  only:
    - master
    - 4.17.5

notifications:
  webhooks:
    urls:
      - https://webhooks.gitter.im/e/4aab6358b0e9aed0b628
    on_success: change
    on_failure: always

before_install:
  # Upgrade PhantomJS.
  - |
      export PHANTOMJS_VERSION=2.1.1
      export PATH=$PWD/travis_phantomjs/phantomjs-$PHANTOMJS_VERSION-linux-x86_64/bin:$PATH
      if [ $(phantomjs --version) != $PHANTOMJS_VERSION ]; then
        rm -rf $PWD/travis_phantomjs
        mkdir -p $PWD/travis_phantomjs
        wget https://github.com/Medium/phantomjs/releases/download/v$PHANTOMJS_VERSION/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2
        tar -xvf phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 -C $PWD/travis_phantomjs
      fi
      phantomjs -v

  # Use exact Node version.
  - nvm use $TRAVIS_NODE_VERSION

  # Setup package managers.
  - npm set loglevel error
  - npm set progress false
  - npm i -g yarn@0.16.1
  - yarn -V

  # Remove code skipped on the coverage run.
  - |
      PATTERN[0]="|\s*while\s*\([^)]+\)\s*\{\s*iteratee\(index\);\s*\}|"
      PATTERN[1]="|\bindex,\s*iterable\)\s*===\s*false\)[^}]+?(break;)|"
      PATTERN[2]="|\bcase\s+(?:dataView|promise|set|map|weakMap)CtorString:.+|g"
      PATTERN[3]="|\s*if\s*\(cache\.size\b[\s\S]+?\}|"
      PATTERN[4]="|\s*if\s*\(\!lodashFunc\)\s*\{\s*return;\s*\}|"
      PATTERN[5]="|\s*define\([\s\S]+?\);|"
      PATTERN[6]="|\s*root\._\s*=\s*_;|"

      if [ $ISTANBUL = true ]; then
        set -e
        for PTRN in ${PATTERN[@]}; do
          node ./test/remove.js $PTRN ./lodash.js
        done
      fi

install:
  # Install packages.
  - yarn

  # Use lodash-cli from GitHub.
  - git clone --depth=10 --branch=master git://github.com/lodash/lodash-cli ./node_modules/lodash-cli
  - mkdir -p ./node_modules/lodash-cli/node_modules/lodash; cd $_; cp ../../../../lodash.js ./lodash.js; cp ../../../../package.json ./package.json
  - cd ../../; npm i --production; cd ../../

script:
  # Detect code coverage.
  - |
      if [ $ISTANBUL = true ]; then
        istanbul cover -x "**/vendor/**" --report lcovonly ./test/test.js -- ./lodash.js
        if [ $TRAVIS_SECURE_ENV_VARS = true ]; then
          cat ./coverage/lcov.info | coveralls
          cat ./coverage/coverage.json | codecov
        fi
      fi

  # Test in Node.js and PhantomJS.
  - |
      if [ $ISTANBUL = false ]; then
        node ./node_modules/lodash-cli/bin/lodash -o ./dist/lodash.js
        node ./node_modules/lodash-cli/bin/lodash modularize exports=node -o ./
        node ./node_modules/lodash-cli/bin/lodash -d -o ./lodash.js
        if [ $SAUCE_LABS = false ]; then
          cd ./test
          $BIN $OPTION ./test.js ../lodash.js
          if [ $TRAVIS_SECURE_ENV_VARS = true ]; then
            $BIN $OPTION ./test.js ../dist/lodash.min.js
          fi
        fi
      fi

  # Test in Sauce Labs.
  - |
      if [ $SAUCE_LABS = true ]; then
        node ./node_modules/lodash-cli/bin/lodash core -o ./dist/lodash.core.js
        npm run build
        $BIN ./test/saucelabs.js name="lodash tests"     runner="test/index.html?build=../dist/lodash.js&noglobals=true"     tags=development
        $BIN ./test/saucelabs.js name="lodash tests"     runner="test/index.html?build=../dist/lodash.min.js&noglobals=true" tags=production
        $BIN ./test/saucelabs.js name="lodash-fp tests"  runner="test/fp.html?noglobals=true"                                tags=development
        $BIN ./test/saucelabs.js name="underscore tests" runner="test/underscore.html?build=../dist/lodash.js"               tags=development,underscore
        $BIN ./test/saucelabs.js name="underscore tests" runner="test/underscore.html?build=../dist/lodash.min.js"           tags=production,underscore
        $BIN ./test/saucelabs.js name="backbone tests"   runner="test/backbone.html?build=../dist/lodash.js"                 tags=development,backbone
        $BIN ./test/saucelabs.js name="backbone tests"   runner="test/backbone.html?build=../dist/lodash.min.js"             tags=production,backbone
        $BIN ./test/saucelabs.js name="backbone tests"   runner="test/backbone.html?build=../dist/lodash.core.js"            tags=development,backbone
        $BIN ./test/saucelabs.js name="backbone tests"   runner="test/backbone.html?build=../dist/lodash.core.min.js"        tags=production,backbone
      fi