Move (almost all) Travis CI jobs to container-based infrastructure (#2333)

Container-based VMs promise significantly faster boot times.

More or less related changes:
- Added a JOBNAME to all jobs.
- Added `install-noapt` target to several Makefile.travis files to
  avoid `sudo apt-get install ...` steps. Those installations are
  now handled by the apt addon of Travis. The `install` targets are
  kept anyway to keep the makefiles self-contained.
- Removed a legacy workaround from the Coverity Scan job as it
  isn't necessary anymore to fiddle with the cerificates of
  scan.coverity.com.
- Fixed the Mbed and the Zephyr jobs.

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
This commit is contained in:
Akos Kiss
2018-05-16 12:15:15 +02:00
committed by yichoi
parent 19451fa2d1
commit 53bd845d9f
8 changed files with 149 additions and 67 deletions
+114 -58
View File
@@ -1,18 +1,12 @@
language: c
# Default test platform: Ubuntu Trusty with sudo support.
# Default environment: Container-based (sudo-less) Ubuntu Trusty 14.04.
os: linux
dist: trusty
sudo: required
sudo: false
# Default dependency installation step #1: install dependencies for linux.
# Other platforms can change this by redefining the 'before_install' stage in
# the matrix below.
before_install: tools/apt-get-install-deps.sh
# Default dependency installation step #2: nop intentionally.
# Jobs can add their own dependencies on top of 'before_install' by redefinig
# the 'install' stage in the matrix below.
# Default dependency installation step: nop intentionally.
# Jobs can add their own dependencies by redefinig the 'install' stage in the matrix below.
install: true
# Default job task: run tests as defined in the $OPT environment variable.
@@ -22,23 +16,88 @@ script: tools/run-tests.py $OPTS
# All the job definitions in the matrix.
matrix:
include:
- env: OPTS="--check-signed-off=travis --check-cppcheck --check-doxygen --check-vera --check-license --check-magic-strings --check-pylint"
- env:
- JOBNAME="Checks"
- OPTS="--check-signed-off=travis --check-cppcheck --check-doxygen --check-vera --check-license --check-magic-strings --check-pylint"
install: pip install --user pylint==1.6.5
- env: OPTS="--jerry-debugger"
- env: OPTS="--quiet --jerry-tests --jerry-test-suite"
- env: OPTS="--quiet --jerry-tests --jerry-test-suite --toolchain=cmake/toolchain_linux_armv7l.cmake" TIMEOUT=300
install: tools/apt-get-install-qemu-arm.sh
- env: OPTS="--buildoption-test"
- env: OPTS="--quiet --jerry-tests --jerry-test-suite --buildoptions=--jerry-libc=off,--compile-flag=-m32,--cpointer-32bit=on"
- env: OPTS="--unittests"
- env: OPTS="--unittests --buildoptions=--cmake-param=-DFEATURE_INIT_FINI=ON"
- env: OPTS="--test262"
install: sudo timedatectl set-timezone America/Los_Angeles
- os: osx
before_install: tools/brew-install-deps.sh
env: OPTS="--quiet --jerry-tests --jerry-test-suite --unittests"
- install: echo -n | openssl s_client -connect scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
env:
addons:
apt:
packages: [doxygen, cppcheck, vera++]
- env:
- JOBNAME="Linux/x86-64 Build & Correctness Tests"
- OPTS="--quiet --jerry-tests --jerry-test-suite"
- env:
- JOBNAME="Linux/x86 (cpointer-32bit) Build & Correctness Tests"
- OPTS="--quiet --jerry-tests --jerry-test-suite --buildoptions=--jerry-libc=off,--compile-flag=-m32,--cpointer-32bit=on"
addons:
apt:
packages: [gcc-multilib]
- env:
- JOBNAME="Linux/ARM Build & Correctness Tests"
- OPTS="--quiet --jerry-tests --jerry-test-suite --toolchain=cmake/toolchain_linux_armv7l.cmake"
- TIMEOUT=300
sudo: true # keep on sudo-enabled VM to allow qemu to register itself to binfmt_misc
addons:
apt:
packages: [gcc-arm-linux-gnueabihf, libc6-dev-armhf-cross, qemu-user-static]
- env:
- JOBNAME="OSX/x86-64 Build, Correctness & Unit Tests"
- OPTS="--quiet --jerry-tests --jerry-test-suite --unittests"
os: osx
install: tools/brew-install-deps.sh
- env:
- JOBNAME="Build Tests"
- OPTS="--buildoption-test"
addons:
apt:
packages: [gcc-multilib]
- env:
- JOBNAME="Unit Tests"
- OPTS="--unittests"
- env:
- JOBNAME="Unit Tests (INIT_FINI)"
- OPTS="--unittests --buildoptions=--cmake-param=-DFEATURE_INIT_FINI=ON"
- env:
- JOBNAME="Debugger Tests"
- OPTS="--jerry-debugger"
- env:
- JOBNAME="Conformance Tests"
- OPTS="--test262"
- TZ=America/Los_Angeles
- env:
- JOBNAME="ASAN Tests"
- OPTS="--quiet --jerry-tests --jerry-test-suite --skip-list=parser-oom.js --buildoptions=--compile-flag=-fsanitize=address,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--compile-flag=-O2,--debug,--jerry-libc=off,--static-link=off,--system-allocator=on,--linker-flag=-fuse-ld=gold"
- ASAN_OPTIONS=detect_stack_use_after_return=1:check_initialization_order=true:strict_init_order=true
- TIMEOUT=600
compiler: gcc-5
addons:
apt:
sources: ubuntu-toolchain-r-test
packages: [gcc-5, gcc-5-multilib]
- env:
- JOBNAME="UBSAN Tests"
- OPTS="--quiet --jerry-tests --jerry-test-suite --skip-list=parser-oom.js --buildoptions=--compile-flag=-fsanitize=undefined,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--debug,--jerry-libc=off,--static-link=off,--system-allocator=on,--linker-flag=-fuse-ld=gold"
- UBSAN_OPTIONS=print_stacktrace=1
- TIMEOUT=600
compiler: gcc-5
addons:
apt:
sources: ubuntu-toolchain-r-test
packages: [gcc-5, gcc-5-multilib]
- env:
- JOBNAME="Coverity Scan"
# Declaration of the encrypted COVERITY_SCAN_TOKEN, created via the
# "travis encrypt" command using the project repo's public key.
- secure: "V7BdXv3FCVkFGEfKfWto6I+Sytou1zTCGyn49xurkBfKNsG/3vbkXfsbK1m6lCZxmY7W/1odpfjixpAPZgy2L4FgPZK6/UyVvC8pIFjDOubcEniN48haleSvm/ZFPLDifxDL2+VVFtK1oRYPtDBzzSoUCcfwovgk+Wy+tSBnhnyRLqO/WaI6PqFof7ECYMTRlJVjioZARVP4YmkBruIPmGDdR/3EvwowlxfuiFoPheix61ug4x3tpTBW2qWgvFjDyCZXFz4pJrBQPTAIbyKMxHcBykJjl9eR+dWAOsvE1Uw48tFOJxjKDfUttVQUPsyKFllmcCVS0fDYB5pzZOmRUPxJmox1jt8J1FY85Ri1PGY0THBPM2H7to4Yf2418Y3539epbN8p+79dwaM7e2OiJ2owukbWI7PoNqIz5DV5zxpIKsOQfeWuNLJOgsBePEIU7lz133Si/2d5W/7If46B1d+hZRBJfSYksgDqDU6G/voZkPf0K5bKe2O2BxiIW1DYk4yQ1ecZAkqGjZ8jG3zYGMG3mSF4VyuU4UGFG1Pg8fw7Ap5zuHxSVY1H9dtu4T6JQG3aj/x1omlzfw48DjgkwxVhf7Xvl3yfR7pzydYheLX3MZYtcVo7rWnglZFZoUjWDK1StbmzsvPftvwWtoDTWlzo4xeSXhahSJvJyc4U8Wc="
@@ -51,24 +110,7 @@ matrix:
build_command: "tools/build.py --clean"
branch_pattern: master
script: true # Changed to nop, Coverity Scan has already built the project by the time 'script' stage is reached.
- compiler: gcc-5
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-5
- gcc-5-multilib
env: OPTS="--quiet --jerry-tests --jerry-test-suite --skip-list=parser-oom.js --buildoptions=--compile-flag=-fsanitize=address,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--compile-flag=-O2,--debug,--jerry-libc=off,--static-link=off,--system-allocator=on,--linker-flag=-fuse-ld=gold" ASAN_OPTIONS=detect_stack_use_after_return=1:check_initialization_order=true:strict_init_order=true TIMEOUT=600
- compiler: gcc-5
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-5
- gcc-5-multilib
env: OPTS="--quiet --jerry-tests --jerry-test-suite --skip-list=parser-oom.js --buildoptions=--compile-flag=-fsanitize=undefined,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--debug,--jerry-libc=off,--static-link=off,--system-allocator=on,--linker-flag=-fuse-ld=gold" UBSAN_OPTIONS=print_stacktrace=1 TIMEOUT=600
- env: JOBNAME="SonarQube"
addons:
sonarcloud:
@@ -87,49 +129,63 @@ matrix:
cache:
directories:
- '${HOME}/.sonar/cache'
- env: JOBNAME="ESP8266 Build Test"
cache: ccache
install: make -f ./targets/esp8266/Makefile.travis install
install: make -f ./targets/esp8266/Makefile.travis install-noapt
script: make -f ./targets/esp8266/Makefile.travis script
addons:
apt:
packages: [gperf, texinfo, wget]
- env: JOBNAME="Mbed/K64F Build Test"
addons:
apt:
sources:
- sourceline: ppa:team-gcc-arm-embedded/ppa
packages:
- gcc-arm-embedded
install: make -f ./targets/mbed/Makefile.travis install
packages: [gcc-arm-embedded, ninja-build, libffi-dev, libssl-dev]
install: make -f ./targets/mbed/Makefile.travis install-noapt
script: make -f ./targets/mbed/Makefile.travis script
- env: JOBNAME="Mbed OS 5/K64F Build Test"
addons:
apt:
sources:
- sourceline: ppa:team-gcc-arm-embedded/ppa
packages:
- gcc-arm-embedded
packages: [gcc-arm-embedded]
install: make -f ./targets/mbedos5/Makefile.travis install
script: make -f ./targets/mbedos5/Makefile.travis script
- env: JOBNAME="NuttX/STM32F4 Build Test"
install: make -f targets/nuttx-stm32f4/Makefile.travis install
install: make -f targets/nuttx-stm32f4/Makefile.travis install-noapt
script: make -f targets/nuttx-stm32f4/Makefile.travis script
addons:
apt:
packages: [gcc-arm-none-eabi, libnewlib-arm-none-eabi, gperf]
- env: JOBNAME="RIOT/STM32F4 Build Test"
install: make -f ./targets/riot-stm32f4/Makefile.travis install
install: make -f ./targets/riot-stm32f4/Makefile.travis install-noapt
script: make -f ./targets/riot-stm32f4/Makefile.travis script
addons:
apt:
packages: [gcc-arm-none-eabi, libnewlib-arm-none-eabi]
- env: JOBNAME="Tizen RT/Artik053 Build Test"
addons:
apt:
sources:
- sourceline: ppa:team-gcc-arm-embedded/ppa
packages:
- gcc-arm-embedded
packages: [gcc-arm-embedded]
install: make -f ./targets/tizenrt-artik053/Makefile.travis install
script: make -f ./targets/tizenrt-artik053/Makefile.travis script
- env: JOBNAME="Zephyr/Arduino 101 Build Test"
install: make -f ./targets/zephyr/Makefile.travis install
install: make -f ./targets/zephyr/Makefile.travis install-noapt
script: make -f ./targets/zephyr/Makefile.travis script
allow_failures:
- env: JOBNAME="Mbed/K64F Build Test"
- env: JOBNAME="Zephyr/Arduino 101 Build Test"
addons:
apt:
packages: [gperf, dfu-util, device-tree-compiler, python3-ply, python3-pip]
fast_finish: true
# The channel name "chat.freenode.net#jerryscript"