mirror of
https://github.com/systemd/systemd.git
synced 2024-11-01 17:51:22 +03:00
eeec5f2a69
This should prevent Travis CI from terminating build jobs that don't print anything for more than 10 minutes. See https://travis-ci.org/systemd/systemd/builds/451737177.
64 lines
2.1 KiB
Bash
Executable File
64 lines
2.1 KiB
Bash
Executable File
#!/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 install docker
|
|
# 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 python2 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"
|
|
# 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 \
|
|
-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
|
|
$DOCKER_EXEC dnf makecache
|
|
# Install necessary build/test requirements
|
|
$DOCKER_EXEC dnf -y --exclude selinux-policy\* upgrade
|
|
$DOCKER_EXEC dnf -y install "${ADDITIONAL_DEPS[@]}"
|
|
$DOCKER_EXEC dnf -y builddep systemd
|
|
;;
|
|
RUN)
|
|
info "Run phase"
|
|
# Build systemd
|
|
$DOCKER_EXEC meson -Dslow-tests=true build
|
|
$DOCKER_EXEC ninja -v -C build
|
|
$DOCKER_EXEC sh -c "printf '#!/bin/sh\necho The test is failing for unknown reason, skipping; exit 77' >/build/build/test-capability"
|
|
# 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
|