mirror of
https://github.com/systemd/systemd
synced 2024-10-15 12:34:37 +00:00
94 lines
4.8 KiB
YAML
94 lines
4.8 KiB
YAML
sudo: required
|
|
services:
|
|
- docker
|
|
|
|
env:
|
|
global:
|
|
- AUTHOR_EMAIL="$(git log -1 $TRAVIS_COMMIT --pretty=\"%aE\")"
|
|
- CI_TOOLS="$TRAVIS_BUILD_DIR/travis-ci/tools"
|
|
|
|
stages:
|
|
# Run Coverity periodically instead of for each commit/PR
|
|
- name: Coverity
|
|
if: type = cron
|
|
|
|
jobs:
|
|
include:
|
|
- stage: Build & test
|
|
name: Fedora Rawhide
|
|
language: bash
|
|
env:
|
|
- FEDORA_RELEASE="rawhide"
|
|
- CONT_NAME="systemd-fedora-$FEDORA_RELEASE"
|
|
- BUILD_REQS_FILE="$TRAVIS_BUILD_DIR/travis-ci/fedora-build.reqs"
|
|
- DOCKER_EXEC="docker exec -ti $CONT_NAME"
|
|
before_install:
|
|
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
|
|
- docker --version
|
|
install:
|
|
# Pull a Docker image and start a new container
|
|
- docker pull fedora:$FEDORA_RELEASE
|
|
- docker run -v $TRAVIS_BUILD_DIR:/build:rw
|
|
-v /var/lib/dbus/machine-id:/etc/machine-id:ro
|
|
-w /build --privileged=true --name $CONT_NAME
|
|
-dit --net=host fedora:$FEDORA_RELEASE /sbin/init
|
|
# Upgrade system and install necessary build/test requirements
|
|
- $DOCKER_EXEC dnf -y --refresh upgrade
|
|
- $DOCKER_EXEC dnf -y install $(cat $BUILD_REQS_FILE)
|
|
script:
|
|
- set -e
|
|
# Build systemd
|
|
- $DOCKER_EXEC meson build
|
|
- $DOCKER_EXEC ninja -C build
|
|
# Run 'make check'
|
|
- $DOCKER_EXEC ninja -C build test
|
|
- set +e
|
|
|
|
- stage: Coverity
|
|
language: bash
|
|
env:
|
|
- FEDORA_RELEASE="rawhide"
|
|
- CONT_NAME="coverity-fedora-$FEDORA_RELEASE"
|
|
- BUILD_REQS_FILE="$TRAVIS_BUILD_DIR/travis-ci/fedora-build.reqs"
|
|
- DOCKER_EXEC="docker exec -ti $CONT_NAME"
|
|
# Coverity env variables
|
|
- PLATFORM="$(uname)"
|
|
- TOOL_BASE="/var/tmp/coverity-scan-analysis"
|
|
- TOOL_ARCHIVE="/var/tmp/cov-analysis-$PLATFORM.tgz
|
|
- SCAN_URL="https://scan.coverity.com"
|
|
- UPLOAD_URL="https://scan.coverity.com/builds"
|
|
- COVERITY_SCAN_PROJECT_NAME="$TRAVIS_REPO_SLUG"
|
|
- COVERITY_SCAN_NOTIFICATION_EMAIL="${AUTHOR_EMAIL}"
|
|
- COVERITY_SCAN_BRANCH_PATTERN="$TRAVIS_BRANCH"
|
|
# Encrypted COVERITY_SCAN_TOKEN env variable (travis encrypt)
|
|
- secure: "UNQLspT89GYWuVKFqW5W5RyqqnYg5RvX20IrNraOddhpdV9nhKBtozrfmhGXDGZwfHGWHt6g7YROlD/NIMvDvThVJIEYvSQiXCoo2zRrwkl2siET5MjPfRG8numiLq0KX47KGmyBJISJZCgDUdNGqqGwgf7AhDN78I3XtgqjFT1z0mGl8n0wiFpKPi7i3nECvF4Mk7xCCHqwByaq0z5G9NkVlOvP1EyCxwv3B6I5Umfch7ibp7iH44YnVXILK+yEry5dMuctYwYkDouR80ChEPQQ5fhhpO4++HJmFuSpfMTeCHpucAd2xwSUijejYeN/GNQ177GxSSk/8hRBGcuSK8T/WJ+KiuJPhZObV8mw+a6+qdQssWY4F9jya5ZKbZ/yTbxjtQ0m4AgtL28P9bEze8pLh16zFMX+hIEuoFSNmJqmtNttfbD5TKyYVZml59s9wvhlvMnlNpRSQva88OAOjXtiA41g+XtTxxpfW9mgd7HYhzSBs1efNiK7PfkANgve7KIYMAmCAqasgb1IIAyX7stOlJH06QOFXNH55PmJLkkKyL3SMQzgryMDWegU+XbS8t43r0x14WLuE7sc9JtnOr/G8hthFaMRp8xLy9aCBwyEIkEsyWa50VMoZDa3Spdb4r1CKBwcGdCbyE4rCehwEIznbfrsSovhwiUds7bbhBU="
|
|
before_install:
|
|
- sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
|
|
- docker --version
|
|
install:
|
|
# Install Coverity on the host
|
|
- $CI_TOOLS/get-coverity.sh
|
|
# Export necessary env variables for Coverity
|
|
- env | grep -E "TRAVIS|COV|TOOL|URL" > .cov-env
|
|
# Pull a Docker image and start a new container
|
|
- docker pull fedora:$FEDORA_RELEASE
|
|
- docker run -v $TRAVIS_BUILD_DIR:/build:rw
|
|
-v /var/lib/dbus/machine-id:/etc/machine-id:ro
|
|
-v $TOOL_BASE:$TOOL_BASE:rw
|
|
-w /build --privileged=true --name $CONT_NAME
|
|
--env-file .cov-env
|
|
-dit --net=host fedora:$FEDORA_RELEASE /sbin/init
|
|
# Upgrade system and install necessary build/test requirements
|
|
- $DOCKER_EXEC dnf -y --refresh upgrade
|
|
- $DOCKER_EXEC dnf -y install $(cat $BUILD_REQS_FILE)
|
|
script:
|
|
- set -e
|
|
# Preconfigure with meson to prevent Coverity from capturing meson metadata
|
|
# Set compiler flag to prevent emit failure
|
|
- $DOCKER_EXEC sh -c "CFLAGS='-D_Float128=long\ double -D_Float64=double -D_Float64x=long\ double -D_Float32=float -D_Float32x=double' meson cov-build -Dman=false"
|
|
# Run Coverity
|
|
- $DOCKER_EXEC tools/coverity.sh build
|
|
- $DOCKER_EXEC tools/coverity.sh upload
|
|
|
|
- set +e
|