[U-Boot] [PATCH] .travis.yml: build u-boot on travis-ci

Signed-off-by: Roger Meier r.meier@siemens.com --- .travis.yml | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 .travis.yml
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..027aff2 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,86 @@ +# Copyright Roger Meier r.meier@siemens.com +# SPDX-License-Identifier: GPL-2.0+ + +# build U-Boot on Travis CI - https://travis-ci.org/ + +language: c + +cache: + - apt + +install: + - sudo apt-get install -qq cppcheck sloccount sparse bc device-tree-compiler gcc-arm-linux-gnueabi + +env: + global: + - BUILD_DIR=build + - DOWNLOAD_URL="" + - INSTALL_CMD="" + - CROSS_COMPILE="" + - HOSTCC = "cc" + - HOSTCXX = "c++" + +before_script: + - if [[ "$DOWNLOAD_URL" != "" ]]; then wget $DOWNLOAD_URL ; fi + - if [[ "$INSTALL_CMD" != "" ]]; then $INSTALL_CMD ; fi + +script: + - export BUILD_NCPUS="`grep processor /proc/cpuinfo | wc -l`" + - echo "BUILD on" $BUILD_NCPUS "cpu's" + - echo $TEST_CMD && $TEST_CMD + +matrix: + include: +# arm and powerpc have too many boards for th 50min time limit +# so we need to build by vendor + - env: + - TEST_CMD="./MAKEALL -a arm -v atmel" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v denx" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v freescale" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v siemens" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v ti" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a x86" + - HOSTCC = "gcc" + - HOSTCXX = "g++" + - env: + - TEST_CMD="./MAKEALL -a x86" + - HOSTCC = "clang" + - HOSTCXX = "clang++" + - env: + - TEST_CMD="./MAKEALL -a powerpc -v freescale" + CROSS_COMPILE="/opt/eldk-5.4/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/powerpc-" + DOWNLOAD_URL="ftp://ftp.denx.de/pub/eldk/5.4/targets/powerpc/eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh" + INSTALL_CMD="sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y" + - env: + - TEST_CMD="./MAKEALL -a mips" + CROSS_COMPILE="/opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-linux-" + DOWNLOAD_URL="ftp://ftp.denx.de/pub/eldk/5.4/targets/mips/eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh" + INSTALL_CMD="sh eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh -y" + - env: + - TEST_CMD="./MAKEALL -a arm -v denx -v siemens" + CROSS_COMPILE="/opt/eldk-5.4/armv7a-hf/sysroots/i686-eldk-linux/usr/bin/armv7ahf-vfp-neon-linux-gnueabi/arm-linux-gnueabi-" + DOWNLOAD_URL="ftp://ftp.denx.de/pub/eldk/5.4/targets/armv7a-hf/eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh" + INSTALL_CMD="sh eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh -y" + - env: + - TEST_CMD="cppcheck --force --quiet ." + - env: + - TEST_CMD="grep -r TODO *" + - env: + - TEST_CMD="grep -r FIXME *" + - env: + - TEST_CMD="grep -r HACK *" + - env: + - TEST_CMD="sloccount ." + +notifications: + email: false

