• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1language: c
2
3# Default environment: Ubuntu Bionic 18.04.
4os: linux
5dist: bionic
6
7# Default job task: run tests as defined in the $OPT environment variable.
8# Jobs can redefine the 'script' stage in the matrix below.
9script: tools/run-tests.py $OPTS
10
11# All the job definitions in the matrix.
12matrix:
13  include:
14    - name: "Checks"
15      script:
16        - tools/run-tests.py --check-signed-off=travis --check-doxygen --check-vera --check-license --check-magic-strings --check-pylint
17        - travis_wait 40 tools/run-tests.py --check-cppcheck
18      addons:
19        apt:
20          packages: [doxygen, cppcheck, vera++, pylint]
21
22    - name: "Linux/x86-64 Build, Correctness & Debugger Tests"
23      env:
24        - OPTS="--quiet --jerry-tests --jerry-test-suite --jerry-debugger"
25
26    - name: "Linux/x86 (cpointer-32bit) Build & Correctness Tests"
27      env:
28        - OPTS="--quiet --jerry-tests --jerry-test-suite --buildoptions=--compile-flag=-m32,--cpointer-32bit=on"
29      addons:
30        apt:
31          packages: [gcc-multilib]
32
33    - name: "Linux/ARM Build & Correctness Tests"
34      env:
35        - OPTS="--quiet --jerry-tests --jerry-test-suite --toolchain=cmake/toolchain_linux_armv7l.cmake --buildoptions=--linker-flag=-static"
36        - RUNTIME=qemu-arm-static
37        - TIMEOUT=300
38      addons:
39        apt:
40          packages: [gcc-arm-linux-gnueabihf, libc6-dev-armhf-cross, qemu-user-static]
41
42    - name: "Linux/AArch64 Native Build & Correctness Tests"
43      arch: arm64
44      env:
45        - OPTS="--quiet --jerry-tests --jerry-test-suite --buildoptions=--linker-flag=-static"
46        - TIMEOUT=300
47
48    - name: "OSX/x86-64 Build, Correctness & Unit Tests"
49      env:
50        - OPTS="--quiet --jerry-tests --jerry-test-suite --unittests"
51      os: osx
52      osx_image: xcode11.4
53      addons:
54        homebrew:
55          packages: [cmake, cppcheck, vera++]
56
57    - name: "Build Tests"
58      env:
59        - OPTS="--buildoption-test"
60      addons:
61        apt:
62          packages: [gcc-multilib]
63
64    - name: "Conformance Tests - ES5.1"
65      env:
66        - OPTS="--test262"
67
68    - name: "Conformance Tests - ES2015"
69      env:
70        - OPTS="--test262-es2015"
71
72    - name: "Unit Tests"
73      env:
74        - OPTS="--unittests"
75
76    - name: "ASAN Tests"
77      env:
78        # Skipping maximum stack usage related tests due to 'detect_stack_use_after_return=1' ASAN option.
79        # For more detailed description: https://github.com/google/sanitizers/wiki/AddressSanitizerUseAfterReturn#compatibility
80        - OPTS="--quiet --jerry-tests --jerry-test-suite --skip-list=parser-oom.js,parser-oom2.js,stack-limit.js,regression-test-issue-2190.js,regression-test-issue-2258-2963.js,regression-test-issue-2448.js,regression-test-issue-2905.js,regression-test-issue-3785.js --buildoptions=--stack-limit=0,--compile-flag=-fsanitize=address,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--compile-flag=-O2,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold"
81        - ASAN_OPTIONS=detect_stack_use_after_return=1:check_initialization_order=true:strict_init_order=true
82        - TIMEOUT=600
83      addons:
84        apt:
85          sources: ubuntu-toolchain-r-test
86          packages: [gcc-multilib]
87
88    - name: "UBSAN Tests"
89      env:
90        - OPTS="--quiet --jerry-tests --jerry-test-suite --skip-list=parser-oom.js,parser-oom2.js --buildoptions=--compile-flag=-fsanitize=undefined,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--debug,--system-allocator=on,--linker-flag=-fuse-ld=gold"
91        - UBSAN_OPTIONS=print_stacktrace=1
92        - TIMEOUT=600
93      addons:
94        apt:
95          sources: ubuntu-toolchain-r-test
96          packages: [gcc-multilib]
97
98    - name: "Coverity Scan & SonarQube"
99      env:
100        # Declaration of the encrypted COVERITY_SCAN_TOKEN, created via the
101        # "travis encrypt" command using the project repo's public key.
102        - secure: "V7BdXv3FCVkFGEfKfWto6I+Sytou1zTCGyn49xurkBfKNsG/3vbkXfsbK1m6lCZxmY7W/1odpfjixpAPZgy2L4FgPZK6/UyVvC8pIFjDOubcEniN48haleSvm/ZFPLDifxDL2+VVFtK1oRYPtDBzzSoUCcfwovgk+Wy+tSBnhnyRLqO/WaI6PqFof7ECYMTRlJVjioZARVP4YmkBruIPmGDdR/3EvwowlxfuiFoPheix61ug4x3tpTBW2qWgvFjDyCZXFz4pJrBQPTAIbyKMxHcBykJjl9eR+dWAOsvE1Uw48tFOJxjKDfUttVQUPsyKFllmcCVS0fDYB5pzZOmRUPxJmox1jt8J1FY85Ri1PGY0THBPM2H7to4Yf2418Y3539epbN8p+79dwaM7e2OiJ2owukbWI7PoNqIz5DV5zxpIKsOQfeWuNLJOgsBePEIU7lz133Si/2d5W/7If46B1d+hZRBJfSYksgDqDU6G/voZkPf0K5bKe2O2BxiIW1DYk4yQ1ecZAkqGjZ8jG3zYGMG3mSF4VyuU4UGFG1Pg8fw7Ap5zuHxSVY1H9dtu4T6JQG3aj/x1omlzfw48DjgkwxVhf7Xvl3yfR7pzydYheLX3MZYtcVo7rWnglZFZoUjWDK1StbmzsvPftvwWtoDTWlzo4xeSXhahSJvJyc4U8Wc="
103      addons:
104        coverity_scan:
105          project:
106            name: "jerryscript-project/jerryscript"
107            description: "Ultra-lightweight JavaScript engine for the Internet of Things."
108          notification_email: rsipka.uszeged@partner.samsung.com
109          build_command: "tools/build.py --clean"
110          branch_pattern: master
111        sonarcloud:
112          organization: "jerryscript-project"
113      # Coverity Scan has already built the project by the time 'script' stage is reached.
114      script: tools/check-sonarqube.sh
115      cache:
116        directories:
117          - '${HOME}/.sonar/cache'
118
119    - name: "Mbed OS 5/K64F Build Test"
120      addons:
121        apt:
122          sources:
123            - sourceline: ppa:team-gcc-arm-embedded/ppa
124          packages: [gcc-arm-embedded]
125      language: python # NOTE: only way to ensure python>=2.7.10 on Trusty image
126      python: 3.6
127      install: make -f ./targets/mbedos5/Makefile.travis install
128      script: make -f ./targets/mbedos5/Makefile.travis script
129
130    - name: "Zephyr/Arduino 101 Build Test"
131      language: python # NOTE: only way to ensure python>=2.7.10 on Trusty image
132      python: 3.6
133      install: make -f ./targets/zephyr/Makefile.travis install-noapt
134      script: make -f ./targets/zephyr/Makefile.travis script
135      addons:
136        apt:
137          packages: [gperf, dfu-util, device-tree-compiler]
138
139    - name: "NuttX/STM32F4 Build Test"
140      install: make -f targets/nuttx-stm32f4/Makefile.travis install-noapt
141      script: make -f targets/nuttx-stm32f4/Makefile.travis script
142      addons:
143        apt:
144          packages: [gcc-arm-none-eabi, libnewlib-arm-none-eabi, gperf]
145
146    - name: "RIOT/STM32F4 Build Test"
147      install: make -f ./targets/riot-stm32f4/Makefile.travis install-noapt
148      script: make -f ./targets/riot-stm32f4/Makefile.travis script
149      compiler: clang-3.9
150      addons:
151        apt:
152          sources:
153            - sourceline: ppa:team-gcc-arm-embedded/ppa
154          packages: [clang-3.9, gcc-arm-embedded, gcc-multilib]
155
156    - name: "ESP8266 Build Test"
157      install: make -f ./targets/esp8266/Makefile.travis install-noapt
158      script: make -f ./targets/esp8266/Makefile.travis script
159      addons:
160        apt:
161          packages: [wget]
162
163  fast_finish: true
164
165# The channel name "chat.freenode.net#jerryscript"
166# is encrypted against Samsung/jerryscript
167# to prevent IRC spam of forks.
168#
169# travis encrypt -r "Samsung/jerryscript" "chat.freenode.net#jerryscript"
170notifications:
171  irc:
172    channels:
173      - secure: "4kML4uZywOPaT3r/bHCvZCeQWooyzZumESmKuHG2Y8/B29WtMBobsoRQZRfOmlUP5kshfjh0Itp5WFpdACiBCoorHch/8z3VT7fIbKF4UnxrAvNiFArqxXC0OWGIu93e7uyyXJCsQ/JiOXU7bD31Mh8LbnfS1z3wBAMXi+AwcaGiVVH4VTL6O8sR3ij5WmsqpECWhyWTgTP3MiLquZ+09Lv9mp5GGciEemq4p8VnaQt2BdyEBmUJJ1EAyMCJlKNObQudegOzYsY3CVON9C87dCuHf7DYstsxb8AzwRAKn8LHiaWhYaWLfvHqoXmc4w1ZgN0HZ5Qyx8KMkZkXKUiHxuCSoXDxNAHWTGQBsTDid5drZeqOFucOHEKJzkqaWSUKUF3pY/hq/h2kjAn230DlBNkJt+ikSxwy6Mm8GG8LnH5gRMl37zHDHrtyRsKR8GIst9B1B95LAOLA5t8U/ucGKXqLsohS8glXaM4jjh69it3GeHj6NhB8NbC/LsmRrhjKzV+VnjPI6gZvN+5tDiuxMbsMal+0DdWVNCst/aO3Jz0iaA5ahyo2ZwBb2efw3CekRLMKmHtnjqB0SWWXT3/t2+5zNoM6gBjo4RPOg7k5eTOXcfk8okWtQ5d3n8UtvZ5rSiDl3rssHwp1yHuuC8rGGov74DLvyDlpM6p/dmtu2o8="
174    on_success: always
175    on_failure: always
176    use_notice: true
177    template:
178      - "%{repository_name} (%{branch}@%{commit}): %{author} - %{commit_subject} [%{result}]"
179      - "Commit: %{compare_url}"
180      - "Build: %{build_url}"
181