mirror of
https://github.com/systemd/systemd.git
synced 2025-01-09 01:18:19 +03:00
ci: remove remaining Travis CI artifacts
This commit is contained in:
parent
86660d160b
commit
590ebd62f2
@ -9,7 +9,6 @@ System and Service Manager
|
|||||||
[![OSS-Fuzz Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/systemd.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#systemd)<br/>
|
[![OSS-Fuzz Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/systemd.svg)](https://oss-fuzz-build-logs.storage.googleapis.com/index.html#systemd)<br/>
|
||||||
[![CIFuzz](https://github.com/systemd/systemd/workflows/CIFuzz/badge.svg)](https://github.com/systemd/systemd/actions)<br/>
|
[![CIFuzz](https://github.com/systemd/systemd/workflows/CIFuzz/badge.svg)](https://github.com/systemd/systemd/actions)<br/>
|
||||||
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1369/badge)](https://bestpractices.coreinfrastructure.org/projects/1369)<br/>
|
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1369/badge)](https://bestpractices.coreinfrastructure.org/projects/1369)<br/>
|
||||||
[![Travis CI Build Status](https://travis-ci.org/systemd/systemd.svg?branch=master)](https://travis-ci.org/systemd/systemd)<br/>
|
|
||||||
[![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/systemd/systemd.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/systemd/systemd/context:cpp)<br/>
|
[![Language Grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/systemd/systemd.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/systemd/systemd/context:cpp)<br/>
|
||||||
[![CentOS CI - CentOS 7](https://jenkins-systemd.apps.ocp.ci.centos.org/buildStatus/icon?subject=CentOS%20CI%20-%20CentOS%207&job=upstream-centos7)](https://jenkins-systemd.apps.ocp.ci.centos.org/job/upstream-centos7/)<br/>
|
[![CentOS CI - CentOS 7](https://jenkins-systemd.apps.ocp.ci.centos.org/buildStatus/icon?subject=CentOS%20CI%20-%20CentOS%207&job=upstream-centos7)](https://jenkins-systemd.apps.ocp.ci.centos.org/job/upstream-centos7/)<br/>
|
||||||
[![CentOS CI - Arch](https://jenkins-systemd.apps.ocp.ci.centos.org/buildStatus/icon?subject=CentOS%20CI%20-%20Arch&job=upstream-vagrant-archlinux)](https://jenkins-systemd.apps.ocp.ci.centos.org/job/upstream-vagrant-archlinux/)<br/>
|
[![CentOS CI - Arch](https://jenkins-systemd.apps.ocp.ci.centos.org/buildStatus/icon?subject=CentOS%20CI%20-%20Arch&job=upstream-vagrant-archlinux)](https://jenkins-systemd.apps.ocp.ci.centos.org/job/upstream-vagrant-archlinux/)<br/>
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
*.a
|
|
||||||
*.cache
|
|
||||||
*.gch
|
|
||||||
*.log
|
|
||||||
*.o
|
|
||||||
*.plist
|
|
||||||
*.py[co]
|
|
||||||
*.stamp
|
|
||||||
*.swp
|
|
||||||
*.trs
|
|
||||||
*~
|
|
||||||
.config.args
|
|
||||||
.deps/
|
|
||||||
/*.gcda
|
|
||||||
/*.gcno
|
|
||||||
/GPATH
|
|
||||||
/GRTAGS
|
|
||||||
/GSYMS
|
|
||||||
/GTAGS
|
|
||||||
/TAGS
|
|
||||||
/ID
|
|
||||||
/build*
|
|
||||||
/coverage/
|
|
||||||
/install-tree
|
|
||||||
/mkosi.builddir/
|
|
||||||
/tags
|
|
||||||
image.raw
|
|
||||||
image.raw.cache-pre-dev
|
|
||||||
image.raw.cache-pre-inst
|
|
||||||
__pycache__/
|
|
@ -1,37 +0,0 @@
|
|||||||
## Create Dockerfile that builds container suitable for systemd build
|
|
||||||
## This container runs as non-root user by default
|
|
||||||
|
|
||||||
FROM fedora:27
|
|
||||||
|
|
||||||
# Demand the specification of non-root username
|
|
||||||
ARG DOCKER_USER
|
|
||||||
ARG DOCKER_USER_UID
|
|
||||||
ARG DOCKER_USER_GID
|
|
||||||
|
|
||||||
# Copy the requirements into the container at /tmp
|
|
||||||
COPY requirements.txt /tmp/
|
|
||||||
|
|
||||||
# Install the requirements
|
|
||||||
# RUN dnf -y update FIXME
|
|
||||||
RUN dnf -y install $(cat '/tmp/requirements.txt')
|
|
||||||
# clean step to prevent cache and metadata corruption
|
|
||||||
RUN dnf clean all
|
|
||||||
RUN dnf -y builddep systemd
|
|
||||||
|
|
||||||
# Add non-root user and chown the project dir
|
|
||||||
RUN groupadd -g $DOCKER_USER_GID $DOCKER_USER
|
|
||||||
RUN useradd --create-home --shell /bin/bash -u $DOCKER_USER_UID -g $DOCKER_USER_GID -G wheel $DOCKER_USER
|
|
||||||
ENV HOME /home/$DOCKER_USER
|
|
||||||
ENV PROJECTDIR $HOME/systemd
|
|
||||||
|
|
||||||
# Copy content to the project directory
|
|
||||||
COPY . $PROJECTDIR
|
|
||||||
|
|
||||||
# Greant user all permissions to the project dir
|
|
||||||
RUN chown -R $DOCKER_USER $PROJECTDIR
|
|
||||||
|
|
||||||
# Switch to noroot user by default
|
|
||||||
USER $DOCKER_USER
|
|
||||||
|
|
||||||
# Update workdir to user home dir
|
|
||||||
WORKDIR $PROJECTDIR
|
|
@ -1,98 +0,0 @@
|
|||||||
#!/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/debian.sh SETUP RUN CLEANUP
|
|
||||||
|
|
||||||
PHASES=(${@:-SETUP RUN RUN_ASAN_UBSAN CLEANUP})
|
|
||||||
DEBIAN_RELEASE="${DEBIAN_RELEASE:-testing}"
|
|
||||||
CONT_NAME="${CONT_NAME:-systemd-debian-$DEBIAN_RELEASE}"
|
|
||||||
DOCKER_EXEC="${DOCKER_EXEC:-docker exec -it $CONT_NAME}"
|
|
||||||
DOCKER_RUN="${DOCKER_RUN:-docker run}"
|
|
||||||
REPO_ROOT="${REPO_ROOT:-$PWD}"
|
|
||||||
ADDITIONAL_DEPS=(
|
|
||||||
clang
|
|
||||||
fdisk
|
|
||||||
libfdisk-dev
|
|
||||||
libfido2-dev
|
|
||||||
libp11-kit-dev
|
|
||||||
libpwquality-dev
|
|
||||||
libqrencode-dev
|
|
||||||
libssl-dev
|
|
||||||
libtss2-dev
|
|
||||||
libzstd-dev
|
|
||||||
perl
|
|
||||||
python3-libevdev
|
|
||||||
python3-pyparsing
|
|
||||||
zstd
|
|
||||||
)
|
|
||||||
|
|
||||||
function info() {
|
|
||||||
echo -e "\033[33;1m$1\033[0m"
|
|
||||||
}
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
source "$(dirname $0)/travis_wait.bash"
|
|
||||||
|
|
||||||
for phase in "${PHASES[@]}"; do
|
|
||||||
case $phase in
|
|
||||||
SETUP)
|
|
||||||
info "Setup phase"
|
|
||||||
info "Using Debian $DEBIAN_RELEASE"
|
|
||||||
printf "FROM debian:$DEBIAN_RELEASE\nRUN bash -c 'apt-get -y update && apt-get install -y systemd'\n" | docker build -t debian-with-systemd/latest -
|
|
||||||
info "Starting container $CONT_NAME"
|
|
||||||
$DOCKER_RUN -v $REPO_ROOT:/build:rw -e container=docker \
|
|
||||||
-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[@]}"
|
|
||||||
;;
|
|
||||||
RUN|RUN_GCC|RUN_CLANG)
|
|
||||||
if [[ "$phase" = "RUN_CLANG" ]]; then
|
|
||||||
ENV_VARS="-e CC=clang -e CXX=clang++"
|
|
||||||
fi
|
|
||||||
docker exec $ENV_VARS -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true -Dsplit-usr=true -Dman=true build
|
|
||||||
$DOCKER_EXEC ninja -v -C build
|
|
||||||
docker exec -e "TRAVIS=$TRAVIS" -it $CONT_NAME ninja -C build test
|
|
||||||
;;
|
|
||||||
RUN_ASAN_UBSAN|RUN_GCC_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN)
|
|
||||||
if [[ "$phase" = "RUN_CLANG_ASAN_UBSAN" ]]; then
|
|
||||||
ENV_VARS="-e CC=clang -e CXX=clang++"
|
|
||||||
# Build fuzzer regression tests only with clang (for now),
|
|
||||||
# see: https://github.com/systemd/systemd/pull/15886#issuecomment-632689604
|
|
||||||
# -Db_lundef=false: See https://github.com/mesonbuild/meson/issues/764
|
|
||||||
MESON_ARGS="-Db_lundef=false -Dfuzz-tests=true --optimization=1"
|
|
||||||
fi
|
|
||||||
docker exec $ENV_VARS -it $CONT_NAME meson --werror -Dtests=unsafe -Db_sanitize=address,undefined -Dsplit-usr=true $MESON_ARGS build
|
|
||||||
$DOCKER_EXEC ninja -v -C build
|
|
||||||
|
|
||||||
# Never remove halt_on_error from UBSAN_OPTIONS. See https://github.com/systemd/systemd/commit/2614d83aa06592aedb.
|
|
||||||
travis_wait docker exec --interactive=false \
|
|
||||||
-e UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1 \
|
|
||||||
-e ASAN_OPTIONS=strict_string_checks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1 \
|
|
||||||
-e "TRAVIS=$TRAVIS" \
|
|
||||||
-t $CONT_NAME \
|
|
||||||
meson test --timeout-multiplier=3 -C ./build/ --print-errorlogs
|
|
||||||
;;
|
|
||||||
CLEANUP)
|
|
||||||
info "Cleanup phase"
|
|
||||||
docker stop $CONT_NAME
|
|
||||||
docker rm -f $CONT_NAME
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo >&2 "Unknown phase '$phase'"
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
done
|
|
@ -1,121 +0,0 @@
|
|||||||
#!/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 RUN_ASAN_UBSAN CLEANUP})
|
|
||||||
FEDORA_RELEASE="${FEDORA_RELEASE:-rawhide}"
|
|
||||||
CONT_NAME="${CONT_NAME:-systemd-fedora-$FEDORA_RELEASE}"
|
|
||||||
DOCKER_EXEC="${DOCKER_EXEC:-docker exec -it $CONT_NAME}"
|
|
||||||
DOCKER_RUN="${DOCKER_RUN:-docker run}"
|
|
||||||
REPO_ROOT="${REPO_ROOT:-$PWD}"
|
|
||||||
ADDITIONAL_DEPS=(
|
|
||||||
clang
|
|
||||||
dnf-plugins-core
|
|
||||||
hostname
|
|
||||||
iputils
|
|
||||||
jq
|
|
||||||
libasan
|
|
||||||
libfdisk-devel
|
|
||||||
libfido2-devel
|
|
||||||
libpwquality-devel
|
|
||||||
libubsan
|
|
||||||
libzstd-devel
|
|
||||||
llvm
|
|
||||||
openssl-devel
|
|
||||||
p11-kit-devel
|
|
||||||
perl
|
|
||||||
python3-evdev
|
|
||||||
python3-pyparsing
|
|
||||||
tpm2-tss-devel
|
|
||||||
)
|
|
||||||
|
|
||||||
info() {
|
|
||||||
echo -e "\033[33;1m$1\033[0m"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Simple wrapper which retries given command up to five times
|
|
||||||
_retry() {
|
|
||||||
local EC=1
|
|
||||||
|
|
||||||
for i in {1..5}; do
|
|
||||||
if "$@"; then
|
|
||||||
EC=0
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
|
|
||||||
sleep $((i * 5))
|
|
||||||
done
|
|
||||||
|
|
||||||
return $EC
|
|
||||||
}
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
source "$(dirname $0)/travis_wait.bash"
|
|
||||||
|
|
||||||
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
|
|
||||||
printf "FROM fedora:$FEDORA_RELEASE\nRUN bash -c 'dnf install -y systemd'\n" | docker build -t fedora-with-systemd/latest -
|
|
||||||
info "Starting container $CONT_NAME"
|
|
||||||
$DOCKER_RUN -v $REPO_ROOT:/build:rw \
|
|
||||||
-w /build --privileged=true --name $CONT_NAME \
|
|
||||||
-dit --net=host fedora-with-systemd/latest /sbin/init
|
|
||||||
# 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 || :'
|
|
||||||
_retry $DOCKER_EXEC dnf makecache
|
|
||||||
# Install necessary build/test requirements
|
|
||||||
_retry $DOCKER_EXEC dnf -y --exclude selinux-policy\* upgrade
|
|
||||||
_retry $DOCKER_EXEC dnf -y install "${ADDITIONAL_DEPS[@]}"
|
|
||||||
_retry $DOCKER_EXEC dnf -y builddep systemd
|
|
||||||
;;
|
|
||||||
RUN)
|
|
||||||
info "Run phase"
|
|
||||||
# Build systemd
|
|
||||||
$DOCKER_EXEC meson --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true build
|
|
||||||
$DOCKER_EXEC ninja -v -C build
|
|
||||||
$DOCKER_EXEC ninja -C build test
|
|
||||||
;;
|
|
||||||
RUN_CLANG)
|
|
||||||
docker exec -e CC=clang -e CXX=clang++ -it $CONT_NAME meson --werror -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true -Dman=true build
|
|
||||||
$DOCKER_EXEC ninja -v -C build
|
|
||||||
$DOCKER_EXEC ninja -C build test
|
|
||||||
;;
|
|
||||||
RUN_ASAN|RUN_GCC_ASAN_UBSAN|RUN_CLANG_ASAN_UBSAN)
|
|
||||||
if [[ "$phase" = "RUN_CLANG_ASAN_UBSAN" ]]; then
|
|
||||||
ENV_VARS="-e CC=clang -e CXX=clang++"
|
|
||||||
MESON_ARGS="-Db_lundef=false" # See https://github.com/mesonbuild/meson/issues/764
|
|
||||||
fi
|
|
||||||
docker exec $ENV_VARS -it $CONT_NAME meson --werror -Dtests=unsafe -Db_sanitize=address,undefined $MESON_ARGS build
|
|
||||||
$DOCKER_EXEC ninja -v -C build
|
|
||||||
|
|
||||||
# Never remove halt_on_error from UBSAN_OPTIONS. See https://github.com/systemd/systemd/commit/2614d83aa06592aedb.
|
|
||||||
travis_wait docker exec --interactive=false \
|
|
||||||
-e UBSAN_OPTIONS=print_stacktrace=1:print_summary=1:halt_on_error=1 \
|
|
||||||
-e ASAN_OPTIONS=strict_string_checks=1:detect_stack_use_after_return=1:check_initialization_order=1:strict_init_order=1 \
|
|
||||||
-e "TRAVIS=$TRAVIS" \
|
|
||||||
-t $CONT_NAME \
|
|
||||||
meson test --timeout-multiplier=3 -C ./build/ --print-errorlogs
|
|
||||||
;;
|
|
||||||
CLEANUP)
|
|
||||||
info "Cleanup phase"
|
|
||||||
docker stop $CONT_NAME
|
|
||||||
docker rm -f $CONT_NAME
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
error "Unknown phase '$phase'"
|
|
||||||
exit 1
|
|
||||||
esac
|
|
||||||
done
|
|
@ -1,61 +0,0 @@
|
|||||||
# This was borrowed from https://github.com/travis-ci/travis-build/tree/master/lib/travis/build/bash
|
|
||||||
# to get around https://github.com/travis-ci/travis-ci/issues/9979. It should probably be removed
|
|
||||||
# as soon as Travis CI has started to provide an easy way to export the functions to bash scripts.
|
|
||||||
|
|
||||||
travis_jigger() {
|
|
||||||
local cmd_pid="${1}"
|
|
||||||
shift
|
|
||||||
local timeout="${1}"
|
|
||||||
shift
|
|
||||||
local count=0
|
|
||||||
|
|
||||||
echo -e "\\n"
|
|
||||||
|
|
||||||
while [[ "${count}" -lt "${timeout}" ]]; do
|
|
||||||
count="$((count + 1))"
|
|
||||||
echo -ne "Still running (${count} of ${timeout}): ${*}\\r"
|
|
||||||
sleep 60
|
|
||||||
done
|
|
||||||
|
|
||||||
echo -e "\\n${ANSI_RED}Timeout (${timeout} minutes) reached. Terminating \"${*}\"${ANSI_RESET}\\n"
|
|
||||||
kill -9 "${cmd_pid}"
|
|
||||||
}
|
|
||||||
|
|
||||||
travis_wait() {
|
|
||||||
local timeout="${1}"
|
|
||||||
|
|
||||||
if [[ "${timeout}" =~ ^[0-9]+$ ]]; then
|
|
||||||
shift
|
|
||||||
else
|
|
||||||
timeout=20
|
|
||||||
fi
|
|
||||||
|
|
||||||
local cmd=("${@}")
|
|
||||||
local log_file="travis_wait_${$}.log"
|
|
||||||
|
|
||||||
"${cmd[@]}" &>"${log_file}" &
|
|
||||||
local cmd_pid="${!}"
|
|
||||||
|
|
||||||
travis_jigger "${!}" "${timeout}" "${cmd[@]}" &
|
|
||||||
local jigger_pid="${!}"
|
|
||||||
local result
|
|
||||||
|
|
||||||
{
|
|
||||||
set +e
|
|
||||||
wait "${cmd_pid}" 2>/dev/null
|
|
||||||
result="${?}"
|
|
||||||
ps -p"${jigger_pid}" &>/dev/null && kill "${jigger_pid}"
|
|
||||||
set -e
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ "${result}" -eq 0 ]]; then
|
|
||||||
echo -e "\\n${ANSI_GREEN}The command ${cmd[*]} exited with ${result}.${ANSI_RESET}"
|
|
||||||
else
|
|
||||||
echo -e "\\n${ANSI_RED}The command ${cmd[*]} exited with ${result}.${ANSI_RESET}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo -e "\\n${ANSI_GREEN}Log:${ANSI_RESET}\\n"
|
|
||||||
cat "${log_file}"
|
|
||||||
|
|
||||||
return "${result}"
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
dnf-plugins-core
|
|
||||||
meson
|
|
||||||
ninja-build
|
|
||||||
perl
|
|
||||||
python
|
|
@ -1,13 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Check environment
|
|
||||||
[ -z "$TRAVIS_COMMIT" ] && echo "ERROR: TRAVIS_COMMIT must be set" && exit 1
|
|
||||||
|
|
||||||
# Build docker image
|
|
||||||
echo -e "\n\033[33;1mBuilding docker image: coverity-$TRAVIS_COMMIT.\033[0m"
|
|
||||||
|
|
||||||
docker build \
|
|
||||||
--build-arg DOCKER_USER=$USER \
|
|
||||||
--build-arg DOCKER_USER_UID=`id -u` \
|
|
||||||
--build-arg DOCKER_USER_GID=`id -g` \
|
|
||||||
--force-rm -t coverity-${TRAVIS_COMMIT} --pull=true .
|
|
Loading…
Reference in New Issue
Block a user