blob: 7f4d2377665c4d5bc24d8da0e36cf71181c1408a [file] [log] [blame]
hex2d1959f2019-04-17 11:02:45 -07001sudo: required
hex76d5bb62019-11-15 11:04:51 -08002language: bash
Andrii Nakryikobab780e2021-02-01 21:01:22 -08003dist: focal
hex2d1959f2019-04-17 11:02:45 -07004services:
5 - docker
6
7env:
8 global:
hex76d5bb62019-11-15 11:04:51 -08009 - PROJECT_NAME='libbpf'
Frantisek Sumsalc204e3d2019-10-31 13:15:15 +010010 - AUTHOR_EMAIL="$(git log -1 --pretty=\"%aE\")"
hex2d1959f2019-04-17 11:02:45 -070011 - REPO_ROOT="$TRAVIS_BUILD_DIR"
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080012 - CI_ROOT="$REPO_ROOT/travis-ci"
13 - VMTEST_ROOT="$CI_ROOT/vmtest"
hex76d5bb62019-11-15 11:04:51 -080014
15addons:
16 apt:
17 packages:
18 - qemu-kvm
19 - zstd
Julia Kartseva583bddc2020-02-12 12:20:53 -080020 - binutils-dev
21 - elfutils
22 - libcap-dev
23 - libelf-dev
Andrii Nakryiko22d5d402020-02-21 15:11:54 -080024 - libdw-dev
hex2d1959f2019-04-17 11:02:45 -070025
Frantisek Sumsalc204e3d2019-10-31 13:15:15 +010026stages:
27 # Run Coverity periodically instead of for each PR for following reasons:
28 # 1) Coverity jobs are heavily rate-limited
29 # 2) Due to security restrictions of encrypted environment variables
30 # in Travis CI, pull requests made from forks can't access encrypted
31 # env variables, making Coverity unusable
32 # See: https://docs.travis-ci.com/user/pull-requests#pull-requests-and-security-restrictions
33 - name: Coverity
34 if: type = cron
35
hex2d1959f2019-04-17 11:02:45 -070036jobs:
37 include:
Andrii Nakryikoe9544372020-08-10 22:12:02 -070038 - stage: Builds & Tests
Andrii Nakryiko9e123fa2021-04-29 12:57:54 -070039 name: Kernel 5.5.0 + selftests
40 language: bash
41 env: KERNEL=5.5.0
42 script: $CI_ROOT/vmtest/run_vmtest.sh || travis_terminate 1
43
44 - name: Kernel LATEST + selftests
Andrii Nakryikodaa2c7f2020-07-08 16:25:18 -070045 language: bash
46 env: KERNEL=LATEST
47 script: $CI_ROOT/vmtest/run_vmtest.sh || travis_terminate 1
48
49 - name: Kernel 4.9.0 + selftests
50 language: bash
51 env: KERNEL=4.9.0
52 script: $CI_ROOT/vmtest/run_vmtest.sh || travis_terminate 1
53
Andrii Nakryikoe9544372020-08-10 22:12:02 -070054 - name: Debian Build
hex2d1959f2019-04-17 11:02:45 -070055 language: bash
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080056 install: $CI_ROOT/managers/debian.sh SETUP
Andrii Nakryiko8c7527e2020-06-10 11:55:38 -070057 script: $CI_ROOT/managers/debian.sh RUN || travis_terminate 1
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080058 after_script: $CI_ROOT/managers/debian.sh CLEANUP
hex2d1959f2019-04-17 11:02:45 -070059
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080060 - name: Debian Build (ASan+UBSan)
hex2d1959f2019-04-17 11:02:45 -070061 language: bash
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080062 install: $CI_ROOT/managers/debian.sh SETUP
Andrii Nakryiko8c7527e2020-06-10 11:55:38 -070063 script: $CI_ROOT/managers/debian.sh RUN_ASAN || travis_terminate 1
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080064 after_script: $CI_ROOT/managers/debian.sh CLEANUP
hex2d1959f2019-04-17 11:02:45 -070065
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080066 - name: Debian Build (clang)
hex2d1959f2019-04-17 11:02:45 -070067 language: bash
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080068 install: $CI_ROOT/managers/debian.sh SETUP
Andrii Nakryiko8c7527e2020-06-10 11:55:38 -070069 script: $CI_ROOT/managers/debian.sh RUN_CLANG || travis_terminate 1
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080070 after_script: $CI_ROOT/managers/debian.sh CLEANUP
hex2d1959f2019-04-17 11:02:45 -070071
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080072 - name: Debian Build (clang ASan+UBSan)
hex2d1959f2019-04-17 11:02:45 -070073 language: bash
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080074 install: $CI_ROOT/managers/debian.sh SETUP
Andrii Nakryiko8c7527e2020-06-10 11:55:38 -070075 script: $CI_ROOT/managers/debian.sh RUN_CLANG_ASAN || travis_terminate 1
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080076 after_script: $CI_ROOT/managers/debian.sh CLEANUP
hex4de9ffc2019-04-19 11:36:09 -070077
Andrii Nakryikoe1a90f32021-02-22 11:42:57 -080078 - name: Debian Build (gcc-10)
hex81625302019-04-29 14:06:46 -070079 language: bash
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080080 install: $CI_ROOT/managers/debian.sh SETUP
Andrii Nakryikoe1a90f32021-02-22 11:42:57 -080081 script: $CI_ROOT/managers/debian.sh RUN_GCC10 || travis_terminate 1
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080082 after_script: $CI_ROOT/managers/debian.sh CLEANUP
hex81625302019-04-29 14:06:46 -070083
Andrii Nakryikoe1a90f32021-02-22 11:42:57 -080084 - name: Debian Build (gcc-10 ASan+UBSan)
hex81625302019-04-29 14:06:46 -070085 language: bash
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080086 install: $CI_ROOT/managers/debian.sh SETUP
Andrii Nakryikoe1a90f32021-02-22 11:42:57 -080087 script: $CI_ROOT/managers/debian.sh RUN_GCC10_ASAN || travis_terminate 1
Andrii Nakryiko17c26b72020-02-20 12:28:46 -080088 after_script: $CI_ROOT/managers/debian.sh CLEANUP
hex81625302019-04-29 14:06:46 -070089
Andrii Nakryikobab780e2021-02-01 21:01:22 -080090 - name: Ubuntu Focal Build
hex2d1959f2019-04-17 11:02:45 -070091 language: bash
Andrii Nakryiko8c7527e2020-06-10 11:55:38 -070092 script: sudo $CI_ROOT/managers/ubuntu.sh || travis_terminate 1
Frantisek Sumsal2a259572019-10-23 10:42:21 +020093
Andrii Nakryikobab780e2021-02-01 21:01:22 -080094 - name: Ubuntu Focal Build (arm)
Frantisek Sumsal2a259572019-10-23 10:42:21 +020095 arch: arm64
96 language: bash
Andrii Nakryiko8c7527e2020-06-10 11:55:38 -070097 script: sudo $CI_ROOT/managers/ubuntu.sh || travis_terminate 1
Frantisek Sumsalc204e3d2019-10-31 13:15:15 +010098
Andrii Nakryikobab780e2021-02-01 21:01:22 -080099 - name: Ubuntu Focal Build (s390x)
Andrii Nakryikoe9544372020-08-10 22:12:02 -0700100 arch: s390x
101 language: bash
102 script: sudo $CI_ROOT/managers/ubuntu.sh || travis_terminate 1
Frantisek Sumsal3720f312019-11-14 13:32:35 +0100103
Andrii Nakryikobab780e2021-02-01 21:01:22 -0800104 - name: Ubuntu Focal Build (ppc64le)
Frantisek Sumsalc42bfcb2019-12-10 11:35:24 +0100105 arch: ppc64le
106 language: bash
Andrii Nakryiko8c7527e2020-06-10 11:55:38 -0700107 script: sudo $CI_ROOT/managers/ubuntu.sh || travis_terminate 1
Andrii Nakryiko17c26b72020-02-20 12:28:46 -0800108
Frantisek Sumsalc204e3d2019-10-31 13:15:15 +0100109 - stage: Coverity
110 language: bash
111 env:
112 # Coverity configuration
113 # COVERITY_SCAN_TOKEN=xxx
114 # Encrypted using `travis encrypt --repo libbpf/libbpf COVERITY_SCAN_TOKEN=xxx`
115 - secure: "I9OsMRHbb82IUivDp+I+w/jEQFOJgBDAqYqf1ollqCM1QhocxMcS9bwIAgfPhdXi2hohV7sRrVMZstahY67FAvJLGxNopi4tAPDIAaIFxgO0yDxMhaTMx5xDfMwlIm2FOP/9gB9BQsd6M7CmoQZgXYwBIv7xd1ooxoQrh2rOK1YrRl7UQu3+c3zPTjDfIYZzR3bFttMqZ9/c4U0v8Ry5IFXrel3hCshndHA1TtttJrUSrILlZcmVc1ch7JIy6zCbCU/2lGv0B/7rWXfF8MT7O9jPtFOhJ1DEcd2zhw2n4j9YT3a8OhtnM61LA6ask632mwCOsxpFLTun7AzuR1Cb5mdPHsxhxnCHcXXARa2mJjem0QG1NhwxwJE8sbRDapojexxCvweYlEN40ofwMDSnj/qNt95XIcrk0tiIhGFx0gVNWvAdmZwx+N4mwGPMTAN0AEOFjpgI+ZdB89m+tL/CbEgE1flc8QxUxJhcp5OhH6yR0z9qYOp0nXIbHsIaCiRvt/7LqFRQfheifztWVz4mdQlCdKS9gcOQ09oKicPevKO1L0Ue3cb7Ug7jOpMs+cdh3XokJtUeYEr1NijMHT9+CTAhhO5RToWXIZRon719z3fwoUBNDREATwVFMlVxqSO/pbYgaKminigYbl785S89YYaZ6E5UvaKRHM6KHKMDszs="
116 - COVERITY_SCAN_PROJECT_NAME="libbpf"
117 - COVERITY_SCAN_NOTIFICATION_EMAIL="${AUTHOR_EMAIL}"
118 - COVERITY_SCAN_BRANCH_PATTERN="$TRAVIS_BRANCH"
119 # Note: `make -C src/` as a BUILD_COMMAND will not work here
120 - COVERITY_SCAN_BUILD_COMMAND_PREPEND="cd src/"
121 - COVERITY_SCAN_BUILD_COMMAND="make"
122 install:
Andrii Nakryikobab780e2021-02-01 21:01:22 -0800123 - sudo echo 'deb-src http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse' >>/etc/apt/sources.list
Frantisek Sumsal91e4f272019-11-02 23:23:19 +0100124 - sudo apt-get update
125 - sudo apt-get -y build-dep libelf-dev
126 - sudo apt-get install -y libelf-dev pkg-config
Frantisek Sumsalc204e3d2019-10-31 13:15:15 +0100127 script:
Andrii Nakryiko8c7527e2020-06-10 11:55:38 -0700128 - scripts/coverity.sh || travis_terminate 1
Julia Kartseva1b42b152020-07-01 11:51:46 -0700129 allow_failures:
Andrii Nakryikodaa2c7f2020-07-08 16:25:18 -0700130 - env: KERNEL=x.x.x