And here is the result: https://travis-ci.org/siemens/u-boot/builds/40058028
-----Original Message----- From: Roger Meier [mailto:r.meier@siemens.com] Sent: Mittwoch, 5. November 2014 14:39 To: u-boot@lists.denx.de Cc: Roger Meier; Meier, Roger Subject: [PATCH] .travis.yml: build u-boot on travis-ci
Signed-off-by: Roger Meier r.meier@siemens.com
.travis.yml | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 .travis.yml
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..027aff2 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,86 @@ +# Copyright Roger Meier r.meier@siemens.com +# SPDX-License-Identifier: GPL-2.0+
+# build U-Boot on Travis CI - https://travis-ci.org/
+language: c
+cache:
- apt
+install:
- sudo apt-get install -qq cppcheck sloccount sparse bc device-tree-compiler
gcc-arm-linux-gnueabi
+env:
- global:
- BUILD_DIR=build
- DOWNLOAD_URL=""
- INSTALL_CMD=""
- CROSS_COMPILE=""
- HOSTCC = "cc"
- HOSTCXX = "c++"
+before_script:
- if [[ "$DOWNLOAD_URL" != "" ]]; then wget $DOWNLOAD_URL ; fi
- if [[ "$INSTALL_CMD" != "" ]]; then $INSTALL_CMD ; fi
+script:
- export BUILD_NCPUS="`grep processor /proc/cpuinfo | wc -l`"
- echo "BUILD on" $BUILD_NCPUS "cpu's"
- echo $TEST_CMD && $TEST_CMD
+matrix:
- include:
+# arm and powerpc have too many boards for th 50min time limit +# so we need to build by vendor
- env:
- TEST_CMD="./MAKEALL -a arm -v atmel"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a arm -v denx"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a arm -v freescale"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a arm -v siemens"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a arm -v ti"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a x86"
- HOSTCC = "gcc"
- HOSTCXX = "g++"
- env:
- TEST_CMD="./MAKEALL -a x86"
- HOSTCC = "clang"
- HOSTCXX = "clang++"
- env:
- TEST_CMD="./MAKEALL -a powerpc -v freescale"
CROSS_COMPILE="/opt/eldk-5.4/powerpc/sysroots/i686-eldk-
linux/usr/bin/powerpc-linux/powerpc-"
DOWNLOAD_URL="ftp://ftp.denx.de/pub/eldk/5.4/targets/powerpc/eldk-
eglibc-i686-powerpc-toolchain-gmae-5.4.sh"
INSTALL_CMD="sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y"
- env:
- TEST_CMD="./MAKEALL -a mips"
CROSS_COMPILE="/opt/eldk-5.4/mips/sysroots/i686-eldk-
linux/usr/bin/mips32-linux/mips-linux-"
DOWNLOAD_URL="ftp://ftp.denx.de/pub/eldk/5.4/targets/mips/eldk-
eglibc-i686-mips-toolchain-gmae-5.4.sh"
INSTALL_CMD="sh eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh -y"
- env:
- TEST_CMD="./MAKEALL -a arm -v denx -v siemens"
CROSS_COMPILE="/opt/eldk-5.4/armv7a-hf/sysroots/i686-eldk-
linux/usr/bin/armv7ahf-vfp-neon-linux-gnueabi/arm-linux-gnueabi-"
DOWNLOAD_URL="ftp://ftp.denx.de/pub/eldk/5.4/targets/armv7a-
hf/eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh"
INSTALL_CMD="sh eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh -y"
- env:
- TEST_CMD="cppcheck --force --quiet ."
- env:
- TEST_CMD="grep -r TODO *"
- env:
- TEST_CMD="grep -r FIXME *"
- env:
- TEST_CMD="grep -r HACK *"
- env:
- TEST_CMD="sloccount ."
+notifications:
- email: false
-- 1.7.10.4

On Wed, Nov 05, 2014 at 03:10:11PM +0000, Meier, Roger wrote:
And here is the result: https://travis-ci.org/siemens/u-boot/builds/40058028
Interesting. I just saw something else about travis-ci elsewhere. My first thought is can you update it to use buildman instead of MAKEALL? And a few more comments about what/why and I don't see a downside to including at least a sample config and we can explore wider usage of travis-ci (the 50min thing worries me a bit but maybe we can find some other ways to break it down). Thanks!

On Wed, Nov 05, 2014 at 03:10:11PM +0000, Meier, Roger wrote:
And here is the result: https://travis-ci.org/siemens/u-boot/builds/40058028
Interesting. I just saw something else about travis-ci elsewhere. My first thought is can you update it to use buildman instead of MAKEALL? And a few more comments about what/why and I don't see a downside to including at least a sample config and we can explore wider usage of travis-ci (the 50min thing worries me a bit but maybe we can find some other ways to break it down). Thanks!
Yes, I know buildman is the new MAKEALL. It is already on my list, I will try to get it up and running during the next few days and will include some more comments with a further version.
A big challenge is to add all toolchains and create small configurations to stay within time limit. That's why I created some vendor configs. Parallel execution is another key element, I guess buildman is already taking care on this.
Would be great, if somebody can have a look at the broken builds we have with this .travis.yml file.
Best! -roger

Dear Roger Meier,
In message 1415194714-13192-1-git-send-email-r.meier@siemens.com you wrote:
Signed-off-by: Roger Meier r.meier@siemens.com
.travis.yml | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 .travis.yml
Cool, thanks a lot!
As Tom already commented, we should probably move to buildman now that MAKEALL is scheduled for removel, but I really like this approach!
Acked-by: Wolfgang Denk wd@denx.de
Best regards,
Wolfgang Denk

