summaryrefslogtreecommitdiff
path: root/.gitlab-ci
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2020-11-10 09:11:53 +0100
committerThomas Haller <thaller@redhat.com>2020-11-10 13:51:29 +0100
commita5d92d78c628e8c5771c57f7818013146a05ae96 (patch)
treed7fa8618ffd979bec4633db24939c9fbc03ec6d0 /.gitlab-ci
parentd6cbbbcad3701627a15bc5a8b15f16bb8be64347 (diff)
gitlab-ci: cleanup ".gitlab-ci/{build,fedora-install,debian-install}.sh"
Now that the individual steps are no longer in .gitlab.yml but we run a full shell script, clean it up to be better readable. Also, we need to fail the script when any command fails.
Diffstat (limited to '.gitlab-ci')
-rwxr-xr-x.gitlab-ci/build.sh57
-rwxr-xr-x.gitlab-ci/debian-install.sh33
-rwxr-xr-x.gitlab-ci/fedora-install.sh59
3 files changed, 104 insertions, 45 deletions
diff --git a/.gitlab-ci/build.sh b/.gitlab-ci/build.sh
index 5f8906ec57..214fb83435 100755
--- a/.gitlab-ci/build.sh
+++ b/.gitlab-ci/build.sh
@@ -1,19 +1,42 @@
#!/bin/bash
-date '+%Y%m%d-%H%M%S'; uname -a
-date '+%Y%m%d-%H%M%S'; locale -a
-date '+%Y%m%d-%H%M%S'; env
-date '+%Y%m%d-%H%M%S'; meson --version
-date '+%Y%m%d-%H%M%S'; ! which dpkg || dpkg -l
-date '+%Y%m%d-%H%M%S'; ! which yum || yum list installed
-date '+%Y%m%d-%H%M%S'; git clean -fdx ; BUILD_TYPE=autotools CC=gcc WITH_DOCS=1 WITH_VALGRIND=1 contrib/scripts/nm-ci-run.sh
-date '+%Y%m%d-%H%M%S'; rm -rf /tmp/nm-docs-html; mv build/INST/share/gtk-doc/html /tmp/nm-docs-html
-date '+%Y%m%d-%H%M%S'; git clean -fdx ; BUILD_TYPE=meson CC=gcc WITH_DOCS=1 WITH_VALGRIND=1 contrib/scripts/nm-ci-run.sh
-date '+%Y%m%d-%H%M%S'; git clean -fdx ; BUILD_TYPE=autotools CC=clang WITH_DOCS=0 contrib/scripts/nm-ci-run.sh
-date '+%Y%m%d-%H%M%S'; git clean -fdx ; BUILD_TYPE=meson CC=clang WITH_DOCS=0 contrib/scripts/nm-ci-run.sh
-date '+%Y%m%d-%H%M%S'; git clean -fdx ; ! grep -q '^NAME=.*\(Fedora\|CentOS\)' /etc/os-release || ./contrib/fedora/rpm/build_clean.sh -g -w crypto_gnutls -w debug -w iwd -w test -W meson
-date '+%Y%m%d-%H%M%S'; git clean -fdx ; ! grep -q '^NAME=.*\(Fedora\)' /etc/os-release || ./contrib/fedora/rpm/build_clean.sh -g -w crypto_gnutls -w debug -w iwd -w test -w meson
-date '+%Y%m%d-%H%M%S'; git clean -fdx ; test "$NM_BUILD_TARBALL" != 1 || ( SIGN_SOURCE=0 ./contrib/fedora/rpm/build_clean.sh -r && mv ./NetworkManager-1*.tar.xz /tmp/ && mv ./contrib/fedora/rpm/latest/SRPMS/NetworkManager-1*.src.rpm /tmp/ )
-date '+%Y%m%d-%H%M%S'; git clean -fdx
-date '+%Y%m%d-%H%M%S'; mv /tmp/nm-docs-html ./docs-html
-date '+%Y%m%d-%H%M%S'; test "$NM_BUILD_TARBALL" != 1 || mv /tmp/NetworkManager-1*.tar.xz /tmp/NetworkManager-1*.src.rpm ./
+set -ex
+
+IS_FEDORA=0
+IS_CENTOS=0
+grep -q '^NAME=.*\(CentOS\)' /etc/os-release && IS_CENTOS=1
+grep -q '^NAME=.*\(Fedora\)' /etc/os-release && IS_FEDORA=1
+
+do_clean() {
+ git clean -fdx
+}
+
+uname -a
+locale -a
+env
+meson --version
+
+! which dpkg || dpkg -l
+! which yum || yum list installed
+
+do_clean; BUILD_TYPE=autotools CC=gcc WITH_DOCS=1 WITH_VALGRIND=1 contrib/scripts/nm-ci-run.sh
+rm -rf /tmp/nm-docs-html;
+mv build/INST/share/gtk-doc/html /tmp/nm-docs-html
+do_clean; BUILD_TYPE=meson CC=gcc WITH_DOCS=1 WITH_VALGRIND=1 contrib/scripts/nm-ci-run.sh
+do_clean; BUILD_TYPE=autotools CC=clang WITH_DOCS=0 contrib/scripts/nm-ci-run.sh
+do_clean; BUILD_TYPE=meson CC=clang WITH_DOCS=0 contrib/scripts/nm-ci-run.sh
+
+do_clean; test $IS_FEDORA = 1 -o $IS_CENTOS = 1 && ./contrib/fedora/rpm/build_clean.sh -g -w crypto_gnutls -w debug -w iwd -w test -W meson
+do_clean; test $IS_FEDORA = 1 && ./contrib/fedora/rpm/build_clean.sh -g -w crypto_gnutls -w debug -w iwd -w test -w meson
+
+if [ "$NM_BUILD_TARBALL" = 1 ]; then
+ do_clean
+ SIGN_SOURCE=0 ./contrib/fedora/rpm/build_clean.sh -r
+ mv ./NetworkManager-1*.tar.xz /tmp/
+ mv ./contrib/fedora/rpm/latest/SRPMS/NetworkManager-1*.src.rpm /tmp/
+ do_clean
+ mv /tmp/nm-docs-html ./docs-html
+ mv /tmp/NetworkManager-1*.tar.xz /tmp/NetworkManager-1*.src.rpm ./
+fi
+
+echo "BUILD SUCCESSFUL!!"
diff --git a/.gitlab-ci/debian-install.sh b/.gitlab-ci/debian-install.sh
index ee7f862e03..575b127e0c 100755
--- a/.gitlab-ci/debian-install.sh
+++ b/.gitlab-ci/debian-install.sh
@@ -1,14 +1,29 @@
#!/bin/bash
-date '+%Y%m%d-%H%M%S'; DEBIAN_FRONTEND=noninteractive apt-get update
-date '+%Y%m%d-%H%M%S'; DEBIAN_FRONTEND=noninteractive NM_INSTALL="apt-get -qq install -y" ./contrib/debian/REQUIRED_PACKAGES
-date '+%Y%m%d-%H%M%S'; dbus-uuidgen --ensure
-date '+%Y%m%d-%H%M%S'; sed -i 's/^# \(pl_PL.UTF-8 .*\)$/\1/p' /etc/locale.gen ; true
-date '+%Y%m%d-%H%M%S'; locale-gen pl_PL.UTF-8
-date '+%Y%m%d-%H%M%S'; grep -q "VERSION=.16.04.[0-9]\+ LTS" /etc/os-release && pip3 install meson==0.53.2
-date '+%Y%m%d-%H%M%S'; grep -q "VERSION=.16.04.[0-9]\+ LTS" /etc/os-release || pip3 install meson
-date '+%Y%m%d-%H%M%S'; contrib/scripts/nm-ci-install-valgrind-in-ubuntu1604.sh
+set -ex
+
+IS_UBUNTU_1604=0
+grep -q '^VERSION=.16.04.[0-9]\+ LTS' /etc/os-release && IS_UBUNTU_1604=1
+
+
+DEBIAN_FRONTEND=noninteractive apt-get update
+DEBIAN_FRONTEND=noninteractive NM_INSTALL="apt-get -qq install -y" ./contrib/debian/REQUIRED_PACKAGES
+
+dbus-uuidgen --ensure
+
+sed -i 's/^# \(pl_PL.UTF-8 .*\)$/\1/p' /etc/locale.gen || true
+locale-gen pl_PL.UTF-8
+
+if [ $IS_UBUNTU_1604 = 1 ]; then
+ pip3 install meson==0.53.2
+ contrib/scripts/nm-ci-install-valgrind-in-ubuntu1604.sh
+else
+ pip3 install meson
+fi
# iproute2 5.2.0 on debian:sid causes our unit tests to fail.
# Downgrade to a working version. See https://www.spinics.net/lists/netdev/msg584916.html
-date '+%Y%m%d-%H%M%S'; ! ( dpkg -s iproute2 | grep -q '^Version[:] 5.2.0-1\(ubuntu1\)\?$' ) || (curl 'http://ftp.debian.org/debian/pool/main/i/iproute2/iproute2_4.20.0-2_amd64.deb' --output /tmp/iproute2_4.20.0-2_amd64.deb && dpkg -i /tmp/iproute2_4.20.0-2_amd64.deb)
+if dpkg -s iproute2 | grep -q '^Version[:] 5.2.0-1\(ubuntu1\)\?$' ; then
+ curl 'http://ftp.debian.org/debian/pool/main/i/iproute2/iproute2_4.20.0-2_amd64.deb' --output /tmp/iproute2_4.20.0-2_amd64.deb
+ dpkg -i /tmp/iproute2_4.20.0-2_amd64.deb
+fi
diff --git a/.gitlab-ci/fedora-install.sh b/.gitlab-ci/fedora-install.sh
index 9c8258e5e5..d48fd397a6 100755
--- a/.gitlab-ci/fedora-install.sh
+++ b/.gitlab-ci/fedora-install.sh
@@ -1,27 +1,48 @@
#!/bin/bash
-date '+%Y%m%d-%H%M%S'; ! ( grep -q '^NAME=.*\(CentOS\)' /etc/os-release && grep -q '^VERSION_ID=.*\<7\>' /etc/os-release ) || yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
-date '+%Y%m%d-%H%M%S'; ! ( grep -q '^NAME=.*\(CentOS\)' /etc/os-release && grep -q '^VERSION_ID=.*\<7\>' /etc/os-release ) || yum install -y glibc-common
-date '+%Y%m%d-%H%M%S'; ! ( grep -q '^NAME=.*\(CentOS\)' /etc/os-release && grep -q '^VERSION_ID=.*\<7\>' /etc/os-release ) || localedef -c -i pl_PL -f UTF-8 pl_PL.UTF-8 && locale -a
-date '+%Y%m%d-%H%M%S'; ! ( grep -q '^NAME=.*\(CentOS\)' /etc/os-release && grep -q '^VERSION_ID=.*\<7\>' /etc/os-release ) || yum install -y python36-dbus python36-gobject-base
-
-date '+%Y%m%d-%H%M%S'; ! ( grep -q '^NAME=.*\(CentOS\)' /etc/os-release && grep -q '^VERSION_ID=.*\<8\>' /etc/os-release ) || dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
-date '+%Y%m%d-%H%M%S'; ! ( grep -q '^NAME=.*\(CentOS\)' /etc/os-release && grep -q '^VERSION_ID=.*\<8\>' /etc/os-release ) || dnf install -y 'dnf-command(config-manager)'
-date '+%Y%m%d-%H%M%S'; ! ( grep -q '^NAME=.*\(CentOS\)' /etc/os-release && grep -q '^VERSION_ID=.*\<8\>' /etc/os-release ) || dnf config-manager --set-enabled PowerTools
-date '+%Y%m%d-%H%M%S'; ! ( grep -q '^NAME=.*\(CentOS\)' /etc/os-release && grep -q '^VERSION_ID=.*\<8\>' /etc/os-release ) || curl https://copr.fedorainfracloud.org/coprs/nmstate/nm-build-deps/repo/epel-8/nmstate-nm-build-deps-epel-8.repo > /etc/yum.repos.d/nmstate-nm-build-deps-epel-8.repo
-
-date '+%Y%m%d-%H%M%S'; NM_NO_EXTRA=1 NM_INSTALL="yum install -y" ./contrib/fedora/REQUIRED_PACKAGES
-date '+%Y%m%d-%H%M%S'; yum install -y glibc-langpack-pl ccache clang which
+set -ex
+
+IS_FEDORA=0
+IS_CENTOS=0
+IS_CENTOS_7=0
+grep -q '^NAME=.*\(CentOS\)' /etc/os-release && IS_CENTOS=1
+grep -q '^NAME=.*\(Fedora\)' /etc/os-release && IS_FEDORA=1
+if [ $IS_CENTOS = 1 ]; then
+ grep -q '^VERSION_ID=.*\<7\>' /etc/os-release && IS_CENTOS_7=1
+fi
+
+if [ $IS_CENTOS = 1 ]; then
+ if [ $IS_CENTOS_7 = 1 ]; then
+ yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
+ yum install -y glibc-common
+ localedef -c -i pl_PL -f UTF-8 pl_PL.UTF-8
+ locale -a
+ yum install -y python36-dbus python36-gobject-base
+ else
+ dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
+ dnf install -y 'dnf-command(config-manager)'
+ dnf config-manager --set-enabled PowerTools
+ curl https://copr.fedorainfracloud.org/coprs/nmstate/nm-build-deps/repo/epel-8/nmstate-nm-build-deps-epel-8.repo > /etc/yum.repos.d/nmstate-nm-build-deps-epel-8.repo
+ fi
+fi
+
+
+NM_NO_EXTRA=1 NM_INSTALL="yum install -y" ./contrib/fedora/REQUIRED_PACKAGES
+yum install -y glibc-langpack-pl ccache clang which
# containers have "tsflags=nodocs" in /etc/dnf/dnf.conf. We need /usr/shared/gtk-doc/html
# to generate proper documentation.
-date '+%Y%m%d-%H%M%S'; yum reinstall -y --setopt='tsflags=' glib2-doc
-
-date '+%Y%m%d-%H%M%S'; ! which dnf || dnf install -y python3-dnf-plugins-core
-date '+%Y%m%d-%H%M%S'; ! which dnf || dnf debuginfo-install -y glib2
-date '+%Y%m%d-%H%M%S'; which dnf || debuginfo-install -y glib2
+yum reinstall -y --setopt='tsflags=' glib2-doc
-date '+%Y%m%d-%H%M%S'; contrib/scripts/nm-ci-patch-gtkdoc.sh || true
+if which dnf &>/dev/null; then
+ dnf install -y python3-dnf-plugins-core
+ dnf debuginfo-install -y glib2
+else
+ debuginfo-install -y glib2
+fi
-date '+%Y%m%d-%H%M%S'; test -x /usr/bin/ninja || ! test -x /usr/bin/ninja-build || ln -s /usr/bin/ninja-build /usr/bin/ninja
+contrib/scripts/nm-ci-patch-gtkdoc.sh || true
+if [ -x /usr/bin/ninja ] && ! [ -x /usr/bin/ninja-build ]; then
+ ln -s /usr/bin/ninja-build /usr/bin/ninja
+fi