1425bb815Sopenharmony_cilanguage: c
2425bb815Sopenharmony_ci
3425bb815Sopenharmony_ci# Default environment: Ubuntu Bionic 18.04.
4425bb815Sopenharmony_cios: linux
5425bb815Sopenharmony_cidist: bionic
6425bb815Sopenharmony_ci
7425bb815Sopenharmony_ci# Default job task: run tests as defined in the $OPT environment variable.
8425bb815Sopenharmony_ci# Jobs can redefine the 'script' stage in the matrix below.
9425bb815Sopenharmony_ciscript: tools/run-tests.py $OPTS
10425bb815Sopenharmony_ci
11425bb815Sopenharmony_ci# All the job definitions in the matrix.
12425bb815Sopenharmony_cimatrix:
13425bb815Sopenharmony_ci  include:
14425bb815Sopenharmony_ci    - name: "Checks"
15425bb815Sopenharmony_ci      script:
16425bb815Sopenharmony_ci        - tools/run-tests.py --check-signed-off=travis --check-doxygen --check-vera --check-license --check-magic-strings --check-pylint
17425bb815Sopenharmony_ci        - travis_wait 40 tools/run-tests.py --check-cppcheck
18425bb815Sopenharmony_ci      addons:
19425bb815Sopenharmony_ci        apt:
20425bb815Sopenharmony_ci          packages: [doxygen, cppcheck, vera++, pylint]
21425bb815Sopenharmony_ci
22425bb815Sopenharmony_ci    - name: "Linux/x86-64 Build, Correctness & Debugger Tests"
23425bb815Sopenharmony_ci      env:
24425bb815Sopenharmony_ci        - OPTS="--quiet --jerry-tests --jerry-test-suite --jerry-debugger"
25425bb815Sopenharmony_ci
26425bb815Sopenharmony_ci    - name: "Linux/x86 (cpointer-32bit) Build & Correctness Tests"
27425bb815Sopenharmony_ci      env:
28425bb815Sopenharmony_ci        - OPTS="--quiet --jerry-tests --jerry-test-suite --buildoptions=--compile-flag=-m32,--cpointer-32bit=on"
29425bb815Sopenharmony_ci      addons:
30425bb815Sopenharmony_ci        apt:
31425bb815Sopenharmony_ci          packages: [gcc-multilib]
32425bb815Sopenharmony_ci
33425bb815Sopenharmony_ci    - name: "Linux/ARM Build & Correctness Tests"
34425bb815Sopenharmony_ci      env:
35425bb815Sopenharmony_ci        - OPTS="--quiet --jerry-tests --jerry-test-suite --toolchain=cmake/toolchain_linux_armv7l.cmake --buildoptions=--linker-flag=-static"
36425bb815Sopenharmony_ci        - RUNTIME=qemu-arm-static
37425bb815Sopenharmony_ci        - TIMEOUT=300
38425bb815Sopenharmony_ci      addons:
39425bb815Sopenharmony_ci        apt:
40425bb815Sopenharmony_ci          packages: [gcc-arm-linux-gnueabihf, libc6-dev-armhf-cross, qemu-user-static]
41425bb815Sopenharmony_ci
42425bb815Sopenharmony_ci    - name: "Linux/AArch64 Native Build & Correctness Tests"
43425bb815Sopenharmony_ci      arch: arm64
44425bb815Sopenharmony_ci      env:
45425bb815Sopenharmony_ci        - OPTS="--quiet --jerry-tests --jerry-test-suite --buildoptions=--linker-flag=-static"
46425bb815Sopenharmony_ci        - TIMEOUT=300
47425bb815Sopenharmony_ci
48425bb815Sopenharmony_ci    - name: "OSX/x86-64 Build, Correctness & Unit Tests"
49425bb815Sopenharmony_ci      env:
50425bb815Sopenharmony_ci        - OPTS="--quiet --jerry-tests --jerry-test-suite --unittests"
51425bb815Sopenharmony_ci      os: osx
52425bb815Sopenharmony_ci      osx_image: xcode11.4
53425bb815Sopenharmony_ci      addons:
54425bb815Sopenharmony_ci        homebrew:
55425bb815Sopenharmony_ci          packages: [cmake, cppcheck, vera++]
56425bb815Sopenharmony_ci
57425bb815Sopenharmony_ci    - name: "Build Tests"
58425bb815Sopenharmony_ci      env:
59425bb815Sopenharmony_ci        - OPTS="--buildoption-test"
60425bb815Sopenharmony_ci      addons:
61425bb815Sopenharmony_ci        apt:
62425bb815Sopenharmony_ci          packages: [gcc-multilib]
63425bb815Sopenharmony_ci
64425bb815Sopenharmony_ci    - name: "Conformance Tests - ES5.1"
65425bb815Sopenharmony_ci      env:
66425bb815Sopenharmony_ci        - OPTS="--test262"
67425bb815Sopenharmony_ci
68425bb815Sopenharmony_ci    - name: "Conformance Tests - ES2015"
69425bb815Sopenharmony_ci      env:
70425bb815Sopenharmony_ci        - OPTS="--test262-es2015"
71425bb815Sopenharmony_ci
72425bb815Sopenharmony_ci    - name: "Unit Tests"
73425bb815Sopenharmony_ci      env:
74425bb815Sopenharmony_ci        - OPTS="--unittests"
75425bb815Sopenharmony_ci
76425bb815Sopenharmony_ci    - name: "ASAN Tests"
77425bb815Sopenharmony_ci      env:
78425bb815Sopenharmony_ci        # Skipping maximum stack usage related tests due to 'detect_stack_use_after_return=1' ASAN option.
79425bb815Sopenharmony_ci        # For more detailed description: https://github.com/google/sanitizers/wiki/AddressSanitizerUseAfterReturn#compatibility
80425bb815Sopenharmony_ci        - 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"
81425bb815Sopenharmony_ci        - ASAN_OPTIONS=detect_stack_use_after_return=1:check_initialization_order=true:strict_init_order=true
82425bb815Sopenharmony_ci        - TIMEOUT=600
83425bb815Sopenharmony_ci      addons:
84425bb815Sopenharmony_ci        apt:
85425bb815Sopenharmony_ci          sources: ubuntu-toolchain-r-test
86425bb815Sopenharmony_ci          packages: [gcc-multilib]
87425bb815Sopenharmony_ci
88425bb815Sopenharmony_ci    - name: "UBSAN Tests"
89425bb815Sopenharmony_ci      env:
90425bb815Sopenharmony_ci        - 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"
91425bb815Sopenharmony_ci        - UBSAN_OPTIONS=print_stacktrace=1
92425bb815Sopenharmony_ci        - TIMEOUT=600
93425bb815Sopenharmony_ci      addons:
94425bb815Sopenharmony_ci        apt:
95425bb815Sopenharmony_ci          sources: ubuntu-toolchain-r-test
96425bb815Sopenharmony_ci          packages: [gcc-multilib]
97425bb815Sopenharmony_ci
98425bb815Sopenharmony_ci    - name: "Coverity Scan & SonarQube"
99425bb815Sopenharmony_ci      env:
100425bb815Sopenharmony_ci        # Declaration of the encrypted COVERITY_SCAN_TOKEN, created via the
101425bb815Sopenharmony_ci        # "travis encrypt" command using the project repo's public key.
102425bb815Sopenharmony_ci        - secure: "V7BdXv3FCVkFGEfKfWto6I+Sytou1zTCGyn49xurkBfKNsG/3vbkXfsbK1m6lCZxmY7W/1odpfjixpAPZgy2L4FgPZK6/UyVvC8pIFjDOubcEniN48haleSvm/ZFPLDifxDL2+VVFtK1oRYPtDBzzSoUCcfwovgk+Wy+tSBnhnyRLqO/WaI6PqFof7ECYMTRlJVjioZARVP4YmkBruIPmGDdR/3EvwowlxfuiFoPheix61ug4x3tpTBW2qWgvFjDyCZXFz4pJrBQPTAIbyKMxHcBykJjl9eR+dWAOsvE1Uw48tFOJxjKDfUttVQUPsyKFllmcCVS0fDYB5pzZOmRUPxJmox1jt8J1FY85Ri1PGY0THBPM2H7to4Yf2418Y3539epbN8p+79dwaM7e2OiJ2owukbWI7PoNqIz5DV5zxpIKsOQfeWuNLJOgsBePEIU7lz133Si/2d5W/7If46B1d+hZRBJfSYksgDqDU6G/voZkPf0K5bKe2O2BxiIW1DYk4yQ1ecZAkqGjZ8jG3zYGMG3mSF4VyuU4UGFG1Pg8fw7Ap5zuHxSVY1H9dtu4T6JQG3aj/x1omlzfw48DjgkwxVhf7Xvl3yfR7pzydYheLX3MZYtcVo7rWnglZFZoUjWDK1StbmzsvPftvwWtoDTWlzo4xeSXhahSJvJyc4U8Wc="
103425bb815Sopenharmony_ci      addons:
104425bb815Sopenharmony_ci        coverity_scan:
105425bb815Sopenharmony_ci          project:
106425bb815Sopenharmony_ci            name: "jerryscript-project/jerryscript"
107425bb815Sopenharmony_ci            description: "Ultra-lightweight JavaScript engine for the Internet of Things."
108425bb815Sopenharmony_ci          notification_email: rsipka.uszeged@partner.samsung.com
109425bb815Sopenharmony_ci          build_command: "tools/build.py --clean"
110425bb815Sopenharmony_ci          branch_pattern: master
111425bb815Sopenharmony_ci        sonarcloud:
112425bb815Sopenharmony_ci          organization: "jerryscript-project"
113425bb815Sopenharmony_ci      # Coverity Scan has already built the project by the time 'script' stage is reached.
114425bb815Sopenharmony_ci      script: tools/check-sonarqube.sh
115425bb815Sopenharmony_ci      cache:
116425bb815Sopenharmony_ci        directories:
117425bb815Sopenharmony_ci          - '${HOME}/.sonar/cache'
118425bb815Sopenharmony_ci
119425bb815Sopenharmony_ci    - name: "Mbed OS 5/K64F Build Test"
120425bb815Sopenharmony_ci      addons:
121425bb815Sopenharmony_ci        apt:
122425bb815Sopenharmony_ci          sources:
123425bb815Sopenharmony_ci            - sourceline: ppa:team-gcc-arm-embedded/ppa
124425bb815Sopenharmony_ci          packages: [gcc-arm-embedded]
125425bb815Sopenharmony_ci      language: python # NOTE: only way to ensure python>=2.7.10 on Trusty image
126425bb815Sopenharmony_ci      python: 3.6
127425bb815Sopenharmony_ci      install: make -f ./targets/mbedos5/Makefile.travis install
128425bb815Sopenharmony_ci      script: make -f ./targets/mbedos5/Makefile.travis script
129425bb815Sopenharmony_ci
130425bb815Sopenharmony_ci    - name: "Zephyr/Arduino 101 Build Test"
131425bb815Sopenharmony_ci      language: python # NOTE: only way to ensure python>=2.7.10 on Trusty image
132425bb815Sopenharmony_ci      python: 3.6
133425bb815Sopenharmony_ci      install: make -f ./targets/zephyr/Makefile.travis install-noapt
134425bb815Sopenharmony_ci      script: make -f ./targets/zephyr/Makefile.travis script
135425bb815Sopenharmony_ci      addons:
136425bb815Sopenharmony_ci        apt:
137425bb815Sopenharmony_ci          packages: [gperf, dfu-util, device-tree-compiler]
138425bb815Sopenharmony_ci
139425bb815Sopenharmony_ci    - name: "NuttX/STM32F4 Build Test"
140425bb815Sopenharmony_ci      install: make -f targets/nuttx-stm32f4/Makefile.travis install-noapt
141425bb815Sopenharmony_ci      script: make -f targets/nuttx-stm32f4/Makefile.travis script
142425bb815Sopenharmony_ci      addons:
143425bb815Sopenharmony_ci        apt:
144425bb815Sopenharmony_ci          packages: [gcc-arm-none-eabi, libnewlib-arm-none-eabi, gperf]
145425bb815Sopenharmony_ci
146425bb815Sopenharmony_ci    - name: "RIOT/STM32F4 Build Test"
147425bb815Sopenharmony_ci      install: make -f ./targets/riot-stm32f4/Makefile.travis install-noapt
148425bb815Sopenharmony_ci      script: make -f ./targets/riot-stm32f4/Makefile.travis script
149425bb815Sopenharmony_ci      compiler: clang-3.9
150425bb815Sopenharmony_ci      addons:
151425bb815Sopenharmony_ci        apt:
152425bb815Sopenharmony_ci          sources:
153425bb815Sopenharmony_ci            - sourceline: ppa:team-gcc-arm-embedded/ppa
154425bb815Sopenharmony_ci          packages: [clang-3.9, gcc-arm-embedded, gcc-multilib]
155425bb815Sopenharmony_ci
156425bb815Sopenharmony_ci    - name: "ESP8266 Build Test"
157425bb815Sopenharmony_ci      install: make -f ./targets/esp8266/Makefile.travis install-noapt
158425bb815Sopenharmony_ci      script: make -f ./targets/esp8266/Makefile.travis script
159425bb815Sopenharmony_ci      addons:
160425bb815Sopenharmony_ci        apt:
161425bb815Sopenharmony_ci          packages: [wget]
162425bb815Sopenharmony_ci
163425bb815Sopenharmony_ci  fast_finish: true
164425bb815Sopenharmony_ci
165425bb815Sopenharmony_ci# The channel name "chat.freenode.net#jerryscript"
166425bb815Sopenharmony_ci# is encrypted against Samsung/jerryscript
167425bb815Sopenharmony_ci# to prevent IRC spam of forks.
168425bb815Sopenharmony_ci#
169425bb815Sopenharmony_ci# travis encrypt -r "Samsung/jerryscript" "chat.freenode.net#jerryscript"
170425bb815Sopenharmony_cinotifications:
171425bb815Sopenharmony_ci  irc:
172425bb815Sopenharmony_ci    channels:
173425bb815Sopenharmony_ci      - secure: "4kML4uZywOPaT3r/bHCvZCeQWooyzZumESmKuHG2Y8/B29WtMBobsoRQZRfOmlUP5kshfjh0Itp5WFpdACiBCoorHch/8z3VT7fIbKF4UnxrAvNiFArqxXC0OWGIu93e7uyyXJCsQ/JiOXU7bD31Mh8LbnfS1z3wBAMXi+AwcaGiVVH4VTL6O8sR3ij5WmsqpECWhyWTgTP3MiLquZ+09Lv9mp5GGciEemq4p8VnaQt2BdyEBmUJJ1EAyMCJlKNObQudegOzYsY3CVON9C87dCuHf7DYstsxb8AzwRAKn8LHiaWhYaWLfvHqoXmc4w1ZgN0HZ5Qyx8KMkZkXKUiHxuCSoXDxNAHWTGQBsTDid5drZeqOFucOHEKJzkqaWSUKUF3pY/hq/h2kjAn230DlBNkJt+ikSxwy6Mm8GG8LnH5gRMl37zHDHrtyRsKR8GIst9B1B95LAOLA5t8U/ucGKXqLsohS8glXaM4jjh69it3GeHj6NhB8NbC/LsmRrhjKzV+VnjPI6gZvN+5tDiuxMbsMal+0DdWVNCst/aO3Jz0iaA5ahyo2ZwBb2efw3CekRLMKmHtnjqB0SWWXT3/t2+5zNoM6gBjo4RPOg7k5eTOXcfk8okWtQ5d3n8UtvZ5rSiDl3rssHwp1yHuuC8rGGov74DLvyDlpM6p/dmtu2o8="
174425bb815Sopenharmony_ci    on_success: always
175425bb815Sopenharmony_ci    on_failure: always
176425bb815Sopenharmony_ci    use_notice: true
177425bb815Sopenharmony_ci    template:
178425bb815Sopenharmony_ci      - "%{repository_name} (%{branch}@%{commit}): %{author} - %{commit_subject} [%{result}]"
179425bb815Sopenharmony_ci      - "Commit: %{compare_url}"
180425bb815Sopenharmony_ci      - "Build: %{build_url}"
181