On 05.11.2014 14:38, Roger Meier wrote:
Signed-off-by: Roger Meier r.meier@siemens.com
.travis.yml | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 .travis.yml
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..027aff2 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,86 @@ +# Copyright Roger Meier r.meier@siemens.com +# SPDX-License-Identifier: GPL-2.0+
+# build U-Boot on Travis CI - https://travis-ci.org/
+language: c
+cache:
- apt
+install:
- sudo apt-get install -qq cppcheck sloccount sparse bc device-tree-compiler gcc-arm-linux-gnueabi
does Ubuntu's device-tree-compiler work for you with current mainline? Actually Ubuntu 12.04 ships dtc-1.3 and U-Boot requires at least dtc-1.4. I need following fragments to get sandbox working:
install: - git clone --depth=1 https://git.kernel.org/pub/scm/utils/dtc/dtc.git /tmp/dtc - make -j4 -C /tmp/dtc
script: - make sandbox_defconfig - make -j4
env: global: - PATH=$PATH:/tmp/dtc
+env:
- global:
- BUILD_DIR=build
- DOWNLOAD_URL=""
- INSTALL_CMD=""
- CROSS_COMPILE=""
- HOSTCC = "cc"
- HOSTCXX = "c++"
+before_script:
- if [[ "$DOWNLOAD_URL" != "" ]]; then wget $DOWNLOAD_URL ; fi
- if [[ "$INSTALL_CMD" != "" ]]; then $INSTALL_CMD ; fi
+script:
- export BUILD_NCPUS="`grep processor /proc/cpuinfo | wc -l`"
- echo "BUILD on" $BUILD_NCPUS "cpu's"
- echo $TEST_CMD && $TEST_CMD
+matrix:
- include:
+# arm and powerpc have too many boards for th 50min time limit +# so we need to build by vendor
- env:
- TEST_CMD="./MAKEALL -a arm -v atmel"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a arm -v denx"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a arm -v freescale"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a arm -v siemens"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a arm -v ti"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a x86"
- HOSTCC = "gcc"
- HOSTCXX = "g++"
- env:
- TEST_CMD="./MAKEALL -a x86"
- HOSTCC = "clang"
- HOSTCXX = "clang++"
- env:
- TEST_CMD="./MAKEALL -a powerpc -v freescale"
CROSS_COMPILE="/opt/eldk-5.4/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/powerpc-"
DOWNLOAD_URL="ftp://ftp.denx.de/pub/eldk/5.4/targets/powerpc/eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh"
INSTALL_CMD="sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y"
- env:
- TEST_CMD="./MAKEALL -a mips"
CROSS_COMPILE="/opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-linux-"
DOWNLOAD_URL="ftp://ftp.denx.de/pub/eldk/5.4/targets/mips/eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh"
INSTALL_CMD="sh eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh -y"
- env:
- TEST_CMD="./MAKEALL -a arm -v denx -v siemens"
CROSS_COMPILE="/opt/eldk-5.4/armv7a-hf/sysroots/i686-eldk-linux/usr/bin/armv7ahf-vfp-neon-linux-gnueabi/arm-linux-gnueabi-"
DOWNLOAD_URL="ftp://ftp.denx.de/pub/eldk/5.4/targets/armv7a-hf/eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh"
INSTALL_CMD="sh eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh -y"
- env:
- TEST_CMD="cppcheck --force --quiet ."
- env:
- TEST_CMD="grep -r TODO *"
- env:
- TEST_CMD="grep -r FIXME *"
- env:
- TEST_CMD="grep -r HACK *"
- env:
- TEST_CMD="sloccount ."
+notifications:
- email: false

