blob: 0674da6bcba14c83354be6d22bc7ce7e7f3afaba [file] [log] [blame]
# One may have a look at http://docs.travis-ci.com/user/installing-dependencies/
language: c
notifications:
- email: true
sudo: false
cache: ccache
before_install:
# Install the cross compilers
- wget http://releases.linaro.org/15.02/components/toolchain/binaries/arm-linux-gnueabihf/gcc-linaro-4.9-2015.02-3-x86_64_arm-linux-gnueabihf.tar.xz
- tar xf gcc-linaro-4.9-2015.02-3-x86_64_arm-linux-gnueabihf.tar.xz
- export PATH=${PWD}/gcc-linaro-4.9-2015.02-3-x86_64_arm-linux-gnueabihf/bin:${PATH}
- arm-linux-gnueabihf-gcc --version
- wget http://releases.linaro.org/15.02/components/toolchain/binaries/aarch64-linux-gnu/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu.tar.xz
- tar xf gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu.tar.xz
- export PATH=${PWD}/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu/bin:${PATH}
- aarch64-linux-gnu-gcc --version
before_script:
# Store the home repository
- export MYHOME=$PWD
# Download checkpatch.pl
- export DST_KERNEL=$PWD/linux && mkdir -p $DST_KERNEL/scripts && cd $DST_KERNEL/scripts
- wget https://raw.githubusercontent.com/torvalds/linux/master/scripts/checkpatch.pl && chmod a+x checkpatch.pl
- wget https://raw.githubusercontent.com/torvalds/linux/master/scripts/spelling.txt
- cd $MYHOME
# Tools required for QEMU tests
# 'apt-get install' cannot be used in the new container-based infrastructure
# (which is the only allowing caching), so we just build from sources
# bc is used during kernel configuration
- cd $HOME
- wget http://ftp.gnu.org/gnu/bc/bc-1.06.tar.gz
- tar xf bc-1.06.tar.gz
- (cd bc-1.06 && CC="ccache gcc" ./configure --quiet && make -j4)
- export PATH=${HOME}/bc-1.06/bc:$PATH
# Tcl/Expect
- wget http://prdownloads.sourceforge.net/tcl/tcl8.6.4-src.tar.gz
- tar xf tcl8.6.4-src.tar.gz
- (cd tcl8.6.4/unix && ./configure --quiet --prefix=${HOME}/inst CC="ccache gcc" && make -j4 install)
- wget http://sourceforge.net/projects/expect/files/Expect/5.45/expect5.45.tar.gz/download -O expect5.45.tar.gz
- tar xf expect5.45.tar.gz
- (cd expect5.45 && ./configure --quiet --with-tcl=${HOME}/inst/lib --prefix=${HOME}/inst CC="ccache gcc" && make -j4 expect && make -j4 install)
- export PATH=$HOME/inst/bin:$PATH
# pycrypto 2.6.1 or later has Crypto.Signature, 2.4.1 does not. It is needed to sign the test TAs.
- pip install --upgrade --user pycrypto
# Clone repositories for the QEMU test environment
- mkdir $HOME/bin
- (cd $HOME/bin && wget https://storage.googleapis.com/git-repo-downloads/repo && chmod +x repo)
- export PATH=$HOME/bin:$PATH
- mkdir $HOME/optee_repo
- (cd $HOME/optee_repo && repo init -u https://github.com/OP-TEE/manifest.git </dev/null && repo sync --no-clone-bundle --no-tags --quiet -j 2)
- (cd $HOME/optee_repo/qemu && git submodule update --init dtc)
- (cd $HOME/optee_repo && mv optee_os optee_os_old && ln -s $MYHOME optee_os)
- cd $MYHOME
# Several compilation options are checked
script:
# Run checkpatch.pl
- git format-patch -1 --stdout | $DST_KERNEL/scripts/checkpatch.pl --ignore FILE_PATH_CHANGES --ignore GERRIT_CHANGE_ID --no-tree -
# Orly2
- PLATFORM=stm-orly2 CROSS_COMPILE=arm-linux-gnueabihf- make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=4 DEBUG=1 PLATFORM=stm PLATFORM_FLAVOR=orly2 CROSS_COMPILE=arm-linux-gnueabihf- make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=0 DEBUG=0 PLATFORM=stm PLATFORM_FLAVOR=orly2 CROSS_COMPILE=arm-linux-gnueabihf- make -j8 all -s
# Cannes
- PLATFORM=stm-cannes CROSS_COMPILE=arm-linux-gnueabihf- make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=4 DEBUG=1 PLATFORM=stm PLATFORM_FLAVOR=cannes CROSS_COMPILE=arm-linux-gnueabihf- make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=0 DEBUG=0 PLATFORM=stm PLATFORM_FLAVOR=cannes CROSS_COMPILE=arm-linux-gnueabihf- make -j8 all -s
# FVP
- PLATFORM=vexpress-fvp CFG_ARM32_core=y CROSS_COMPILE_core=arm-linux-gnueabihf- make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=4 DEBUG=1 PLATFORM=vexpress-fvp CFG_ARM32_core=y CROSS_COMPILE_core=arm-linux-gnueabihf- make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=0 DEBUG=0 PLATFORM=vexpress-fvp CFG_ARM32_core=y CROSS_COMPILE_core=arm-linux-gnueabihf- make -j8 all -s
- PLATFORM=vexpress-fvp CFG_ARM64_core=y CROSS_COMPILE_core=aarch64-linux-gnu- make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=4 DEBUG=1 PLATFORM=vexpress-fvp CFG_ARM64_core=y CROSS_COMPILE_core=aarch64-linux-gnu- make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=0 DEBUG=0 PLATFORM=vexpress-fvp CFG_ARM64_core=y CROSS_COMPILE_core=aarch64-linux-gnu- make -j8 all -s
# Juno
- PLATFORM=vexpress-juno CFG_ARM32_core=y CROSS_COMPILE_core=arm-linux-gnueabihf- make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=4 DEBUG=1 PLATFORM=vexpress-juno CFG_ARM32_core=y CROSS_COMPILE_core=arm-linux-gnueabihf- make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=0 DEBUG=0 PLATFORM=vexpress-juno CFG_ARM32_core=y CROSS_COMPILE_core=arm-linux-gnueabihf- make -j8 all -s
- PLATFORM=vexpress-juno CFG_ARM64_core=y CROSS_COMPILE_core=aarch64-linux-gnu- make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=4 DEBUG=1 PLATFORM=vexpress-juno CFG_ARM64_core=y CROSS_COMPILE_core=aarch64-linux-gnu- make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=0 DEBUG=0 PLATFORM=vexpress-juno CFG_ARM64_core=y CROSS_COMPILE_core=aarch64-linux-gnu- make -j8 all -s
# QEMU
- PLATFORM=vexpress-qemu make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=4 DEBUG=1 PLATFORM=vexpress PLATFORM_FLAVOR=qemu make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=0 DEBUG=0 PLATFORM=vexpress PLATFORM_FLAVOR=qemu make -j8 all -s
# QEMU-virt
- PLATFORM=vexpress-qemu_virt make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=4 DEBUG=1 PLATFORM=vexpress PLATFORM_FLAVOR=qemu_virt make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=4 DEBUG=1 PLATFORM=vexpress PLATFORM_FLAVOR=qemu_virt CFG_TEE_CORE_DEBUG=1 make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=0 DEBUG=0 PLATFORM=vexpress PLATFORM_FLAVOR=qemu_virt make -j8 all -s
- make -j8 all -s PLATFORM=vexpress-qemu_virt CFG_CRYPTO=n
- make -j8 all -s PLATFORM=vexpress-qemu_virt CFG_CRYPTO_{AES,DES}=n
- make -j8 all -s PLATFORM=vexpress-qemu_virt CFG_CRYPTO_{DSA,RSA,DH}=n
- make -j8 all -s PLATFORM=vexpress-qemu_virt CFG_CRYPTO_{DSA,RSA,DH,ECC}=n
- make -j8 all -s PLATFORM=vexpress-qemu_virt CFG_CRYPTO_{H,C,CBC_}MAC=n
- make -j8 all -s PLATFORM=vexpress-qemu_virt CFG_CRYPTO_{G,C}CM=n
- make -j8 all -s PLATFORM=vexpress-qemu_virt CFG_CRYPTO_{MD5,SHA{1,224,256,384,512}}=n
- make -j8 all -s PLATFORM=vexpress-qemu_virt CFG_WITH_PAGER=y
- make -j8 all -s PLATFORM=vexpress-qemu_virt CFG_ENC_FS=n
# SUNXI(Allwinner A80)
- CFG_TEE_CORE_LOG_LEVEL=4 DEBUG=1 PLATFORM=sunxi make -j8 all -s
- CFG_TEE_CORE_LOG_LEVEL=0 DEBUG=0 PLATFORM=sunxi make -j8 all -s
# HiKey board (HiSilicon Kirin 620)
- make -j8 -s PLATFORM=hikey
- make -j8 -s PLATFORM=hikey CFG_ARM64_core=y CROSS_COMPILE_core=aarch64-linux-gnu-
# Mediatek mt8173 EVB
- PLATFORM=mediatek PLATFORM_FLAVOR=mt8173 CFG_ARM64_core=y CROSS_COMPILE_core=aarch64-linux-gnu- make -j8 all -s
# Texas Instruments dra7xx
- PLATFORM=ti PLATFORM_FLAVOR=dra7xx make -j8 all -s
# Run regression tests (xtest in QEMU)
- (cd ${HOME}/optee_repo/build && make -s -j8 check CROSS_COMPILE="ccache arm-linux-gnueabihf-" DUMP_LOGS_ON_ERROR=1)