.travis.yml 6.7 KB
Newer Older
1 2 3 4 5 6 7 8
#
# Configuration
#
#
# Build Matrix
#
matrix:
  - os: linux
9
    dist: bionic
10 11 12 13 14 15 16 17
    language: c

    git:
      - depth: 1

    compiler: gcc
    env: DESC="linux/gcc build and test"

18 19 20 21 22
    addons:
      apt:
        packages:
          - build-essential
          - cmake
sangshuduo's avatar
sangshuduo 已提交
23
          - net-tools
24 25 26 27
          - python-pip
          - python-setuptools
          - python3-pip
          - python3-setuptools
28
          - valgrind
29

30 31 32 33 34 35
    before_script:
      - cd ${TRAVIS_BUILD_DIR}
      - mkdir debug
      - cd debug

    script:
36 37
      - cmake .. > /dev/null
      - make > /dev/null
38 39 40 41 42 43

    after_success:
      - |-
        case $TRAVIS_OS_NAME in
          linux)
          cd ${TRAVIS_BUILD_DIR}/debug
44
          make install > /dev/null || travis_terminate $?
45 46 47 48 49

          pip install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python2/
          pip3 install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python3/

          cd ${TRAVIS_BUILD_DIR}/tests
50
          ./test-all.sh $TRAVIS_EVENT_TYPE || travis_terminate $?
51

52
          cd ${TRAVIS_BUILD_DIR}/tests/pytest
S
Shuduo Sang 已提交
53
          ./valgrind-test.sh -g 2>&1 > mem-error-out.txt
54 55 56 57 58 59 60 61 62
          sleep 1

          # Color setting
          RED='\033[0;31m'
          GREEN='\033[1;32m'
          GREEN_DARK='\033[0;32m'
          GREEN_UNDERLINE='\033[4;32m'
          NC='\033[0m'

S
Shuduo Sang 已提交
63
          grep 'start to execute\|ERROR SUMMARY' mem-error-out.txt|grep -v 'grep'|uniq|tee uniq-mem-error-out.txt
sangshuduo's avatar
sangshuduo 已提交
64 65 66 67

          for memError in `cat uniq-mem-error-out.txt | awk '{print $4}'` 
          do
            if [ -n "$memError" ]; then
68
              if [ "$memError" -gt 12 ]; then
sangshuduo's avatar
sangshuduo 已提交
69 70 71 72
                echo -e "${RED} ## Memory errors number valgrind reports is $memError.\
                         More than our threshold! ## ${NC}"
                travis_terminate $memError
              fi
73
            fi
sangshuduo's avatar
sangshuduo 已提交
74 75
          done

S
Shuduo Sang 已提交
76
          grep 'start to execute\|definitely lost:' mem-error-out.txt|grep -v 'grep'|uniq|tee uniq-definitely-lost-out.txt
77
          for defiMemError in `cat uniq-definitely-lost-out.txt | awk '{print $7}'`
sangshuduo's avatar
sangshuduo 已提交
78 79
          do
            if [ -n "$defiMemError" ]; then
80
              if [ "$defiMemError" -gt 13 ]; then
sangshuduo's avatar
sangshuduo 已提交
81 82 83 84 85 86
                echo -e "${RED} ## Memory errors number valgrind reports \
                         Definitely lost is $defiMemError. More than our threshold! ## ${NC}"
                travis_terminate $defiMemError
              fi
            fi
          done
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

          ;;
        esac

  - os: linux
    language: c
    compiler: gcc
    env: COVERITY_SCAN=true
    git:
      - depth: 1

    script:
      - echo "this job is for coverity scan"

    addons:
      coverity_scan:
        # GitHub project metadata
        # ** specific to your project **
        project:
106
          name: TDengine
107
          version: 2.x
108
          description: TDengine
109 110

        # Where email notification of build analysis results will be sent
111
        notification_email: sdsang@taosdata.com
112 113 114

        # Commands to prepare for build_command
        # ** likely specific to your build **
115
        build_command_prepend: cmake . > /dev/null
116 117 118

        # The command that will be added as an argument to "cov-build" to compile your project for analysis,
        # ** likely specific to your build **