--- Changes for v2: - use latest device tree compiler (suggested by Daniel Schwierzeck) - add sandbox (suggested by Daniel Schwierzeck) - seperate echo and execution of TEST_CMD - remove BUILD_NCPUS( part of script) - introduce ${TEST_CONFIG_CMD} - add libsdl-dev package which is required by sandbox - use buildman (suggested by Tom Rini) - generate ~/.buildman - split ppc into several jobs - install gcc-arm-linux-gnueabihf - use --inline-suppr option for cppcheck
Signed-off-by: Roger Meier r.meier@siemens.com Cc: Wolfgang Denk wd@denx.de Cc: Tom Rini trini@ti.com Cc: Daniel Schwierzeck daniel.schwierzeck@gmail.com --- .travis.yml | 148 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 .travis.yml
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..7488a3f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,148 @@ +# Copyright Roger Meier r.meier@siemens.com +# SPDX-License-Identifier: GPL-2.0+ + +# build U-Boot on Travis CI - https://travis-ci.org/ + +language: c + +cache: + - apt + +install: + # install U-Boot build dependencies + - sudo apt-get install -qq cppcheck sloccount sparse bc libsdl-dev gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf + # 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:" + - export BUILDMAN_MIPS="mips:" + - export BUILDMAN_PPC="ppc:" + - echo -e "[toolchain]\n${BUILDMAN_ROOT} /\n" > ~/.buildman + - echo -e "${BUILDMAN_MIPS} /opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/" >> ~/.buildman + - echo -e "${BUILDMAN_PPC} /opt/eldk-5.4/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/" >> ~/.buildman + - export BUILDMAN_ALIAS="x86:" + - echo -e "[toolchain-alias]\n${BUILDMAN_ALIAS} i386" >> ~/.buildman + - cat ~/.buildman + +env: + global: + - PATH=$PATH:/tmp/dtc + - BUILD_DIR=build + - CROSS_COMPILE="" + - HOSTCC="cc" + - HOSTCXX="c++" + - TEST_CONFIG_CMD="" + +before_script: + # install toolchains based on INSTALL_TOOLCHAIN} variable + - if [[ "${INSTALL_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 [[ "${INSTALL_TOOLCHAIN}" == *ppc* ]]; then sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y ; fi + - if [[ "${INSTALL_TOOLCHAIN}" == *mips* ]]; then wget ftp://ftp.denx.de/pub/eldk/5.4/targets/mips/eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh ; fi + - if [[ "${INSTALL_TOOLCHAIN}" == *mips* ]]; then sh eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh -y ; fi + +script: + # the execution sequence for each test + - echo ${TEST_CONFIG_CMD} + - ${TEST_CONFIG_CMD} + - echo ${TEST_CMD} + - ${TEST_CMD} + +matrix: + include: + # we need to build by vendor due to 50min time limit for builds + # each env setting here is a dedicated build + - env: + - TEST_CMD="./MAKEALL -a arm -v atmel" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v denx" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v freescale" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v siemens" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v ti" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CONFIG_CMD="make sandbox_defconfig" + TEST_CMD="make -j4" + HOSTCC = "gcc" + HOSTCXX = "g++" + - env: + - TEST_CONFIG_CMD="make sandbox_defconfig" + TEST_CMD="make -j4" + HOSTCC = "clang" + HOSTCXX = "clang++" + - env: + - TEST_CMD="./MAKEALL -a mips" + INSTALL_TOOLCHAIN="mips" + CROSS_COMPILE="/opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-linux-" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards atmel" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards denx" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards freescale arm" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards siemens" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards ti" + - env: + - TEST_CMD="tools/buildman/buildman mips" + INSTALL_TOOLCHAIN="mips" + - env: + - TEST_CMD="tools/buildman/buildman mpc5xx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc8xx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc5xxx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc512x" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc824x" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc8260" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc83xx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc85xx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc86xx" + INSTALL_TOOLCHAIN="ppc" + + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards sandbox x86" + + # 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 *" + # some statistics about the code base + - env: + - TEST_CMD="sloccount ." + +notifications: + email: false + +# TODO make it perfect ;-r

Hi,
Am 14.11.2014 um 14:58 schrieb Roger Meier:
Changes for v2:
- use latest device tree compiler (suggested by Daniel Schwierzeck)
- add sandbox (suggested by Daniel Schwierzeck)
- seperate echo and execution of TEST_CMD
- remove BUILD_NCPUS( part of script)
- introduce ${TEST_CONFIG_CMD}
- add libsdl-dev package which is required by sandbox
- use buildman (suggested by Tom Rini)
- generate ~/.buildman
- split ppc into several jobs
- install gcc-arm-linux-gnueabihf
- use --inline-suppr option for cppcheck
Signed-off-by: Roger Meier r.meier@siemens.com Cc: Wolfgang Denk wd@denx.de Cc: Tom Rini trini@ti.com Cc: Daniel Schwierzeck daniel.schwierzeck@gmail.com
The Sob was probably meant to go before the first ---?
Regards, Andreas

