| sudo: required |
| dist: xenial |
| services: |
| - docker |
| |
| env: |
| global: |
| - AUTHOR_EMAIL="$(git log -1 $TRAVIS_COMMIT --pretty=\"%aE\")" |
| - CI_MANAGERS="$TRAVIS_BUILD_DIR/travis-ci/managers" |
| - CI_TOOLS="$TRAVIS_BUILD_DIR/travis-ci/tools" |
| - REPO_ROOT="$TRAVIS_BUILD_DIR" |
| |
| stages: |
| - name: Build & test |
| if: type != cron |
| |
| - name: Fuzzit-Fuzzing |
| if: type = cron |
| |
| - name: Fuzzit-Sanity |
| if: type != cron |
| |
| # Run Coverity periodically instead of for each commit/PR |
| - name: Coverity |
| if: type = cron |
| |
| jobs: |
| include: |
| - stage: Build & test |
| name: Debian Testing |
| language: bash |
| env: |
| - DEBIAN_RELEASE="testing" |
| - CONT_NAME="systemd-debian-$DEBIAN_RELEASE" |
| - DOCKER_EXEC="docker exec -ti $CONT_NAME" |
| before_install: |
| - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce |
| - docker --version |
| install: |
| - $CI_MANAGERS/debian.sh SETUP |
| script: |
| - set -e |
| # Build systemd |
| - $CI_MANAGERS/debian.sh RUN |
| - set +e |
| after_script: |
| - $CI_MANAGERS/debian.sh CLEANUP |
| |
| - name: Debian Testing (ASan+UBSan) |
| language: bash |
| env: |
| - DEBIAN_RELEASE="testing" |
| - CONT_NAME="systemd-debian-$DEBIAN_RELEASE" |
| - DOCKER_EXEC="docker exec -ti $CONT_NAME" |
| before_install: |
| - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce |
| - docker --version |
| install: |
| - $CI_MANAGERS/debian.sh SETUP |
| script: |
| - set -e |
| - $CI_MANAGERS/debian.sh RUN_ASAN |
| - set +e |
| after_script: |
| - $CI_MANAGERS/debian.sh CLEANUP |
| |
| - name: Debian Testing (clang) |
| language: bash |
| env: |
| - DEBIAN_RELEASE="testing" |
| - CONT_NAME="systemd-debian-$DEBIAN_RELEASE" |
| - DOCKER_EXEC="docker exec -ti $CONT_NAME" |
| before_install: |
| - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce |
| - docker --version |
| install: |
| - $CI_MANAGERS/debian.sh SETUP |
| script: |
| - set -e |
| - $CI_MANAGERS/debian.sh RUN_CLANG |
| - set +e |
| after_script: |
| - $CI_MANAGERS/debian.sh CLEANUP |
| |
| - name: Debian Testing (clang ASan+UBSan) |
| language: bash |
| env: |
| - DEBIAN_RELEASE="testing" |
| - CONT_NAME="systemd-debian-$DEBIAN_RELEASE" |
| - DOCKER_EXEC="docker exec -ti $CONT_NAME" |
| before_install: |
| - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce |
| - docker --version |
| install: |
| - $CI_MANAGERS/debian.sh SETUP |
| script: |
| - set -e |
| - $CI_MANAGERS/debian.sh RUN_CLANG_ASAN |
| - set +e |
| after_script: |
| - $CI_MANAGERS/debian.sh CLEANUP |
| |
| - stage: Fuzzit-Sanity |
| name: Continuous Fuzzing Sanity via Fuzzit (sanity) |
| language: bash |
| script: |
| - set -e |
| - $CI_MANAGERS/fuzzit.sh sanity |
| - set +e |
| |
| - stage: Fuzzit-Fuzzing |
| name: Continuous Fuzzing Sanity via Fuzzit (fuzzing daily) |
| language: bash |
| script: |
| - set -e |
| - $CI_MANAGERS/fuzzit.sh fuzzing |
| - set +e |
| |
| - stage: Coverity |
| language: bash |
| env: |
| - FEDORA_RELEASE="latest" |
| - CONT_NAME="coverity-fedora-$FEDORA_RELEASE" |
| - DOCKER_EXEC="docker exec -ti $CONT_NAME" |
| - TOOL_BASE="/var/tmp/coverity-scan-analysis" |
| - DOCKER_RUN="docker run -v $TOOL_BASE:$TOOL_BASE:rw --env-file .cov-env" |
| # Coverity env variables |
| - PLATFORM="$(uname)" |
| - 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 |
| # Generated using `travis encrypt -r systemd/systemd COVERITY_SCAN_TOKEN=xxxx` |
| - secure: "jKSz+Y1Mv8xMpQHh7g5lzW7E6HQGndFz/vKDJQ1CVShwFoyjV3Zu+MFS3UYKlh1236zL0Z4dvsYFx/b3Hq8nxZWCrWeZs2NdXgy/wh8LZhxwzcGYigp3sIA/cYdP5rDjFJO0MasNkl25/rml8+eZWz+8/xQic98UQHjSco/EOWtssoRcg0J0c4eDM7bGLfIQWE73NNY1Q1UtWjKmx1kekVrM8dPmHXJ9aERka7bmcbJAcKd6vabs6DQ5AfWccUPIn/EsRYqIJTRxJrFYU6XizANZ1a7Vwk/DWHZUEn2msxcZw5BbAMDTMx0TbfrNkKSHMHuvQUCu6KCBAq414i+LgkMfmQ2SWwKiIUsud1kxXX3ZPl9bxDv1HkvVdcniC/EM7lNEEVwm4meOnjuhI2lhOyOjmP3FTSlMHGP7xlK8DS2k9fqL58vn0BaSjwWgd+2+HuL2+nJmxcK1eLGzKqaostFxrk2Xs2vPZkUdV2nWY/asUrcWHml6YlWDn2eP83pfwxHYsMiEHY/rTKvxeVY+iirO/AphoO+eaYu7LvjKZU1Yx5Z4u/SnGWAiCH0yhMis0bWmgi7SCbw+sDd2uya+aoiLIGiB2ChW7hXHXCue/dif6/gLU7b+L8R00pQwnWdvKUPoIJCmZJYCluTeib4jpW+EmARB2+nR8wms2K9FGKM=" |
| 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 |
| - $CI_MANAGERS/fedora.sh SETUP |
| script: |
| - set -e |
| # Preconfigure with meson to prevent Coverity from capturing meson metadata |
| - $DOCKER_EXEC meson cov-build -Dman=false |
| # Run Coverity |
| - $DOCKER_EXEC tools/coverity.sh build |
| - $DOCKER_EXEC tools/coverity.sh upload |
| |
| - set +e |
| after_script: |
| - $CI_MANAGERS/fedora.sh CLEANUP |