diff mbox series

[1/2] CI: Modularize Travis configuration

Message ID 20210426071749.26921-2-michael.adler@siemens.com
State Changes Requested
Headers show
Series Modularize CI and support for Gitlab | expand

Commit Message

Michael Adler April 26, 2021, 7:17 a.m. UTC
This makes it easier to run the tests locally.

Signed-off-by: Michael Adler <michael.adler@siemens.com>
Signed-off-by: Christian Storm <christian.storm@siemens.com>
---
 .travis.yml            | 65 +++---------------------------------------
 ci/install-src-deps.sh | 59 ++++++++++++++++++++++++++++++++++++++
 ci/setup.sh            | 55 +++++++++++++++++++++++++++++++++++
 ci/test-configs.sh     | 18 ++++++++++++
 4 files changed, 136 insertions(+), 61 deletions(-)
 create mode 100755 ci/install-src-deps.sh
 create mode 100755 ci/setup.sh
 create mode 100755 ci/test-configs.sh

Comments

Stefano Babic April 27, 2021, 1:22 p.m. UTC | #1
Hi Michael,

On 26.04.21 09:17, Michael Adler wrote:
> This makes it easier to run the tests locally.
> 
> Signed-off-by: Michael Adler <michael.adler@siemens.com>
> Signed-off-by: Christian Storm <christian.storm@siemens.com>
> ---
>   .travis.yml            | 65 +++---------------------------------------
>   ci/install-src-deps.sh | 59 ++++++++++++++++++++++++++++++++++++++
>   ci/setup.sh            | 55 +++++++++++++++++++++++++++++++++++
>   ci/test-configs.sh     | 18 ++++++++++++
>   4 files changed, 136 insertions(+), 61 deletions(-)
>   create mode 100755 ci/install-src-deps.sh
>   create mode 100755 ci/setup.sh
>   create mode 100755 ci/test-configs.sh
> 
> diff --git a/.travis.yml b/.travis.yml
> index 008f8a4..7ccad7c 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -24,66 +24,9 @@ addons:
>       branch_pattern: coverity_scan
>   
>   before_install:
> -    - sudo apt-get -qq update
> -    - sudo apt-get install -y build-essential
> -    - sudo apt-get install -y automake
> -    - sudo apt-get install -y libzmq3-dev
> -    - sudo apt-get install -y liblua5.2-dev
> -    - sudo apt-get install -y libconfig-dev
> -    - sudo apt-get install -y libarchive-dev
> -    - sudo apt-get install -y libjson-c-dev
> -    - sudo apt-get install -y zlib1g-dev
> -    - sudo apt-get install -y git
> -    - sudo apt-get install -y uuid
> -    - sudo apt-get install -y uuid-dev
> -    - sudo apt-get install -y liblzo2-dev
> -    - sudo apt-get install -y libsystemd-dev
> -    - sudo apt-get install -y libsystemd0
> -    - sudo apt-get install -y check
> -    - sudo apt-get install -y librsync2
> -    - sudo apt-get install -y librsync-dev
> -    - sudo apt-get install -y liburiparser-dev
> -    - sudo apt-get install -y doxygen
> -    - sudo apt-get install -y graphviz
> -    - sudo apt-get install -y autoconf-archive
> -    - sudo apt-get install -y linux-headers-$(uname -r)
> -    - sudo apt-get install -y libmbedtls-dev
> -    - sudo apt-get install -y libcmocka-dev
> -    - sudo apt-get install -y libfdisk-dev
> -    - sudo apt-get install -y libwebsockets-dev
> -    - sudo apt-get install -y libgpiod-dev
> -    - echo -n | openssl s_client -connect https://scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
> -    - sudo ln -sf /usr/lib/x86_64-linux-gnu/pkgconfig/lua5.2.pc /usr/lib/x86_64-linux-gnu/pkgconfig/lua.pc
> -    - sudo mkdir -p /usr/local/lib
> -    - sudo mkdir -p /usr/local/include
> -    - sudo mkdir -p /usr/local/include/mtd
> -    - git clone https://github.com/sigma-star/mtd-utils
> -    - cd mtd-utils
> -    - git checkout -b tmp v2.0.0
> -    - ./autogen.sh
> -    - ./configure
> -    - make
> -    - sudo install -m 644 include/libubi.h /usr/local/include
> -    - sudo install -m 644 include/libmtd.h /usr/local/include
> -    - sudo install -m 644 include/mtd/ubi-media.h /usr/local/include/mtd
> -    - sudo install -m 644 *.a /usr/local/lib
> -    - cd ..
> -    - git clone https://github.com/sbabic/libubootenv.git
> -    - cd libubootenv
> -    - cmake .
> -    - make
> -    - sudo make install
> -    - cd ..
> -    - git clone https://github.com/siemens/efibootguard.git
> -    - cd efibootguard
> -    - autoreconf -fi
> -    - ./configure
> -    - make libebgenv.a
> -    - sudo install -m 644 libebgenv.a /usr/local/lib/libebgenv.a
> -    - sudo install -m 755 -d /usr/include/efibootguard
> -    - sudo install -m 644 include/ebgenv.h /usr/include/efibootguard/ebgenv.h
> -    - cd ..
> -    - sudo ldconfig
> +  - ./ci/setup.sh
> +  - ./ci/install-src-deps.sh
> +  - echo -n | openssl s_client -connect https://scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | $_SUDO tee -a /etc/ssl/certs/ca-
>   
>   script:
> -    - for i in configs/*;do echo $i;make `basename $i` && make || exit 1;make test || exit 1;done
> +  - ./ci/test-configs.sh
> diff --git a/ci/install-src-deps.sh b/ci/install-src-deps.sh
> new file mode 100755
> index 0000000..fea5e3a
> --- /dev/null
> +++ b/ci/install-src-deps.sh
> @@ -0,0 +1,59 @@
> +#!/bin/sh
> +# Copyright (c) Siemens AG, 2021
> +#
> +# Authors:
> +#  Michael Adler <michael.adler@siemens.com>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2.  See
> +# the COPYING file in the top-level directory.
> +#
> +# SPDX-License-Identifier:	GPL-2.0
> +set -eu
> +
> +_SUDO=sudo
> +if [ $(id -u) = 0 ]; then
> +    _SUDO=
> +fi
> +
> +install_mtd_utils() {
> +    $_SUDO mkdir -p /usr/local/lib
> +    $_SUDO mkdir -p /usr/local/include
> +    $_SUDO mkdir -p /usr/local/include/mtd
> +    git clone https://github.com/sigma-star/mtd-utils
> +    cd mtd-utils
> +    git checkout -b tmp v2.0.0
> +    ./autogen.sh
> +    ./configure
> +    make
> +    $_SUDO install -m 644 include/libubi.h /usr/local/include
> +    $_SUDO install -m 644 include/libmtd.h /usr/local/include
> +    $_SUDO install -m 644 include/mtd/ubi-media.h /usr/local/include/mtd
> +    $_SUDO install -m 644 *.a /usr/local/lib
> +    cd ..
> +}
> +
> +install_libubootenv() {
> +    git clone https://github.com/sbabic/libubootenv.git
> +    cd libubootenv
> +    cmake .
> +    make
> +    $_SUDO make install
> +    cd ..
> +}
> +
> +install_efibootguard() {
> +    git clone https://github.com/siemens/efibootguard.git
> +    cd efibootguard
> +    autoreconf -fi
> +    ./configure
> +    make libebgenv.a
> +    $_SUDO install -m 644 libebgenv.a /usr/local/lib/libebgenv.a
> +    $_SUDO install -m 755 -d /usr/include/efibootguard
> +    $_SUDO install -m 644 include/ebgenv.h /usr/include/efibootguard/ebgenv.h
> +    cd ..
> +}
> +
> +install_mtd_utils
> +install_libubootenv
> +install_efibootguard
> +$_SUDO ldconfig
> diff --git a/ci/setup.sh b/ci/setup.sh
> new file mode 100755
> index 0000000..2744732
> --- /dev/null
> +++ b/ci/setup.sh
> @@ -0,0 +1,55 @@
> +#!/bin/sh
> +# Copyright (c) Siemens AG, 2021
> +#
> +# Authors:
> +#  Michael Adler <michael.adler@siemens.com>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2.  See
> +# the COPYING file in the top-level directory.
> +#
> +# SPDX-License-Identifier:	GPL-2.0
> +set -eu
> +
> +_SUDO=sudo
> +if [ "$(id -u)" = 0 ]; then
> +    _SUDO=
> +fi
> +
> +# prevent tzdata from becoming interactive which causes the build to be stuck
> +export DEBIAN_FRONTEND=noninteractive
> +export TZ=Europe/London
> +
> +$_SUDO apt-get -qq update
> +$_SUDO apt-get install -y \
> +    build-essential \
> +    automake \
> +    cmake \
> +    libzmq3-dev \
> +    liblua5.2-dev \
> +    libconfig-dev \
> +    libarchive-dev \
> +    libjson-c-dev \
> +    zlib1g-dev \
> +    git \
> +    uuid \
> +    uuid-dev \
> +    liblzo2-dev \
> +    libsystemd-dev \
> +    libsystemd0 \
> +    check \
> +    librsync2 \
> +    librsync-dev \
> +    liburiparser-dev \
> +    doxygen \
> +    graphviz \
> +    autoconf-archive \
> +    linux-headers-generic \
> +    libmbedtls-dev \
> +    libcmocka-dev \
> +    libfdisk-dev \
> +    libwebsockets-dev \
> +    libgpiod-dev \
> +    libcurl4-openssl-dev \
> +    gawk
> +
> +$_SUDO ln -sf /usr/lib/x86_64-linux-gnu/pkgconfig/lua5.2.pc /usr/lib/x86_64-linux-gnu/pkgconfig/lua.pc
> diff --git a/ci/test-configs.sh b/ci/test-configs.sh
> new file mode 100755
> index 0000000..97578e4
> --- /dev/null
> +++ b/ci/test-configs.sh
> @@ -0,0 +1,18 @@
> +#!/bin/sh
> +# Copyright (c) Siemens AG, 2021
> +#
> +# Authors:
> +#  Michael Adler <michael.adler@siemens.com>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2.  See
> +# the COPYING file in the top-level directory.
> +#
> +# SPDX-License-Identifier:	GPL-2.0
> +set -eu
> +
> +for i in configs/*; do
> +    echo "*** Testing config: $i"
> +    make "$(basename $i)"
> +    make -j8
> +    make test
> +done
> 

I get an error ruinning on Travis:

https://travis-ci.org/github/sbabic/swupdate/builds/768561361

Could you check this, please ? Thanks !

Best regards,
Stefano Babic
diff mbox series

Patch

diff --git a/.travis.yml b/.travis.yml
index 008f8a4..7ccad7c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -24,66 +24,9 @@  addons:
     branch_pattern: coverity_scan
 
 before_install:
-    - sudo apt-get -qq update
-    - sudo apt-get install -y build-essential
-    - sudo apt-get install -y automake
-    - sudo apt-get install -y libzmq3-dev
-    - sudo apt-get install -y liblua5.2-dev
-    - sudo apt-get install -y libconfig-dev
-    - sudo apt-get install -y libarchive-dev
-    - sudo apt-get install -y libjson-c-dev
-    - sudo apt-get install -y zlib1g-dev
-    - sudo apt-get install -y git
-    - sudo apt-get install -y uuid
-    - sudo apt-get install -y uuid-dev
-    - sudo apt-get install -y liblzo2-dev
-    - sudo apt-get install -y libsystemd-dev
-    - sudo apt-get install -y libsystemd0
-    - sudo apt-get install -y check
-    - sudo apt-get install -y librsync2
-    - sudo apt-get install -y librsync-dev
-    - sudo apt-get install -y liburiparser-dev
-    - sudo apt-get install -y doxygen
-    - sudo apt-get install -y graphviz
-    - sudo apt-get install -y autoconf-archive
-    - sudo apt-get install -y linux-headers-$(uname -r)
-    - sudo apt-get install -y libmbedtls-dev
-    - sudo apt-get install -y libcmocka-dev
-    - sudo apt-get install -y libfdisk-dev
-    - sudo apt-get install -y libwebsockets-dev
-    - sudo apt-get install -y libgpiod-dev
-    - echo -n | openssl s_client -connect https://scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | sudo tee -a /etc/ssl/certs/ca-
-    - sudo ln -sf /usr/lib/x86_64-linux-gnu/pkgconfig/lua5.2.pc /usr/lib/x86_64-linux-gnu/pkgconfig/lua.pc
-    - sudo mkdir -p /usr/local/lib
-    - sudo mkdir -p /usr/local/include
-    - sudo mkdir -p /usr/local/include/mtd
-    - git clone https://github.com/sigma-star/mtd-utils
-    - cd mtd-utils
-    - git checkout -b tmp v2.0.0
-    - ./autogen.sh
-    - ./configure
-    - make
-    - sudo install -m 644 include/libubi.h /usr/local/include
-    - sudo install -m 644 include/libmtd.h /usr/local/include
-    - sudo install -m 644 include/mtd/ubi-media.h /usr/local/include/mtd
-    - sudo install -m 644 *.a /usr/local/lib
-    - cd ..
-    - git clone https://github.com/sbabic/libubootenv.git
-    - cd libubootenv
-    - cmake .
-    - make
-    - sudo make install
-    - cd ..
-    - git clone https://github.com/siemens/efibootguard.git
-    - cd efibootguard
-    - autoreconf -fi
-    - ./configure
-    - make libebgenv.a
-    - sudo install -m 644 libebgenv.a /usr/local/lib/libebgenv.a
-    - sudo install -m 755 -d /usr/include/efibootguard
-    - sudo install -m 644 include/ebgenv.h /usr/include/efibootguard/ebgenv.h
-    - cd ..
-    - sudo ldconfig
+  - ./ci/setup.sh
+  - ./ci/install-src-deps.sh
+  - echo -n | openssl s_client -connect https://scan.coverity.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' | $_SUDO tee -a /etc/ssl/certs/ca-
 
 script:
-    - for i in configs/*;do echo $i;make `basename $i` && make || exit 1;make test || exit 1;done
+  - ./ci/test-configs.sh
diff --git a/ci/install-src-deps.sh b/ci/install-src-deps.sh
new file mode 100755
index 0000000..fea5e3a
--- /dev/null
+++ b/ci/install-src-deps.sh
@@ -0,0 +1,59 @@ 
+#!/bin/sh
+# Copyright (c) Siemens AG, 2021
+#
+# Authors:
+#  Michael Adler <michael.adler@siemens.com>
+#
+# This work is licensed under the terms of the GNU GPL, version 2.  See
+# the COPYING file in the top-level directory.
+#
+# SPDX-License-Identifier:	GPL-2.0
+set -eu
+
+_SUDO=sudo
+if [ $(id -u) = 0 ]; then
+    _SUDO=
+fi
+
+install_mtd_utils() {
+    $_SUDO mkdir -p /usr/local/lib
+    $_SUDO mkdir -p /usr/local/include
+    $_SUDO mkdir -p /usr/local/include/mtd
+    git clone https://github.com/sigma-star/mtd-utils
+    cd mtd-utils
+    git checkout -b tmp v2.0.0
+    ./autogen.sh
+    ./configure
+    make
+    $_SUDO install -m 644 include/libubi.h /usr/local/include
+    $_SUDO install -m 644 include/libmtd.h /usr/local/include
+    $_SUDO install -m 644 include/mtd/ubi-media.h /usr/local/include/mtd
+    $_SUDO install -m 644 *.a /usr/local/lib
+    cd ..
+}
+
+install_libubootenv() {
+    git clone https://github.com/sbabic/libubootenv.git
+    cd libubootenv
+    cmake .
+    make
+    $_SUDO make install
+    cd ..
+}
+
+install_efibootguard() {
+    git clone https://github.com/siemens/efibootguard.git
+    cd efibootguard
+    autoreconf -fi
+    ./configure
+    make libebgenv.a
+    $_SUDO install -m 644 libebgenv.a /usr/local/lib/libebgenv.a
+    $_SUDO install -m 755 -d /usr/include/efibootguard
+    $_SUDO install -m 644 include/ebgenv.h /usr/include/efibootguard/ebgenv.h
+    cd ..
+}
+
+install_mtd_utils
+install_libubootenv
+install_efibootguard
+$_SUDO ldconfig
diff --git a/ci/setup.sh b/ci/setup.sh
new file mode 100755
index 0000000..2744732
--- /dev/null
+++ b/ci/setup.sh
@@ -0,0 +1,55 @@ 
+#!/bin/sh
+# Copyright (c) Siemens AG, 2021
+#
+# Authors:
+#  Michael Adler <michael.adler@siemens.com>
+#
+# This work is licensed under the terms of the GNU GPL, version 2.  See
+# the COPYING file in the top-level directory.
+#
+# SPDX-License-Identifier:	GPL-2.0
+set -eu
+
+_SUDO=sudo
+if [ "$(id -u)" = 0 ]; then
+    _SUDO=
+fi
+
+# prevent tzdata from becoming interactive which causes the build to be stuck
+export DEBIAN_FRONTEND=noninteractive
+export TZ=Europe/London
+
+$_SUDO apt-get -qq update
+$_SUDO apt-get install -y \
+    build-essential \
+    automake \
+    cmake \
+    libzmq3-dev \
+    liblua5.2-dev \
+    libconfig-dev \
+    libarchive-dev \
+    libjson-c-dev \
+    zlib1g-dev \
+    git \
+    uuid \
+    uuid-dev \
+    liblzo2-dev \
+    libsystemd-dev \
+    libsystemd0 \
+    check \
+    librsync2 \
+    librsync-dev \
+    liburiparser-dev \
+    doxygen \
+    graphviz \
+    autoconf-archive \
+    linux-headers-generic \
+    libmbedtls-dev \
+    libcmocka-dev \
+    libfdisk-dev \
+    libwebsockets-dev \
+    libgpiod-dev \
+    libcurl4-openssl-dev \
+    gawk
+
+$_SUDO ln -sf /usr/lib/x86_64-linux-gnu/pkgconfig/lua5.2.pc /usr/lib/x86_64-linux-gnu/pkgconfig/lua.pc
diff --git a/ci/test-configs.sh b/ci/test-configs.sh
new file mode 100755
index 0000000..97578e4
--- /dev/null
+++ b/ci/test-configs.sh
@@ -0,0 +1,18 @@ 
+#!/bin/sh
+# Copyright (c) Siemens AG, 2021
+#
+# Authors:
+#  Michael Adler <michael.adler@siemens.com>
+#
+# This work is licensed under the terms of the GNU GPL, version 2.  See
+# the COPYING file in the top-level directory.
+#
+# SPDX-License-Identifier:	GPL-2.0
+set -eu
+
+for i in configs/*; do
+    echo "*** Testing config: $i"
+    make "$(basename $i)"
+    make -j8
+    make test
+done