forked from microsoft/optee_os
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.travis.yml
140 lines (118 loc) · 8.84 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# 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
- unset CC
# 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- CROSS_COMPILE_ta_arm64=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- CROSS_COMPILE_ta_arm64=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- CROSS_COMPILE_ta_arm64=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- CROSS_COMPILE_ta_arm64=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- CROSS_COMPILE_ta_arm64=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- CROSS_COMPILE_ta_arm64=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
- CFG_TEE_CORE_MALLOC_DEBUG=y CFG_TEE_TA_MALLOC_DEBUG=y 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
- make -j8 all -s PLATFORM=vexpress-qemu_virt CFG_ENC_FS=y CFG_FS_BLOCK_CACHE=y
- make -j8 all -s PLATFORM=vexpress-qemu_virt CFG_ENC_FS=n CFG_FS_BLOCK_CACHE=y
- make -j8 all -s PLATFORM=vexpress-qemu_virt CFG_WITH_STATS=y
# 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- CROSS_COMPILE_ta_arm64=aarch64-linux-gnu-
# Mediatek mt8173 EVB
- PLATFORM=mediatek PLATFORM_FLAVOR=mt8173 CFG_ARM64_core=y CROSS_COMPILE_core=aarch64-linux-gnu- CROSS_COMPILE_ta_arm64=aarch64-linux-gnu- make -j8 all -s
# i.MX6UL 14X14 EVK
- PLATFORM=imx PLATFORM_FLAVOR=mx6ulevk make -j8 all -s
# Texas Instruments dra7xx
- PLATFORM=ti PLATFORM_FLAVOR=dra7xx make -j8 all -s
# FSL ls1021a
- PLATFORM=ls PLATFORM_FLAVOR=ls1021atwr make -j8 all -s
- PLATFORM=ls PLATFORM_FLAVOR=ls1021aqds 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-" AARCH32_CROSS_COMPILE=arm-linux-gnueabihf- DUMP_LOGS_ON_ERROR=1)