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