Blame view

.travis.yml 5.32 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
c7cb334d1   Meier, Roger   .travis.yml: buil...
16
17
18
19
  cache:
   - apt
  
  install:
c7cb334d1   Meier, Roger   .travis.yml: buil...
20
21
22
23
24
   # 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...
25
   - export BUILDMAN_PPC="ppc:"
d9aa01978   Heiko Schocher   travis.yml: some ...
26
27
28
29
30
   - export BUILDMAN_ARM="arm:"
   - export BUILDMAN_SANDBOX="sandbox:"
   - echo -e "[toolchain]
  ${BUILDMAN_ROOT} /
  " > ~/.buildman
d9aa01978   Heiko Schocher   travis.yml: some ...
31
32
33
34
35
36
   - 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...
37
   - export BUILDMAN_ALIAS="x86:"
d9aa01978   Heiko Schocher   travis.yml: some ...
38
39
40
41
42
43
44
45
   - 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...
46
47
48
49
50
51
   - cat ~/.buildman
  
  env:
    global:
      - PATH=/tmp/dtc:$PATH
      - BUILD_DIR=build
c7cb334d1   Meier, Roger   .travis.yml: buil...
52
53
      - HOSTCC="cc"
      - HOSTCXX="c++"
c7cb334d1   Meier, Roger   .travis.yml: buil...
54
55
  
  before_script:
050c7569b   Roger Meier   .travis.yml: rewo...
56
57
58
59
60
61
62
63
64
65
    # 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...
66
67
68
  
  script:
   # the execution sequence for each test
050c7569b   Roger Meier   .travis.yml: rewo...
69
70
71
72
73
74
   - if [[ "${TEST_CMD}" != "" ]]; then
       ${TEST_CMD};
     fi
   - if [[ "${BUILDMAN}" != "" ]]; then
       tools/buildman/buildman ${BUILDMAN};
     fi
c7cb334d1   Meier, Roger   .travis.yml: buil...
75
76
77
78
79
80
  
  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...
81
82
83
84
85
86
87
88
          - BUILDMAN="arm1136"
            TOOLCHAIN="arm"
      - env:
          - BUILDMAN="arm1136"
            TOOLCHAIN="arm"
      - env:
          - BUILDMAN="arm1176"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
89
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
90
91
          - BUILDMAN="arm720t"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
92
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
93
94
          - BUILDMAN="arm920t"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
95
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
96
97
          - BUILDMAN="atmel -x avr32"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
98
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
99
100
          - BUILDMAN="avr32"
            TOOLCHAIN="avr32"
c7cb334d1   Meier, Roger   .travis.yml: buil...
101
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
102
103
          - BUILDMAN="davinci"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
104
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
105
106
          - BUILDMAN="denx"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
107
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
108
109
          - BUILDMAN="freescale -x powerpc,m68k,aarch64"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
110
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
111
112
          - BUILDMAN="sandbox x86"
            TOOLCHAIN="i386"
c7cb334d1   Meier, Roger   .travis.yml: buil...
113
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
114
115
          - BUILDMAN="kirkwood"
            TOOLCHAIN="arm"
c7cb334d1   Meier, Roger   .travis.yml: buil...
116
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
117
118
          - BUILDMAN="m68k"
            TOOLCHAIN="m68k"
c7cb334d1   Meier, Roger   .travis.yml: buil...
119
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
120
121
          - BUILDMAN="mips"
            TOOLCHAIN="mips"
d9aa01978   Heiko Schocher   travis.yml: some ...
122
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
123
124
          - BUILDMAN="mpc512x"
            TOOLCHAIN="ppc"
d9aa01978   Heiko Schocher   travis.yml: some ...
125
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
126
127
          - BUILDMAN="mpc5xx"
            TOOLCHAIN="ppc"
d9aa01978   Heiko Schocher   travis.yml: some ...
128
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
129
130
          - BUILDMAN="mpc5xxx"
            TOOLCHAIN="ppc"
d9aa01978   Heiko Schocher   travis.yml: some ...
131
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
132
133
          - BUILDMAN="mpc8260"
            TOOLCHAIN="ppc"
c7cb334d1   Meier, Roger   .travis.yml: buil...
134
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
135
136
          - BUILDMAN="mpc83xx"
            TOOLCHAIN="ppc"
c7cb334d1   Meier, Roger   .travis.yml: buil...
137
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
138
139
          - BUILDMAN="mpc85xx -x freescale"
            TOOLCHAIN="ppc"
d9aa01978   Heiko Schocher   travis.yml: some ...
140
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
141
142
          - 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 ...
143
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
144
145
          - BUILDMAN="t208xrdb t4qds t102*"
            TOOLCHAIN="ppc"
d9aa01978   Heiko Schocher   travis.yml: some ...
146
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
147
148
          - BUILDMAN="p1_p2_rdb_pc p1010rdb"
            TOOLCHAIN="ppc"
8cb2101b9   Heiko Schocher   travis.yml: add m...
149
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
150
151
          - BUILDMAN="corenet_ds b4860qds sbc8548 bsc91*"
            TOOLCHAIN="ppc"
c7cb334d1   Meier, Roger   .travis.yml: buil...
152
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
153
154
          - BUILDMAN="mpc86xx"
            TOOLCHAIN="ppc"
c7cb334d1   Meier, Roger   .travis.yml: buil...
155
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
156
157
          - BUILDMAN="mpc8xx"
            TOOLCHAIN="ppc"
c7cb334d1   Meier, Roger   .travis.yml: buil...
158
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
159
160
161
162
163
164
165
166
          - BUILDMAN="siemens"
            TOOLCHAIN="arm"
      - env:
          - BUILDMAN="ti"
            TOOLCHAIN="arm"
      - env:
          - BUILDMAN="aarch64"
            TOOLCHAIN="aarch64"
c7cb334d1   Meier, Roger   .travis.yml: buil...
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
  
      # 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 ."
c7cb334d1   Meier, Roger   .travis.yml: buil...
186
  # TODO make it perfect ;-r