diff options
author | Frantisek Sumsal <frantisek@sumsal.cz> | 2018-11-06 09:04:10 +0100 |
---|---|---|
committer | Frantisek Sumsal <frantisek@sumsal.cz> | 2018-11-06 15:56:52 +0100 |
commit | a9145fc488bdedccef095a4784a0364057d6233e (patch) | |
tree | 0e0bb86c69a518c09910075ca4bf5346cb330859 /travis-ci | |
parent | 3bbdc2f9d5b5afae3ce8fff54e853d4fc6ac54a9 (diff) | |
download | systemd-a9145fc488bdedccef095a4784a0364057d6233e.tar.gz |
travis: move Docker setup to a separate script
This should make debugging somewhat easier
Diffstat (limited to 'travis-ci')
-rw-r--r-- | travis-ci/fedora-build.reqs | 44 | ||||
-rwxr-xr-x | travis-ci/managers/fedora.sh | 65 |
2 files changed, 65 insertions, 44 deletions
diff --git a/travis-ci/fedora-build.reqs b/travis-ci/fedora-build.reqs deleted file mode 100644 index 794bb253d1..0000000000 --- a/travis-ci/fedora-build.reqs +++ /dev/null @@ -1,44 +0,0 @@ - gcc - gcc-c++ - libcap-devel - libmount-devel - pam-devel - libselinux-devel - audit-libs-devel - cryptsetup-devel - dbus-devel - libacl-devel - gobject-introspection-devel - libblkid-devel - xz-devel - xz - lz4-devel - lz4 - bzip2-devel - libidn2-devel - libcurl-devel - kmod-devel - elfutils-devel - libgcrypt-devel - libgpg-error-devel - gnutls-devel - qrencode-devel - libmicrohttpd-devel - libxkbcommon-devel - iptables-devel - libxslt - docbook-style-xsl - pkgconfig - gperf - gawk - tree - python3-devel - python3-lxml - firewalld-filesystem - gnu-efi gnu-efi-devel - libseccomp-devel - git - meson - gettext - hostname - python2 diff --git a/travis-ci/managers/fedora.sh b/travis-ci/managers/fedora.sh new file mode 100755 index 0000000000..1c8d38fcfb --- /dev/null +++ b/travis-ci/managers/fedora.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +# Run this script from the root of the systemd's git repository +# or set REPO_ROOT to a correct path. +# +# Example execution on Fedora: +# dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo +# dnf install -y docker-ce +# systemctl start docker +# export CONT_NAME="my-fancy-container" +# travis-ci/managers/fedora.sh SETUP RUN CLEANUP + +PHASES=(${@:-SETUP RUN CLEANUP}) +FEDORA_RELEASE="${FEDORA_RELEASE:-rawhide}" +CONT_NAME="${CONT_NAME:-fedora-$FEDORA_RELEASE-$RANDOM}" +DOCKER_EXEC="${DOCKER_EXEC:-docker exec -it $CONT_NAME}" +DOCKER_RUN="${DOCKER_RUN:-docker run}" +REPO_ROOT="${REPO_ROOT:-$PWD}" +ADDITIONAL_DEPS=(dnf-plugins-core iputils hostname libasan) + +function info() { + echo -e "\033[33;1m$1\033[0m" +} + +set -e + +for phase in "${PHASES[@]}"; do + case $phase in + SETUP) + info "Setup phase" + info "Using Fedora $FEDORA_RELEASE" + MACHINE_ID="/etc/machine-id" + if [ ! -f $MACHINE_ID ]; then + MACHINE_ID="/var/lib/dbus/machine-id" + fi + # Pull a Docker image and start a new container + docker pull fedora:$FEDORA_RELEASE + info "Starting container $CONT_NAME" + $DOCKER_RUN -v $REPO_ROOT:/build:rw \ + -v $MACHINE_ID:/etc/machine-id:ro \ + -w /build --privileged=true --name $CONT_NAME \ + -dit --net=host fedora:$FEDORA_RELEASE /sbin/init + $DOCKER_EXEC dnf makecache + # Install necessary build/test requirements + $DOCKER_EXEC dnf -y install "${ADDITIONAL_DEPS[@]}" + $DOCKER_EXEC dnf -y builddep systemd + ;; + RUN) + info "Run phase" + # Build systemd + $DOCKER_EXEC meson build + $DOCKER_EXEC ninja -C build + # Run 'make check' + $DOCKER_EXEC ninja -C build test + ;; + CLEANUP) + info "Cleanup phase" + docker stop $CONT_NAME + docker rm -f $CONT_NAME + ;; + *) + echo >&2 "Unknown phase '$phase'" + exit 1 + esac +done |