]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - .travis.yml
dlfcn-util: add dlsym_many_and_warn() helper
[thirdparty/systemd.git] / .travis.yml
index ba20097fdf69dc0011e06ffbe0275192f8ddef17..50f8e6a230b5104870da0f098f31c4dbd2d086d3 100644 (file)
-sudo: required
-dist: xenial
+---
+# vi: ts=2 sw=2 et:
+
+language: bash
+dist: bionic
 services:
-    - docker
+  - 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"
+  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"
+  jobs:
+    - DEBIAN_RELEASE=testing PHASE="RUN_GCC"
+    - DEBIAN_RELEASE=testing PHASE="RUN_GCC_ASAN_UBSAN"
+    - DEBIAN_RELEASE=testing PHASE="RUN_CLANG"
+    - DEBIAN_RELEASE=testing PHASE="RUN_CLANG_ASAN_UBSAN"
 
 stages:
-    - name: Build & test
-      if: type != cron
-
-    - name: Fuzzit-Fuzzing
-      if: type = cron
-
-    - name: Fuzzit-Regression
-      if: type != cron
+  # 'Test' is the default stage (for matrix jobs)
+  - name: Test
+    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: Coverity
+    if: type = cron
 
-        - 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
+# Matrix job definition - this is run for each combination of env variables
+# from the env.jobs array above
+before_install:
+  - sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
+  - docker --version
+install:
+  - $CI_MANAGERS/debian.sh SETUP
+script:
+  - $CI_MANAGERS/debian.sh $PHASE || travis_terminate 1
+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-Regression
-          name:  Continuous Fuzzing via Fuzzit (regression)
-          language: bash
-          script:
-            - set -e
-            - $CI_MANAGERS/fuzzit.sh regression
-            - set +e
-
-        - stage: Fuzzit-Fuzzing
-          name: Continuous Fuzzing 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
+# Inject another (single) job into the matrix for Coverity
+jobs:
+  include:
+    - stage: Coverity
+      language: bash
+      env:
+        - FEDORA_RELEASE="31"
+        - TOOL_BASE="/var/tmp/coverity-scan-analysis"
+        - CONT_NAME="coverity-fedora-$FEDORA_RELEASE"
+        - DOCKER_EXEC="docker exec -ti $CONT_NAME"
+        - 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
+        - set +e
+      after_script:
+        - $CI_MANAGERS/fedora.sh CLEANUP