Hello,
Hi,
Am 14.11.2014 um 14:58 schrieb Roger Meier:
Changes for v2:
- use latest device tree compiler (suggested by Daniel Schwierzeck)
- add sandbox (suggested by Daniel Schwierzeck)
- seperate echo and execution of TEST_CMD
- remove BUILD_NCPUS( part of script)
- introduce ${TEST_CONFIG_CMD}
- add libsdl-dev package which is required by sandbox
- use buildman (suggested by Tom Rini)
- generate ~/.buildman
- split ppc into several jobs
- install gcc-arm-linux-gnueabihf
- use --inline-suppr option for cppcheck
Signed-off-by: Roger Meier r.meier@siemens.com Cc: Wolfgang Denk wd@denx.de Cc: Tom Rini trini@ti.com Cc: Daniel Schwierzeck daniel.schwierzeck@gmail.com
The Sob was probably meant to go before the first ---?
Yes, however patchworks detected the patch properly. http://patchwork.ozlabs.org/patch/410846/
What I forgot to mention, here is the build result: https://travis-ci.org/u-boot/u-boot/builds/41050962
Best! -roger
PS: I've also contacted GitHub about the orphan u-boot account and I got it. So we can have a mirror on GitHub and use travis-ci as a build system. Here is this patch: https://github.com/u-boot/u-boot/tree/travis2

From: "Meier, Roger" r.meier@siemens.com
Goal: - building all variants of U-Boot with multiple configurations - code quality checks and metrics - https://travis-ci.org/u-boot/u-boot/builds
Changes for v3: - fix patch format (recognized by Andreas Färber) - get in touch with GitHub about the orphan u-boot account and get it - install travis-ci hook on the account https://github.com/u-boot/u-boot/ - push master and travis branch to https://github.com/u-boot/u-boot/ - add Goal to the commit message
Changes for v2: - use latest device tree compiler (suggested by Daniel Schwierzeck) - add sandbox (suggested by Daniel Schwierzeck) - seperate echo and execution of TEST_CMD - remove BUILD_NCPUS( part of script) - introduce ${TEST_CONFIG_CMD} - add libsdl-dev package which is required by sandbox - use buildman (suggested by Tom Rini) - generate ~/.buildman - split ppc into several jobs - install gcc-arm-linux-gnueabihf - use --inline-suppr option for cppcheck
Signed-off-by: Roger Meier r.meier@siemens.com Cc: Wolfgang Denk wd@denx.de Cc: Tom Rini trini@ti.com Cc: Daniel Schwierzeck daniel.schwierzeck@gmail.com Cc: Andreas Färber afaerber@suse.de --- .travis.yml | 148 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 .travis.yml
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..7488a3f --- /dev/null +++ b/.travis.yml @@ -0,0 +1,148 @@ +# Copyright Roger Meier r.meier@siemens.com +# SPDX-License-Identifier: GPL-2.0+ + +# build U-Boot on Travis CI - https://travis-ci.org/ + +language: c + +cache: + - apt + +install: + # install U-Boot build dependencies + - sudo apt-get install -qq cppcheck sloccount sparse bc libsdl-dev gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf + # 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:" + - export BUILDMAN_MIPS="mips:" + - export BUILDMAN_PPC="ppc:" + - echo -e "[toolchain]\n${BUILDMAN_ROOT} /\n" > ~/.buildman + - echo -e "${BUILDMAN_MIPS} /opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/" >> ~/.buildman + - echo -e "${BUILDMAN_PPC} /opt/eldk-5.4/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/" >> ~/.buildman + - export BUILDMAN_ALIAS="x86:" + - echo -e "[toolchain-alias]\n${BUILDMAN_ALIAS} i386" >> ~/.buildman + - cat ~/.buildman + +env: + global: + - PATH=$PATH:/tmp/dtc + - BUILD_DIR=build + - CROSS_COMPILE="" + - HOSTCC="cc" + - HOSTCXX="c++" + - TEST_CONFIG_CMD="" + +before_script: + # install toolchains based on INSTALL_TOOLCHAIN} variable + - if [[ "${INSTALL_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 [[ "${INSTALL_TOOLCHAIN}" == *ppc* ]]; then sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y ; fi + - if [[ "${INSTALL_TOOLCHAIN}" == *mips* ]]; then wget ftp://ftp.denx.de/pub/eldk/5.4/targets/mips/eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh ; fi + - if [[ "${INSTALL_TOOLCHAIN}" == *mips* ]]; then sh eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh -y ; fi + +script: + # the execution sequence for each test + - echo ${TEST_CONFIG_CMD} + - ${TEST_CONFIG_CMD} + - echo ${TEST_CMD} + - ${TEST_CMD} + +matrix: + include: + # we need to build by vendor due to 50min time limit for builds + # each env setting here is a dedicated build + - env: + - TEST_CMD="./MAKEALL -a arm -v atmel" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v denx" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v freescale" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v siemens" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v ti" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CONFIG_CMD="make sandbox_defconfig" + TEST_CMD="make -j4" + HOSTCC = "gcc" + HOSTCXX = "g++" + - env: + - TEST_CONFIG_CMD="make sandbox_defconfig" + TEST_CMD="make -j4" + HOSTCC = "clang" + HOSTCXX = "clang++" + - env: + - TEST_CMD="./MAKEALL -a mips" + INSTALL_TOOLCHAIN="mips" + CROSS_COMPILE="/opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-linux-" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards atmel" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards denx" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards freescale arm" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards siemens" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards ti" + - env: + - TEST_CMD="tools/buildman/buildman mips" + INSTALL_TOOLCHAIN="mips" + - env: + - TEST_CMD="tools/buildman/buildman mpc5xx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc8xx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc5xxx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc512x" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc824x" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc8260" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc83xx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc85xx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc86xx" + INSTALL_TOOLCHAIN="ppc" + + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards sandbox x86" + + # 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 *" + # some statistics about the code base + - env: + - TEST_CMD="sloccount ." + +notifications: + email: false + +# TODO make it perfect ;-r

