Blame view

.travis.yml 5.51 KB
c7cb334d1   Meier, Roger   .travis.yml: buil...
1
2
3
4
  # Copyright Roger Meier <r.meier@siemens.com>
  # SPDX-License-Identifier:	GPL-2.0+
  
  # build U-Boot on Travis CI - https://travis-ci.org/
e4c1b4d8c   Stephen Warren   .travis.yml: expl...
5
  sudo: true
c7cb334d1   Meier, Roger   .travis.yml: buil...
6
  language: c
050c7569b   Roger Meier   .travis.yml: rewo...
7
8
9
10
11
12
13
14
15
  addons:
    apt:
      packages:
      - cppcheck
      - sloccount
      - sparse
      - bc
      - build-essential
      - libsdl1.2-dev
07bf2122d   Stephen Warren   Enable test/py fo...
16
17
      - python
      - python-virtualenv
050c7569b   Roger Meier   .travis.yml: rewo...
18

c7cb334d1   Meier, Roger   .travis.yml: buil...
19
20
21
22
  cache:
   - apt
  
  install:
c7cb334d1   Meier, Roger   .travis.yml: buil...
23
24
25
26
27
   # install latest device tree compiler
   - git clone --depth=1 https://git.kernel.org/pub/scm/utils/dtc/dtc.git /tmp/dtc
   - make -j4 -C /tmp/dtc
   # prepare buildman environment
   - export BUILDMAN_ROOT="root:"
c7cb334d1   Meier, Roger   .travis.yml: buil...
28
   - export BUILDMAN_PPC="ppc:"
d9aa01978   Heiko Schocher   travis.yml: some ...
29
30
31
32
33
   - export BUILDMAN_ARM="arm:"
   - export BUILDMAN_SANDBOX="sandbox:"
   - echo -e "[toolchain]
  ${BUILDMAN_ROOT} /
  " > ~/.buildman
d9aa01978   Heiko Schocher   travis.yml: some ...
34
35
36
37
38
39
   - echo -e "${BUILDMAN_PPC} /opt/eldk-5.4/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/
  " >> ~/.buildman
   - echo -e "${BUILDMAN_ARM} /opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/
  " >> ~/.buildman
   - echo -e "${BUILDMAN_SANDBOX} /usr/bin/gcc
  " >> ~/.buildman
c7cb334d1   Meier, Roger   .travis.yml: buil...
40
   - export BUILDMAN_ALIAS="x86:"
d9aa01978   Heiko Schocher   travis.yml: some ...
41
42
43
44
45
46
47
48
   - export BUILDMAN_ALIAS_ARM="arm:"
   - echo -e "
  
  [toolchain-alias]
  ${BUILDMAN_ALIAS} i386
  " >> ~/.buildman
   - echo -e "${BUILDMAN_ALIAS_ARM} armv5te
  " >> ~/.buildman
c7cb334d1   Meier, Roger   .travis.yml: buil...
49
   - cat ~/.buildman
07bf2122d   Stephen Warren   Enable test/py fo...
50
51
52
   - virtualenv /tmp/venv
   - . /tmp/venv/bin/activate
   - pip install pytest
c7cb334d1   Meier, Roger   .travis.yml: buil...
53
54
55
56
57
  
  env:
    global:
      - PATH=/tmp/dtc:$PATH
      - BUILD_DIR=build
c7cb334d1   Meier, Roger   .travis.yml: buil...
58
59
      - HOSTCC="cc"
      - HOSTCXX="c++"
c7cb334d1   Meier, Roger   .travis.yml: buil...
60
61
  
  before_script:
050c7569b   Roger Meier   .travis.yml: rewo...
62
63
64
65
66
67
68
69
70
71
    # install toolchains based on TOOLCHAIN} variable
    - if [[ "${TOOLCHAIN}" == *aarch64* ]]; then ./tools/buildman/buildman --fetch-arch aarch64 ; fi
    - if [[ "${TOOLCHAIN}" == *arm* ]]; then wget ftp://ftp.denx.de/pub/eldk/5.4/targets/armv5te/eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh ; fi
    - if [[ "${TOOLCHAIN}" == *arm* ]]; then sh eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh -y ; fi
    - if [[ "${TOOLCHAIN}" == *avr32* ]]; then ./tools/buildman/buildman --fetch-arch avr32 ; fi
    - if [[ "${TOOLCHAIN}" == *i386* ]]; then ./tools/buildman/buildman sandbox --fetch-arch i386 ; fi
    - if [[ "${TOOLCHAIN}" == *m68k* ]]; then ./tools/buildman/buildman --fetch-arch m68k ; fi
    - if [[ "${TOOLCHAIN}" == *mips* ]]; then ./tools/buildman/buildman --fetch-arch mips ; fi
    - if [[ "${TOOLCHAIN}" == *ppc* ]]; then wget ftp://ftp.denx.de/pub/eldk/5.4/targets/powerpc/eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh ; fi
    - if [[ "${TOOLCHAIN}" == *ppc* ]]; then sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y ; fi
c7cb334d1   Meier, Roger   .travis.yml: buil...
72
73
74
  
  script:
   # the execution sequence for each test
050c7569b   Roger Meier   .travis.yml: rewo...
75
76
77
78
79
80
   - if [[ "${TEST_CMD}" != "" ]]; then
       ${TEST_CMD};
     fi
   - if [[ "${BUILDMAN}" != "" ]]; then
       tools/buildman/buildman ${BUILDMAN};
     fi
