Extcap programs must write to the packet pipe in binary mode.
[metze/wireshark/wip.git] / .gitlab-ci.yml
index 35f25275950c0df94054588d4fd802e8ee51922c..2b292f225f191454b110718d5020f9039af36523 100644 (file)
-image: ubuntu:16.04
-before_script:
-  - apt update -qq
-  - apt install software-properties-common -y
-  - add-apt-repository --yes ppa:ubuntu-toolchain-r/test
-  - apt update -qq
-  - apt install ninja-build -y
-  - ./tools/debian-setup.sh --install-optional -y
-  - mkdir build
-  - cd build
+.ubuntu: &ubuntu
+  image: crondaemon/wireshark
+  retry: 1
+  before_script:
+    - rm -rf /etc/apt/sources.list.d/*
+    - echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial main" >  /etc/apt/sources.list.d/clang.list
+    - echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main" > /etc/apt/sources.list.d/clang5.list
+    - echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main" > /etc/apt/sources.list.d/clang6.list
+    - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 15CF4D18AF4F7421
+    - echo "deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu xenial main" > /etc/apt/sources.list.d/gcc.list
+    - apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1E9377A2BA9EF27F
+    - apt-get update -qq
+    - mkdir build
+    - cd build
 gcc-4:
+  <<: *ubuntu
   script:
-    - apt install gcc-4.9 g++-4.9 -y
+    - ../tools/debian-setup.sh --install-optional ninja-build gcc-4.9 g++-4.9 -y
     - cmake -GNinja -DCMAKE_C_COMPILER=gcc-4.9 -DCMAKE_CXX_COMPILER=g++-4.9 ..
     - ninja
-gcc-4-noextcap:
-  script:
-    - apt install gcc-4.9 g++-4.9 -y
-    - cmake -GNinja -DCMAKE_C_COMPILER=gcc-4.9 -DCMAKE_CXX_COMPILER=g++-4.9 -DENABLE_EXTCAP=OFF ..
-    - ninja
-gcc-4-nopcap:
-  script:
-    - apt install gcc-4.9 g++-4.9 -y
-    - cmake -GNinja -DCMAKE_C_COMPILER=gcc-4.9 -DCMAKE_CXX_COMPILER=g++-4.9 -DENABLE_PCAP=OFF ..
-    - ninja
 gcc-5:
+  <<: *ubuntu
   script:
-    - apt install gcc-5 g++-5 -y
+    - ../tools/debian-setup.sh --install-optional ninja-build gcc-5 g++-5 -y
     - cmake -GNinja -DCMAKE_C_COMPILER=gcc-5 -DCMAKE_CXX_COMPILER=g++-5 ..
     - ninja
-gcc-5-noextcap:
-  script:
-    - apt install gcc-5 -y
-    - cmake -GNinja -DCMAKE_C_COMPILER=gcc-5 -DCMAKE_CXX_COMPILER=g++-5 -DENABLE_EXTCAP=OFF ..
-    - ninja
-gcc-5-nopcap:
-  script:
-    - apt install gcc-5 -y
-    - cmake -GNinja -DCMAKE_C_COMPILER=gcc-5 -DCMAKE_CXX_COMPILER=g++-5 -DENABLE_PCAP=OFF ..
-    - ninja
 gcc-6:
+  <<: *ubuntu
   script:
-    - apt install gcc-6 g++-6 -y
+    - ../tools/debian-setup.sh --install-optional ninja-build  gcc-6 g++-6 -y
     - cmake -GNinja -DCMAKE_C_COMPILER=gcc-6 -DCMAKE_CXX_COMPILER=g++-6 ..
     - ninja
-gcc-6-noextcap:
-  script:
-    - apt install gcc-6 g++-6 -y
-    - cmake -GNinja -DENABLE_EXTCAP=OFF -DCMAKE_C_COMPILER=gcc-6 -DCMAKE_CXX_COMPILER=g++-6 ..
-    - ninja
-gcc-6-nopcap:
-  script:
-    - apt install gcc-6 g++-6 -y
-    - cmake -GNinja -DENABLE_PCAP=OFF -DCMAKE_C_COMPILER=gcc-6 -DCMAKE_CXX_COMPILER=g++-6 ..
-    - ninja
 gcc-7:
+  <<: *ubuntu
   script:
-    - apt install gcc-7 g++-7 -y
+    - ../tools/debian-setup.sh --install-optional ninja-build  gcc-7 g++-7 -y
     - cmake -GNinja -DCMAKE_C_COMPILER=gcc-7 -DCMAKE_CXX_COMPILER=g++-7 ..
     - ninja
-gcc-7-noextcap:
+gcc-8:
+  <<: *ubuntu
   script:
-    - apt install gcc-7 g++-7 -y
-    - cmake -GNinja -DENABLE_EXTCAP=OFF -DCMAKE_C_COMPILER=gcc-7 -DCMAKE_CXX_COMPILER=g++-7 ..
+    - ../tools/debian-setup.sh --install-optional ninja-build  gcc-8 g++-8 -y
+    - cmake -GNinja -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8 ..
     - ninja
-gcc-7-nopcap:
+gcc-8-nopcap:
+  <<: *ubuntu
   script:
-    - apt install gcc-7 g++-7 -y
-    - cmake -GNinja -DENABLE_PCAP=OFF -DCMAKE_C_COMPILER=gcc-7 -DCMAKE_CXX_COMPILER=g++-7 ..
+    - ../tools/debian-setup.sh --install-optional ninja-build  gcc-8 g++-8 -y
+    - cmake -GNinja -DENABLE_PCAP=OFF -DCMAKE_C_COMPILER=gcc-8 -DCMAKE_CXX_COMPILER=g++-8 ..
     - ninja
 clang-3.5:
+  <<: *ubuntu
   script:
-    - apt install clang-3.5 -y
+    - ../tools/debian-setup.sh --install-optional ninja-build  clang-3.5 -y
     - cmake -GNinja -DCMAKE_C_COMPILER=clang-3.5 -DCMAKE_CXX_COMPILER=clang++-3.5 ..
     - ninja
 clang-3.6:
+  <<: *ubuntu
   script:
-    - apt install clang-3.6 -y
+    - ../tools/debian-setup.sh --install-optional ninja-build clang-3.6 -y
     - cmake -GNinja -DCMAKE_C_COMPILER=clang-3.6 -DCMAKE_CXX_COMPILER=clang++-3.6 ..
     - ninja
 clang-3.7:
+  <<: *ubuntu
   script:
-    - apt install clang-3.7 -y
+    - ../tools/debian-setup.sh --install-optional ninja-build  clang-3.7 -y
     - cmake -GNinja -DCMAKE_C_COMPILER=clang-3.7 -DCMAKE_CXX_COMPILER=clang++-3.7 ..
     - ninja
 clang-3.8:
+  <<: *ubuntu
   script:
-    - apt install clang-3.8 -y
+    - ../tools/debian-setup.sh --install-optional ninja-build  clang-3.8 -y
     - cmake -GNinja -DCMAKE_C_COMPILER=clang-3.8 -DCMAKE_CXX_COMPILER=clang++-3.8 ..
     - ninja
 clang-3.9:
+  <<: *ubuntu
   script:
-    - apt install clang-3.9 -y
+    - ../tools/debian-setup.sh --install-optional ninja-build  clang-3.9 -y
     - cmake -GNinja -DCMAKE_C_COMPILER=clang-3.9 -DCMAKE_CXX_COMPILER=clang++-3.9 ..
     - ninja
 clang-4.0:
+  <<: *ubuntu
   script:
-    - apt install clang-4.0 -y
+    - ../tools/debian-setup.sh --install-optional ninja-build  clang-4.0 -y
     - cmake -GNinja -DCMAKE_C_COMPILER=clang-4.0 -DCMAKE_CXX_COMPILER=clang++-4.0 -DCMAKE_C_FLAGS=-Wframe-larger-than=20000 ..
     - ninja
 clang-5.0:
+  <<: *ubuntu
   script:
-    - echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main" > /etc/apt/sources.list.d/clang5.list
-    - curl -s https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
-    - apt update -qq
-    - apt install clang-5.0 -y
+    - ../tools/debian-setup.sh --install-optional ninja-build  clang-5.0 -y
     - cmake -GNinja -DCMAKE_C_COMPILER=clang-5.0 -DCMAKE_CXX_COMPILER=clang++-5.0 -DCMAKE_C_FLAGS=-Wframe-larger-than=20000 ..
     - ninja
 clang-6.0:
+  <<: *ubuntu
   script:
-    - echo "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial main" > /etc/apt/sources.list.d/clang6.list
-    - curl -s https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
-    - apt update -qq
-    - apt install clang-6.0 -y
+    - ../tools/debian-setup.sh --install-optional ninja-build  clang-6.0 -y
     - cmake -GNinja -DCMAKE_C_COMPILER=clang-6.0 -DCMAKE_CXX_COMPILER=clang++-6.0 -DCMAKE_C_FLAGS=-Wframe-larger-than=20000 ..
     - ninja
+clang-7:
+  <<: *ubuntu
+  script:
+     - ../tools/debian-setup.sh --install-optional ninja-build clang-7 -y
+     - cmake -GNinja -DCMAKE_C_COMPILER=clang-7  -DCMAKE_CXX_COMPILER=clang++-7 -DCMAKE_C_FLAGS=-Wframe-larger-than=20000 ..
+     - ninja
+clang-7-nopcap:
+  <<: *ubuntu
+  script:
+    - ../tools/debian-setup.sh --install-optional ninja-build clang-7 -y
+    - cmake -GNinja -DENABLE_PCAP=OFF -DCMAKE_C_COMPILER=clang-7 -DCMAKE_CXX_COMPILER=clang++-7 -DCMAKE_C_FLAGS=-Wframe-larger-than=20000 ..
+    - ninja
+rpm-centos-7:
+  image: centos:7
+  script:
+    - yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
+    - yum install -y which
+    - tools/rpm-setup.sh --install-optional -y
+    - mkdir build
+    - cd build
+    - cmake3 -GNinja ..
+    - ninja-build
+    - ninja-build rpm-package
+rpm-opensuse-42.3:
+  image: opensuse:42.3
+  script:
+    - zypper --non-interactive install which update-desktop-files
+    - tools/rpm-setup.sh --install-optional
+    - mkdir build
+    - cd build
+    - cmake ..
+    - make
+    - make rpm-package
+rpm-fedora-28:
+  image: fedora:28
+  script:
+    - yum install -y which
+    - tools/rpm-setup.sh --install-optional -y
+    - mkdir build
+    - cd build
+    - cmake3 -GNinja ..
+    - ninja-build
+    - ninja-build rpm-package
+after_script:
+  - if [ -f build/run/tshark ];then build/run/tshark --version; fi