119
        build_command: make
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151

        # Pattern to match selecting branches that will run analysis. We recommend leaving this set to 'coverity_scan'.
        # Take care in resource usage, and consider the build frequency allowances per
        #   https://scan.coverity.com/faq#frequency
        branch_pattern: coverity_scan

  - os: linux
    language: c
    compiler: gcc
    env: ENV_COVER=true

    git:
      - depth: 1

    addons:
      apt:
        packages:
          - build-essential
          - cmake
          - net-tools
          - python-pip
          - python-setuptools
          - python3-pip
          - python3-setuptools
          - lcov

    before_script:
      - cd ${TRAVIS_BUILD_DIR}
      - mkdir debug
      - cd debug

    script:
152 153
      - cmake -DCOVER=true .. > /dev/null
      - make > /dev/null
154 155 156 157 158 159

    after_success:
      - |-
        case $TRAVIS_OS_NAME in
          linux)
          cd ${TRAVIS_BUILD_DIR}/debug
160
          make install > /dev/null || travis_terminate $?
161 162 163 164 165 166

          pip install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python2/
          pip3 install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python3/

          cd ${TRAVIS_BUILD_DIR}/tests

167
          ./test-all.sh $TRAVIS_EVENT_TYPE COVER
168

169
          TEST_RESULT=$?
170

sangshuduo's avatar
sangshuduo 已提交
171
          pkill taosd
172 173
          sleep 1

174
          cd ${TRAVIS_BUILD_DIR}
sangshuduo's avatar
sangshuduo 已提交
175
          lcov -d . --capture --rc lcov_branch_coverage=1 -o coverage.info
176
          lcov -l --rc lcov_branch_coverage=1 coverage.info || travis_terminate $?
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193

          gem install coveralls-lcov

          # Color setting
          RED='\033[0;31m'
          GREEN='\033[1;32m'
          GREEN_DARK='\033[0;32m'
          GREEN_UNDERLINE='\033[4;32m'
          NC='\033[0m'

          coveralls-lcov coverage.info
          if [ "$?" -eq "0" ]; then
            echo -e "${GREEN} ## Uploaded to Coveralls.io! ## ${NC}"
          else
            echo -e "${RED} ## Coveralls.io not collect coverage report! ## ${NC} "
          fi

sangshuduo's avatar
sangshuduo 已提交
194
          bash <(curl -s https://codecov.io/bash) -y .codecov.yml -f coverage.info
195 196 197 198 199 200
          if [ "$?" -eq "0" ]; then
            echo -e "${GREEN} ## Uploaded to Codecov! ## ${NC} "
          else
            echo -e "${RED} ## Codecov did not collect coverage report! ## ${NC} "
          fi

201 202 203
          if [ "$TEST_RESULT" -ne "0" ]; then
            travis_terminate $?
          fi
204 205 206
          ;;
        esac

S
Shuduo Sang 已提交
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229
  - os: linux
    dist: trusty
    language: c
    git:
      - depth: 1

    addons:
      apt:
        packages:
          - build-essential
          - cmake
    env: 
      - DESC="trusty/gcc-4.8 build"

    before_script:
      - cd ${TRAVIS_BUILD_DIR}
      - mkdir debug
      - cd debug

    script:
      - cmake .. > /dev/null
      - make > /dev/null

230 231 232 233 234 235 236 237 238 239 240 241
  - os: linux
    language: c
    compiler: clang
    env: DESC="linux/clang build"
    git:
      - depth: 1

    addons:
      apt:
        packages:
          - build-essential
          - cmake
242

243 244 245 246 247 248
    before_script:
      - cd ${TRAVIS_BUILD_DIR}
      - mkdir debug
      - cd debug

    script:
249 250
      - cmake .. > /dev/null
      - make > /dev/null
251 252 253 254 255 256 257 258 259 260 261 262 263 264 265

        #  - os: osx
        #    language: c
        #    compiler: clang
        #    env: DESC="mac/clang build"
        #    git:
        #      - depth: 1
        #    addons:
        #      homebrew:
        #        - cmake
        #
        #    script:
        #      - cd ${TRAVIS_BUILD_DIR}
        #      - mkdir debug
        #      - cd debug
266 267
        #      - cmake .. > /dev/null
        #      - make > /dev/null