c7cb334d1   Meier, Roger   .travis.yml: buil...
81
82
83
84
85
86
  
  matrix:
    include:
    # we need to build by vendor due to 50min time limit for builds
    # each env setting here is a dedicated build
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
87
88
89
90
91
92
93
94
          - BUILDMAN="arm1136"
            TOOLCHAIN="arm"
      - env:
          - BUILDMAN="arm1136"
            TOOLCHAIN="arm"
      - env:
          - BUILDMAN="arm1176"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
95
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
96
97
          - BUILDMAN="arm720t"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
98
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
99
100
          - BUILDMAN="arm920t"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
101
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
102
103
          - BUILDMAN="atmel -x avr32"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
104
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
105
106
          - BUILDMAN="avr32"
            TOOLCHAIN="avr32"
c7cb334d1   Meier, Roger   .travis.yml: buil...
107
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
108
109
          - BUILDMAN="davinci"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
110
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
111
112
          - BUILDMAN="denx"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
113
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
114
115
          - BUILDMAN="freescale -x powerpc,m68k,aarch64"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
116
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
117
118
          - BUILDMAN="sandbox x86"
            TOOLCHAIN="i386"
c7cb334d1   Meier, Roger   .travis.yml: buil...
119
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
120
121
          - BUILDMAN="kirkwood"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
122
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
123
124
          - BUILDMAN="m68k"
            TOOLCHAIN="m68k"
c7cb334d1   Meier, Roger   .travis.yml: buil...
125
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
126
127
          - BUILDMAN="mips"
            TOOLCHAIN="mips"
d9aa01978   Heiko Schocher   travis.yml: some ...
128
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
129
130
          - BUILDMAN="mpc512x"
            TOOLCHAIN="ppc"
d9aa01978   Heiko Schocher   travis.yml: some ...
131
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
132
133
          - BUILDMAN="mpc5xx"
            TOOLCHAIN="ppc"
d9aa01978   Heiko Schocher   travis.yml: some ...
134
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
135
136
          - BUILDMAN="mpc5xxx"
            TOOLCHAIN="ppc"
d9aa01978   Heiko Schocher   travis.yml: some ...
137
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
138
139
          - BUILDMAN="mpc8260"
            TOOLCHAIN="ppc"
c7cb334d1   Meier, Roger   .travis.yml: buil...
140
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
141
142
          - BUILDMAN="mpc83xx"
            TOOLCHAIN="ppc"
c7cb334d1   Meier, Roger   .travis.yml: buil...
143
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
144
145
          - BUILDMAN="mpc85xx -x freescale"
            TOOLCHAIN="ppc"
d9aa01978   Heiko Schocher   travis.yml: some ...
146
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
147
148
          - BUILDMAN="mpc85xx -x t208xrdb -x t4qds -x t102* -x p1_p2_rdb_pc -x p1010rdb -x corenet_ds -x b4860qds -x sbc8548 -x bsc91*"
            TOOLCHAIN="ppc"
d9aa01978   Heiko Schocher   travis.yml: some ...
149
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
150
151
          - BUILDMAN="t208xrdb t4qds t102*"
            TOOLCHAIN="ppc"
d9aa01978   Heiko Schocher   travis.yml: some ...
152
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
153
154
          - BUILDMAN="p1_p2_rdb_pc p1010rdb"
            TOOLCHAIN="ppc"
8cb2101b9   Heiko Schocher   travis.yml: add m...
155
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
156
157
          - BUILDMAN="corenet_ds b4860qds sbc8548 bsc91*"
            TOOLCHAIN="ppc"
c7cb334d1   Meier, Roger   .travis.yml: buil...
158
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
159
160
          - BUILDMAN="mpc86xx"
            TOOLCHAIN="ppc"
c7cb334d1   Meier, Roger   .travis.yml: buil...
161
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
162
163
          - BUILDMAN="mpc8xx"
            TOOLCHAIN="ppc"
c7cb334d1   Meier, Roger   .travis.yml: buil...
164
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
165
166
167
168
169
170
171
172
          - BUILDMAN="siemens"
            TOOLCHAIN="arm"
      - env:
          - BUILDMAN="ti"
            TOOLCHAIN="arm"
      - env:
          - BUILDMAN="aarch64"
            TOOLCHAIN="aarch64"
c7cb334d1   Meier, Roger   .travis.yml: buil...
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
  
      # QA jobs for code analytics
      # static code analysis with cppcheck (we can add --enable=all later)
      - env:
          - TEST_CMD="cppcheck --force --quiet --inline-suppr ."
      # search for TODO within source tree
      - env:
          - TEST_CMD="grep -r TODO ."
      # search for FIXME within source tree
      - env:
          - TEST_CMD="grep -r FIXME ."
      # search for HACK within source tree and ignore HACKKIT board
      - env:
          - TEST_CMD="grep -r HACK . | grep -v HACKKIT"
        script:
          - grep -r HACK . | grep -v HACKKIT
      # some statistics about the code base
      - env:
          - TEST_CMD="sloccount ."
07bf2122d   Stephen Warren   Enable test/py fo...
192
193
194
      # test/py
      - env:
          - TEST_CMD="./test/py/test.py --bd sandbox --build"
c7cb334d1   Meier, Roger   .travis.yml: buil...
195

c7cb334d1   Meier, Roger   .travis.yml: buil...
196
  # TODO make it perfect ;-r