From: Frantisek Sumsal Date: Mon, 23 Dec 2019 19:54:08 +0000 (+0100) Subject: travis: wait for the container to fully boot up X-Git-Tag: v245-rc1~213 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=14157349db981273ba0c7555e249c7b2ad1dfbea;p=thirdparty%2Fsystemd.git travis: wait for the container to fully boot up This avoids nasty race conditions between dnf/apt-get and unfinished population of /tmp (among other things), as `docker exec` allows commands to run before the system is fully booted (i.e. initializing/starting state reported by `systemctl is-system-running`). --- diff --git a/travis-ci/managers/debian.sh b/travis-ci/managers/debian.sh index 95f34cf8fa4..6a6923fbc86 100755 --- a/travis-ci/managers/debian.sh +++ b/travis-ci/managers/debian.sh @@ -39,6 +39,10 @@ for phase in "${PHASES[@]}"; do -w /build --privileged=true --name $CONT_NAME \ -dit --net=host debian-with-systemd/latest /bin/systemd $DOCKER_EXEC bash -c "echo deb-src http://deb.debian.org/debian $DEBIAN_RELEASE main >>/etc/apt/sources.list" + # Wait for the container to properly boot up, otherwise we were + # running following apt-get commands during the initializing/starting + # (early/late bootup) phase, which caused nasty race conditions + $DOCKER_EXEC bash -c 'systemctl is-system-running --wait || :' $DOCKER_EXEC apt-get -y update $DOCKER_EXEC apt-get -y build-dep systemd $DOCKER_EXEC apt-get -y install "${ADDITIONAL_DEPS[@]}" diff --git a/travis-ci/managers/fedora.sh b/travis-ci/managers/fedora.sh index 6e81d14b334..e07b4938dfd 100755 --- a/travis-ci/managers/fedora.sh +++ b/travis-ci/managers/fedora.sh @@ -44,8 +44,10 @@ for phase in "${PHASES[@]}"; do $DOCKER_RUN -v $REPO_ROOT:/build:rw \ -w /build --privileged=true --name $CONT_NAME \ -dit --net=host fedora:$FEDORA_RELEASE /sbin/init - # Beautiful workaround for Fedora's version of Docker - sleep 1 + # Wait for the container to properly boot up, otherwise we were + # running following dnf commands during the initializing/starting + # (early/late bootup) phase, which caused nasty race conditions + $DOCKER_EXEC bash -c 'systemctl is-system-running --wait || :' $DOCKER_EXEC dnf makecache # Install necessary build/test requirements $DOCKER_EXEC dnf -y --exclude selinux-policy\* upgrade