Dear Roger,
In message 1416377222-22192-1-git-send-email-r.meier@siemens.com you wrote:
From: "Meier, Roger" r.meier@siemens.com
Goal:
- building all variants of U-Boot with multiple configurations
- code quality checks and metrics
- https://travis-ci.org/u-boot/u-boot/builds
Changes for v3:
...
Changes for v2:
...
This changelog should go below the "---" separator line
- # search for HACK within source tree and ignore HACKKIT board
- env:
- TEST_CMD="grep -r HACK *"
I don't see how you ignore MACH_TYPE_HACKKIT etc. here? Is this eventually sstill missing?
Except for these two minor comments: thanks a lot for this extremly valuable contribution.
Acked-by: Wolfgang Denk wd@denx.de
Best regards,
Wolfgang Denk

Dear Roger,
In message 1416377222-22192-1-git-send-email-r.meier@siemens.com you wrote:
+env:
- global:
- PATH=$PATH:/tmp/dtc
Should /tmp/dtc not go first in PATH, in case an older version of dtc is already installed on the build host?
Best regards,
Wolfgang Denk

From: "Meier, Roger" r.meier@siemens.com
Goal: - building all variants of U-Boot with multiple configurations - code quality checks and metrics - https://travis-ci.org/u-boot/u-boot/builds
--- Changes for v4: - ignore HACKKIT board (suggested by Wolfgang Denk) - add /tmp/dtc as first element to PATH (suggested by Wolfgang Denk)
Changes for v3: - fix patch format (recognized by Andreas Färber) - get in touch with GitHub about the orphan u-boot account and get it - install travis-ci hook on the account https://github.com/u-boot/u-boot/ - push master and travis branch to https://github.com/u-boot/u-boot/ - add Goal to the commit message
Changes for v2: - use latest device tree compiler (suggested by Daniel Schwierzeck) - add sandbox (suggested by Daniel Schwierzeck) - seperate echo and execution of TEST_CMD - remove BUILD_NCPUS( part of script) - introduce ${TEST_CONFIG_CMD} - add libsdl-dev package which is required by sandbox - use buildman (suggested by Tom Rini) - generate ~/.buildman - split ppc into several jobs - install gcc-arm-linux-gnueabihf - use --inline-suppr option for cppcheck
Signed-off-by: Roger Meier r.meier@siemens.com Cc: Wolfgang Denk wd@denx.de Cc: Tom Rini trini@ti.com Cc: Daniel Schwierzeck daniel.schwierzeck@gmail.com Cc: Andreas Färber afaerber@suse.de --- .travis.yml | 150 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 .travis.yml
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..90f0fd7 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,150 @@ +# Copyright Roger Meier r.meier@siemens.com +# SPDX-License-Identifier: GPL-2.0+ + +# build U-Boot on Travis CI - https://travis-ci.org/ + +language: c + +cache: + - apt + +install: + # install U-Boot build dependencies + - sudo apt-get install -qq cppcheck sloccount sparse bc libsdl-dev gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf + # 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:" + - export BUILDMAN_MIPS="mips:" + - export BUILDMAN_PPC="ppc:" + - echo -e "[toolchain]\n${BUILDMAN_ROOT} /\n" > ~/.buildman + - echo -e "${BUILDMAN_MIPS} /opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/" >> ~/.buildman + - echo -e "${BUILDMAN_PPC} /opt/eldk-5.4/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/" >> ~/.buildman + - export BUILDMAN_ALIAS="x86:" + - echo -e "[toolchain-alias]\n${BUILDMAN_ALIAS} i386" >> ~/.buildman + - cat ~/.buildman + +env: + global: + - PATH=/tmp/dtc:$PATH + - BUILD_DIR=build + - CROSS_COMPILE="" + - HOSTCC="cc" + - HOSTCXX="c++" + - TEST_CONFIG_CMD="" + +before_script: + # install toolchains based on INSTALL_TOOLCHAIN} variable + - if [[ "${INSTALL_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 [[ "${INSTALL_TOOLCHAIN}" == *ppc* ]]; then sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y ; fi + - if [[ "${INSTALL_TOOLCHAIN}" == *mips* ]]; then wget ftp://ftp.denx.de/pub/eldk/5.4/targets/mips/eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh ; fi + - if [[ "${INSTALL_TOOLCHAIN}" == *mips* ]]; then sh eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh -y ; fi + +script: + # the execution sequence for each test + - echo ${TEST_CONFIG_CMD} + - ${TEST_CONFIG_CMD} + - echo ${TEST_CMD} + - ${TEST_CMD} + +matrix: + include: + # we need to build by vendor due to 50min time limit for builds + # each env setting here is a dedicated build + - env: + - TEST_CMD="./MAKEALL -a arm -v atmel" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v denx" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v freescale" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v siemens" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CMD="./MAKEALL -a arm -v ti" + CROSS_COMPILE="arm-linux-gnueabi-" + - env: + - TEST_CONFIG_CMD="make sandbox_defconfig" + TEST_CMD="make -j4" + HOSTCC = "gcc" + HOSTCXX = "g++" + - env: + - TEST_CONFIG_CMD="make sandbox_defconfig" + TEST_CMD="make -j4" + HOSTCC = "clang" + HOSTCXX = "clang++" + - env: + - TEST_CMD="./MAKEALL -a mips" + INSTALL_TOOLCHAIN="mips" + CROSS_COMPILE="/opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-linux-" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards atmel" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards denx" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards freescale arm" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards siemens" + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards ti" + - env: + - TEST_CMD="tools/buildman/buildman mips" + INSTALL_TOOLCHAIN="mips" + - env: + - TEST_CMD="tools/buildman/buildman mpc5xx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc8xx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc5xxx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc512x" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc824x" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc8260" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc83xx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc85xx" + INSTALL_TOOLCHAIN="ppc" + - env: + - TEST_CMD="tools/buildman/buildman mpc86xx" + INSTALL_TOOLCHAIN="ppc" + + - env: + - TEST_CMD="tools/buildman/buildman --list-error-boards sandbox x86" + + # 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 ." + +notifications: + email: false + +# TODO make it perfect ;-r

On Wed, Nov 19, 2014 at 03:26:18PM +0100, Meier, Roger wrote:
From: "Meier, Roger" r.meier@siemens.com
Goal:
- building all variants of U-Boot with multiple configurations
- code quality checks and metrics
- https://travis-ci.org/u-boot/u-boot/builds
Applied to u-boot/master, thanks!
participants (6)
-
Andreas Färber
-
Daniel Schwierzeck
-
Meier, Roger
-
Roger Meier
-
Tom Rini
-
Wolfgang Denk