2020-12-09 21:10:42 +00:00
|
|
|
|
# In the interest of reliability and performance, please avoid installing
|
|
|
|
|
# external dependencies here, e.g. via tools/*-setup.sh, apt, dnf, or yum.
|
|
|
|
|
# Do so in the appropriate Dockerfile at
|
|
|
|
|
# https://gitlab.com/wireshark/wireshark-containers/ instead.
|
|
|
|
|
# The resulting images can be found at
|
|
|
|
|
# https://hub.docker.com/r/wireshark/wireshark-centos-7-dev
|
|
|
|
|
# https://hub.docker.com/r/wireshark/wireshark-centos-8-dev
|
|
|
|
|
# https://hub.docker.com/r/wireshark/wireshark-debian-stable-dev
|
|
|
|
|
# https://hub.docker.com/r/wireshark/wireshark-fedora-dev
|
|
|
|
|
# https://hub.docker.com/r/wireshark/wireshark-opensuse-15.2-dev
|
|
|
|
|
# https://hub.docker.com/r/wireshark/wireshark-ubuntu-dev
|
|
|
|
|
|
2021-04-29 19:10:51 +00:00
|
|
|
|
stages:
|
|
|
|
|
- build
|
|
|
|
|
- analysis
|
|
|
|
|
- test
|
|
|
|
|
|
2020-12-21 23:03:49 +00:00
|
|
|
|
variables:
|
2021-03-11 21:56:44 +00:00
|
|
|
|
# Ensure that checkouts are a) fast and b) have a reachable tag. In a
|
|
|
|
|
# brighter, more glorious future we might be able to use --shallow-since:
|
|
|
|
|
# https://gitlab.com/gitlab-org/gitlab-runner/-/issues/3460
|
|
|
|
|
# In the mean time, fetching the last 5000 commits does the job.
|
|
|
|
|
GIT_DEPTH: "1"
|
|
|
|
|
GIT_FETCH_EXTRA_FLAGS: "--depth=5000"
|
2020-12-21 23:03:49 +00:00
|
|
|
|
CCACHE_DIR: "${CI_PROJECT_DIR}/ccache"
|
2021-04-30 21:06:21 +00:00
|
|
|
|
# Preferred version of clang available on wireshark-ubuntu-dev
|
|
|
|
|
CLANG_VERSION: 12
|
2021-04-12 19:13:02 +00:00
|
|
|
|
# Enable color output in CMake, Ninja, and other tools. https://bixense.com/clicolors/
|
|
|
|
|
CLICOLOR_FORCE: 1
|
2020-12-21 23:03:49 +00:00
|
|
|
|
|
2021-05-01 01:13:01 +00:00
|
|
|
|
# Scheduled builds additionally set SCHEDULE_TYPE, which can be one of:
|
2021-04-30 15:56:29 +00:00
|
|
|
|
# - daily: Daily at 10:00 UTC
|
|
|
|
|
# - coverity-visual-c++: Monday, Wednesday, & Friday at 12:00 UTC
|
|
|
|
|
# - coverity-gcc: Sunday, Tuesday, Thursday & Saturday at 12:00 UTC
|
|
|
|
|
|
2021-05-02 16:39:21 +00:00
|
|
|
|
# Common rule stanzas
|
|
|
|
|
# These must currently be including using "!reference tags". "extends:" and
|
|
|
|
|
# YAML anchors won't work:
|
|
|
|
|
# https://gitlab.com/gitlab-org/gitlab/-/issues/322992
|
2021-04-30 17:49:11 +00:00
|
|
|
|
|
|
|
|
|
# Commits that have been approved and merged. Run automatically in the main
|
|
|
|
|
# repo and allow manual runs in forks.
|
|
|
|
|
.if-merged:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/'
|
|
|
|
|
when: always
|
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_URL !~ /.*gitlab.com\/wireshark\/wireshark/'
|
|
|
|
|
when: manual
|
2021-04-30 17:49:11 +00:00
|
|
|
|
# Incoming merge requests.
|
|
|
|
|
.if-merge-request:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
|
|
|
|
when: always
|
2021-04-30 17:49:11 +00:00
|
|
|
|
# Incoming non-detached merge requests. Must be used for runners which are only
|
|
|
|
|
# available in wireshark/wireshark, e.g. wireshark-windows-*
|
|
|
|
|
.if-attached-merge-request:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/'
|
|
|
|
|
when: always
|
|
|
|
|
# Daily jobs. Care should be taken when changing this since the scheduler
|
|
|
|
|
# often doesn't report errors.
|
|
|
|
|
.if-daily-schedule:
|
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "daily"'
|
|
|
|
|
when: always
|
2021-05-04 19:22:32 +00:00
|
|
|
|
# Fuzz jobs. Care should be taken when changing this since the scheduler
|
|
|
|
|
# often doesn't report errors.
|
|
|
|
|
.if-fuzz-schedule:
|
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "fuzz"'
|
|
|
|
|
when: always
|
2021-04-30 17:49:11 +00:00
|
|
|
|
|
2020-12-21 16:19:29 +00:00
|
|
|
|
.build:
|
2019-04-10 10:52:52 +00:00
|
|
|
|
stage: build
|
|
|
|
|
after_script:
|
2020-03-11 22:18:21 +00:00
|
|
|
|
- for builddir in build/packaging/rpm/BUILD/wireshark-*/build build/packaging/rpm/BUILD/wireshark-* build obj-*; do [ ! -d "$builddir/run" ] || break; done
|
|
|
|
|
- if [[ "$CI_JOB_NAME" == "build:rpm-opensuse-"* ]]; then export LD_LIBRARY_PATH=$builddir/run; fi
|
2019-04-10 10:52:52 +00:00
|
|
|
|
- if [ -f $builddir/run/tshark ]; then $builddir/run/tshark --version; fi
|
2020-12-24 13:11:51 +00:00
|
|
|
|
needs: []
|
2019-05-04 21:02:33 +00:00
|
|
|
|
|
2020-12-21 16:19:29 +00:00
|
|
|
|
.build-ubuntu:
|
|
|
|
|
extends: .build
|
2019-05-04 21:02:33 +00:00
|
|
|
|
image: wireshark/wireshark-ubuntu-dev
|
2018-06-08 08:36:16 +00:00
|
|
|
|
retry: 1
|
2020-09-01 21:41:02 +00:00
|
|
|
|
# https://gould.cx/ted/blog/2017/06/10/ccache-for-Gitlab-CI/
|
|
|
|
|
cache:
|
|
|
|
|
# XXX Use ${CI_JOB_NAME}-${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} instead?
|
|
|
|
|
key: ${CI_JOB_NAME}-master
|
|
|
|
|
paths:
|
|
|
|
|
- ccache/
|
2018-06-08 08:36:16 +00:00
|
|
|
|
before_script:
|
2019-04-12 14:32:32 +00:00
|
|
|
|
- useradd user
|
|
|
|
|
- export LANG=en_US.UTF-8
|
|
|
|
|
- export PYTEST_ADDOPTS=--skip-missing-programs=dumpcap,rawshark
|
2020-09-01 21:41:02 +00:00
|
|
|
|
- mkdir -p ccache
|
|
|
|
|
- ccache --show-stats
|
2020-12-10 23:42:48 +00:00
|
|
|
|
- export DEB_BUILD_OPTIONS=nocheck,parallel=$(( $(getconf _NPROCESSORS_ONLN) + 2 ))
|
2020-09-09 20:20:46 +00:00
|
|
|
|
- export DH_QUIET=1
|
|
|
|
|
- export MAKEFLAGS=--silent
|
2018-06-08 08:36:16 +00:00
|
|
|
|
- mkdir build
|
|
|
|
|
- cd build
|
2020-12-13 23:43:59 +00:00
|
|
|
|
after_script:
|
|
|
|
|
# The cache should be large enough to be useful but it shouldn't take
|
|
|
|
|
# too long to restore+save each run.
|
|
|
|
|
- ccache --max-size $( du --summarize --block-size=1M "$CI_PROJECT_DIR/build" | awk '{printf ("%dM", $1 * 1.5)}' )
|
2019-05-12 20:33:34 +00:00
|
|
|
|
script:
|
2020-12-09 17:13:42 +00:00
|
|
|
|
# setcap restricts our library paths
|
|
|
|
|
- CFLAGS=-Wl,-rpath=$(pwd)/run CXXFLAGS=-Wl,-rpath=$(pwd)/run cmake -GNinja $CMAKE_ARGS ..
|
2019-05-12 20:33:34 +00:00
|
|
|
|
- ninja
|
2020-12-21 20:09:55 +00:00
|
|
|
|
- ninja install
|
|
|
|
|
- ninja shellcheck
|
2019-05-12 20:33:34 +00:00
|
|
|
|
- ninja test-programs
|
|
|
|
|
- chown -R user .
|
2019-05-13 07:06:35 +00:00
|
|
|
|
- if [ -f run/dumpcap ]; then setcap cap_net_raw,cap_net_admin+eip run/dumpcap; fi
|
2020-12-09 17:13:42 +00:00
|
|
|
|
- if [ -f run/dumpcap ]; then su user -c "run/dumpcap -D" ; fi
|
2019-05-12 20:33:34 +00:00
|
|
|
|
- su user -c pytest-3
|
|
|
|
|
|
2020-12-21 16:19:29 +00:00
|
|
|
|
.build-rpm:
|
|
|
|
|
extends: .build
|
2021-05-03 20:22:51 +00:00
|
|
|
|
rules: !reference [.if-merged]
|
2020-12-24 13:11:51 +00:00
|
|
|
|
before_script:
|
2021-01-08 19:04:00 +00:00
|
|
|
|
# It might make sense to set "GIT_STRATEGY: none" and build from
|
|
|
|
|
# the tarball.
|
2020-12-24 13:11:51 +00:00
|
|
|
|
- git config --global user.email "you@example.com"
|
|
|
|
|
- git config --global user.name "Your Name"
|
|
|
|
|
- mkdir build
|
|
|
|
|
- cd build
|
|
|
|
|
- perl ../tools/make-version.pl --set-release
|
2021-01-08 19:04:00 +00:00
|
|
|
|
- mv -v ../wireshark-*.tar.* .
|
2019-01-17 09:13:09 +00:00
|
|
|
|
artifacts:
|
|
|
|
|
paths:
|
|
|
|
|
- build/packaging/rpm/RPMS
|
|
|
|
|
expire_in: 3 days
|
2021-05-03 20:22:51 +00:00
|
|
|
|
needs:
|
|
|
|
|
- build:ubuntu-dist
|
|
|
|
|
|
|
|
|
|
.test-rpm:
|
|
|
|
|
rules: !reference [.if-merged]
|
|
|
|
|
stage: test
|
|
|
|
|
variables:
|
|
|
|
|
GIT_STRATEGY: none
|
2019-05-12 20:33:34 +00:00
|
|
|
|
|
2021-04-05 18:35:23 +00:00
|
|
|
|
.build-windows:
|
|
|
|
|
stage: build
|
|
|
|
|
before_script:
|
2021-04-09 17:39:45 +00:00
|
|
|
|
- if (-Not (Test-Path C:\Development)) { New-Item -Path C:\Development -ItemType "directory" }
|
2021-04-05 18:35:23 +00:00
|
|
|
|
- $env:WIRESHARK_BASE_DIR = "C:\Development"
|
|
|
|
|
- $env:Configuration = "RelWithDebInfo"
|
|
|
|
|
- $env:Path += ";C:\Program Files\CMake\bin"
|
|
|
|
|
- $env:Path += ";C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin"
|
2021-05-05 16:48:05 +00:00
|
|
|
|
- $env:Path += ";C:\qt\5.15.2\msvc2019_64\bin"
|
2021-04-05 18:35:23 +00:00
|
|
|
|
# https://help.appveyor.com/discussions/questions/18777-how-to-use-vcvars64bat-from-powershell
|
|
|
|
|
- cmd.exe /c "call `"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat`" && set > %temp%\vcvars.txt"
|
|
|
|
|
- Get-Content "$env:temp\vcvars.txt" | Foreach-Object { if ($_ -match "^(.*?)=(.*)$") { Set-Content "env:\$($matches[1])" $matches[2] } }
|
|
|
|
|
# Testing / debugging only.
|
|
|
|
|
# - cmd.exe /c "set CI_PIPELINE_SOURCE"
|
|
|
|
|
# - cmd.exe /c "set CI_PROJECT_URL"
|
|
|
|
|
#- dir c:\
|
|
|
|
|
#- dir c:\qt
|
|
|
|
|
#- $env:path.split(";")
|
|
|
|
|
#- cmd.exe /c "set"
|
|
|
|
|
#- Get-Location
|
|
|
|
|
- mkdir build
|
|
|
|
|
- cd build
|
2021-04-06 23:52:43 +00:00
|
|
|
|
needs: []
|
2021-04-05 18:35:23 +00:00
|
|
|
|
|
gitlab-ci: remove unnecessary jobs, upgrade versions
The point of testing multiple compiler versions is to catch bugs that
only occur in one particular version. After an analysis of 800+ failed
builds, it appears that a lot of the checks are redundant. Changes:
* Drop GCC 6 and keep GCC 5, Ubuntu 16.04 default GCC is 5.3. Fixes for
warnings in old compilers: commit 829d2c3752 (GCC 5 + 6), commit
e451ea0a4d (Clang 5, GCC 4 + 5). Maybe GCC 5 can also be dropped since
Ubuntu 18.04 is around for a while.
* Drop clang-nopcap, all errors caught by Clang were also caught by GCC.
One change caught by gcc-8-nopcap but not Clang: commit 036c3d6bc7.
* Remove Clang 5: even though it triggers some unique failures, no major
distro ships with it so remove it.
* Drop old Clang versions, newer versions catch all warnings from older.
* Upgrade to Clang 8 which is already installed in the Docker image.
* Remove EOL Fedora 28 and 29, use latest (31).
* Remove EOL openSUSE Leap 42.3, keep 15.1 as the latest.
Reduces from 20 jobs (15 build, 5 test) to 10 jobs (7 build, 3 test).
Change-Id: I4a355dd1a90cbbef9525bd63a8544fa3e22369a2
Reviewed-on: https://code.wireshark.org/review/36281
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2020-03-05 01:54:04 +00:00
|
|
|
|
# Rely on fedora:latest and debian-stable jobs for testing a recent GCC version.
|
2021-04-30 21:06:21 +00:00
|
|
|
|
clang-latest:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
extends: .build-ubuntu
|
|
|
|
|
rules: !reference [.if-merged]
|
2019-05-12 20:33:34 +00:00
|
|
|
|
variables:
|
2021-04-30 21:06:21 +00:00
|
|
|
|
CC: "clang-$CLANG_VERSION"
|
|
|
|
|
CXX: "clang++-$CLANG_VERSION"
|
gitlab-ci: remove unnecessary jobs, upgrade versions
The point of testing multiple compiler versions is to catch bugs that
only occur in one particular version. After an analysis of 800+ failed
builds, it appears that a lot of the checks are redundant. Changes:
* Drop GCC 6 and keep GCC 5, Ubuntu 16.04 default GCC is 5.3. Fixes for
warnings in old compilers: commit 829d2c3752 (GCC 5 + 6), commit
e451ea0a4d (Clang 5, GCC 4 + 5). Maybe GCC 5 can also be dropped since
Ubuntu 18.04 is around for a while.
* Drop clang-nopcap, all errors caught by Clang were also caught by GCC.
One change caught by gcc-8-nopcap but not Clang: commit 036c3d6bc7.
* Remove Clang 5: even though it triggers some unique failures, no major
distro ships with it so remove it.
* Drop old Clang versions, newer versions catch all warnings from older.
* Upgrade to Clang 8 which is already installed in the Docker image.
* Remove EOL Fedora 28 and 29, use latest (31).
* Remove EOL openSUSE Leap 42.3, keep 15.1 as the latest.
Reduces from 20 jobs (15 build, 5 test) to 10 jobs (7 build, 3 test).
Change-Id: I4a355dd1a90cbbef9525bd63a8544fa3e22369a2
Reviewed-on: https://code.wireshark.org/review/36281
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2020-03-05 01:54:04 +00:00
|
|
|
|
|
2020-12-07 20:35:33 +00:00
|
|
|
|
build:ubuntu-dist:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
extends: .build-ubuntu
|
2020-12-24 13:11:51 +00:00
|
|
|
|
stage: .pre
|
2021-05-02 16:39:21 +00:00
|
|
|
|
rules: !reference [.if-merged]
|
2020-12-07 20:35:33 +00:00
|
|
|
|
script:
|
|
|
|
|
- perl ../tools/make-version.pl --set-release || ../perl make-version.pl --set-release
|
|
|
|
|
- cmake -G Ninja $CMAKE_ARGS -DENABLE_CCACHE=ON ..
|
2020-12-22 10:59:00 +00:00
|
|
|
|
- cd $CI_PROJECT_DIR
|
|
|
|
|
- build/packaging/source/git-export-release.sh -d .
|
2020-12-21 20:09:55 +00:00
|
|
|
|
after_script:
|
2020-12-21 23:07:37 +00:00
|
|
|
|
# - ccache --max-size $( du --summarize --block-size=1M "$CI_PROJECT_DIR/build" | awk '{printf ("%dM", $1 * 1.5)}' )
|
2020-12-21 20:09:55 +00:00
|
|
|
|
- for digest in sha256 rmd160 sha1 ; do openssl $digest wireshark-*.tar.* ; done
|
|
|
|
|
# This will break if we produce multiple tarballs, which is arguably a good thing.
|
|
|
|
|
- if [ -n "$AWS_ACCESS_KEY_ID" ] && [ -n "$AWS_SECRET_ACCESS_KEY" ] && [ -n "$S3_DESTINATION_DIST" ] ; then aws s3 cp wireshark-*.tar.* "$S3_DESTINATION_DIST/" ; fi
|
|
|
|
|
artifacts:
|
|
|
|
|
paths:
|
|
|
|
|
- wireshark-*.tar.*
|
2020-12-07 20:35:33 +00:00
|
|
|
|
|
|
|
|
|
# The custom CentOS 7 image pre-installs dependencies and compilers to speed up the build:
|
|
|
|
|
# https://hub.docker.com/r/wireshark/wireshark-centos-7-dev
|
|
|
|
|
# https://gitlab.com/wireshark/wireshark-containers/-/tree/master/dev/centos-7
|
2019-04-10 10:52:52 +00:00
|
|
|
|
build:rpm-centos-7:
|
2020-12-21 16:19:29 +00:00
|
|
|
|
extends: .build-rpm
|
2020-11-17 01:22:37 +00:00
|
|
|
|
image: wireshark/wireshark-centos-7-dev
|
2018-06-08 09:49:50 +00:00
|
|
|
|
script:
|
|
|
|
|
- cmake3 -GNinja ..
|
|
|
|
|
- ninja-build rpm-package
|
2019-04-10 10:52:52 +00:00
|
|
|
|
test:rpm-centos-7:
|
2021-05-03 20:22:51 +00:00
|
|
|
|
extends: .test-rpm
|
2020-11-17 01:22:37 +00:00
|
|
|
|
image: wireshark/wireshark-centos-7-dev
|
2019-04-10 10:52:52 +00:00
|
|
|
|
script:
|
|
|
|
|
- yum --nogpgcheck localinstall -y build/packaging/rpm/RPMS/x86_64/*.rpm
|
|
|
|
|
- tshark --version
|
2020-12-24 13:11:51 +00:00
|
|
|
|
needs:
|
2019-04-10 10:52:52 +00:00
|
|
|
|
- build:rpm-centos-7
|
2020-11-17 01:22:37 +00:00
|
|
|
|
|
2020-10-31 11:14:18 +00:00
|
|
|
|
build:rpm-centos-8:
|
2020-12-21 16:19:29 +00:00
|
|
|
|
extends: .build-rpm
|
2020-11-17 01:22:37 +00:00
|
|
|
|
image: wireshark/wireshark-centos-8-dev
|
2020-10-31 11:14:18 +00:00
|
|
|
|
script:
|
|
|
|
|
- cmake -GNinja ..
|
|
|
|
|
- ninja-build rpm-package
|
|
|
|
|
test:rpm-centos-8:
|
2021-05-03 20:22:51 +00:00
|
|
|
|
extends: .test-rpm
|
2020-11-17 01:22:37 +00:00
|
|
|
|
image: wireshark/wireshark-centos-8-dev
|
2020-10-31 11:14:18 +00:00
|
|
|
|
script:
|
|
|
|
|
- dnf --nogpgcheck localinstall -y build/packaging/rpm/RPMS/x86_64/*.rpm
|
|
|
|
|
- tshark --version
|
2020-12-24 13:11:51 +00:00
|
|
|
|
needs:
|
2020-10-31 11:14:18 +00:00
|
|
|
|
- build:rpm-centos-8
|
2020-11-17 01:22:37 +00:00
|
|
|
|
|
2020-10-31 11:14:18 +00:00
|
|
|
|
build:rpm-opensuse-15.2:
|
2020-12-21 16:19:29 +00:00
|
|
|
|
extends: .build-rpm
|
2021-05-02 16:39:21 +00:00
|
|
|
|
image: wireshark/wireshark-opensuse-15.2-dev
|
2020-10-31 11:14:18 +00:00
|
|
|
|
script:
|
|
|
|
|
- cmake -GNinja ..
|
|
|
|
|
- ninja rpm-package
|
|
|
|
|
test:rpm-opensuse-15.2:
|
2021-05-03 20:22:51 +00:00
|
|
|
|
extends: .test-rpm
|
2020-11-17 01:22:37 +00:00
|
|
|
|
image: wireshark/wireshark-opensuse-15.2-dev
|
2020-10-31 11:14:18 +00:00
|
|
|
|
script:
|
|
|
|
|
- zypper --no-gpg-checks install -y build/packaging/rpm/RPMS/x86_64/*.rpm
|
|
|
|
|
- tshark --version
|
2020-12-24 13:11:51 +00:00
|
|
|
|
needs:
|
2020-10-31 11:14:18 +00:00
|
|
|
|
- build:rpm-opensuse-15.2
|
2020-11-16 23:14:27 +00:00
|
|
|
|
|
2020-10-31 11:14:18 +00:00
|
|
|
|
build:rpm-fedora:
|
2020-12-21 16:19:29 +00:00
|
|
|
|
extends: .build-rpm
|
2020-11-16 23:14:27 +00:00
|
|
|
|
image: wireshark/wireshark-fedora-dev
|
2018-06-17 21:01:01 +00:00
|
|
|
|
script:
|
2021-02-15 05:07:53 +00:00
|
|
|
|
# Shared GitLab runners limit the log size to 4M, so reduce verbosity. See
|
|
|
|
|
# https://gitlab.com/gitlab-com/support-forum/issues/2790
|
2021-02-16 08:33:50 +00:00
|
|
|
|
- export FORCE_CMAKE_NINJA_NON_VERBOSE=1
|
2018-06-17 21:01:01 +00:00
|
|
|
|
- cmake3 -GNinja ..
|
2021-02-16 08:33:50 +00:00
|
|
|
|
- ninja rpm-package
|
2021-04-28 15:52:13 +00:00
|
|
|
|
# test:rpm-fedora:
|
2021-05-03 20:22:51 +00:00
|
|
|
|
# extends: .test-rpm
|
2021-04-28 15:52:13 +00:00
|
|
|
|
# image: fedora
|
|
|
|
|
# script:
|
|
|
|
|
# - dnf install -y build/packaging/rpm/RPMS/x86_64/*.rpm
|
|
|
|
|
# - tshark --version
|
|
|
|
|
# needs:
|
|
|
|
|
# - build:rpm-fedora
|
2019-05-10 19:25:54 +00:00
|
|
|
|
|
|
|
|
|
# Job to generate packages for Debian stable
|
|
|
|
|
build:debian-stable:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
extends: .build
|
|
|
|
|
rules: !reference [.if-merged]
|
2020-11-17 01:22:37 +00:00
|
|
|
|
image: wireshark/wireshark-debian-stable-dev
|
2019-05-10 19:25:54 +00:00
|
|
|
|
script:
|
2021-03-12 17:55:04 +00:00
|
|
|
|
- perl tools/make-version.pl --set-release
|
2019-05-10 19:25:54 +00:00
|
|
|
|
# Shared GitLab runners limit the log size to 4M, so reduce verbosity. See
|
|
|
|
|
# https://gitlab.com/gitlab-com/support-forum/issues/2790
|
2021-02-15 02:48:00 +00:00
|
|
|
|
- export DH_QUIET=1
|
|
|
|
|
- export MAKEFLAGS=--silent
|
2020-09-09 20:20:46 +00:00
|
|
|
|
- dpkg-buildpackage -b --no-sign -jauto
|
2019-05-10 19:25:54 +00:00
|
|
|
|
- mkdir debian-packages
|
|
|
|
|
- mv ../*.deb debian-packages/
|
|
|
|
|
artifacts:
|
|
|
|
|
paths:
|
|
|
|
|
- debian-packages/*.deb
|
|
|
|
|
expire_in: 3 days
|
2020-05-31 21:34:00 +00:00
|
|
|
|
test:debian-stable:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
rules: !reference [.if-merged]
|
2020-11-17 01:22:37 +00:00
|
|
|
|
image: wireshark/wireshark-debian-stable-dev
|
2020-05-31 21:34:00 +00:00
|
|
|
|
stage: test
|
|
|
|
|
script:
|
|
|
|
|
- DEBIAN_FRONTEND=noninteractive apt-get install ./debian-packages/*.deb -y
|
|
|
|
|
- tshark --version
|
|
|
|
|
variables:
|
|
|
|
|
GIT_STRATEGY: none
|
2020-12-24 13:11:51 +00:00
|
|
|
|
needs:
|
2020-05-31 21:34:00 +00:00
|
|
|
|
- build:debian-stable
|
2020-08-18 23:00:32 +00:00
|
|
|
|
|
2021-05-04 18:47:33 +00:00
|
|
|
|
# Build the User's Guide and Developer's Guide
|
|
|
|
|
documentation:
|
2020-09-03 15:40:05 +00:00
|
|
|
|
stage: build
|
|
|
|
|
image: wireshark/wireshark-ubuntu-dev
|
|
|
|
|
rules:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/'
|
|
|
|
|
changes:
|
|
|
|
|
- "docbook/**"
|
|
|
|
|
- "epan/wslua/**"
|
|
|
|
|
when: always
|
2021-05-04 18:47:33 +00:00
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "push"'
|
2021-05-02 16:39:21 +00:00
|
|
|
|
when: manual
|
2020-09-03 15:40:05 +00:00
|
|
|
|
script:
|
2021-05-04 18:47:33 +00:00
|
|
|
|
# XXX We might want to move this to wireshark-ubuntu-dev or debian-setup.sh.
|
|
|
|
|
- DEBIAN_FRONTEND=noninteractive apt-get update
|
|
|
|
|
- DEBIAN_FRONTEND=noninteractive apt-get --yes install ruby-coderay ruby-asciidoctor-pdf
|
2020-09-03 15:40:05 +00:00
|
|
|
|
- mkdir build
|
|
|
|
|
- cd build
|
|
|
|
|
- cmake -GNinja ..
|
|
|
|
|
- ninja all_guides
|
2021-05-04 18:47:33 +00:00
|
|
|
|
- cd docbook
|
|
|
|
|
- for HTML_DIR in wsug_html wsug_html_chunked wsdg_html wsdg_html_chunked ; do zip -9 -r "$HTML_DIR.zip" "$HTML_DIR" ; done
|
2020-09-03 15:40:05 +00:00
|
|
|
|
after_script:
|
2021-05-04 18:47:33 +00:00
|
|
|
|
- mv -v build/docbook/ws[ud]g_html{,_chunked}.zip .
|
|
|
|
|
- mv -v build/docbook/{user,developer}-guide.pdf .
|
2021-05-04 20:11:23 +00:00
|
|
|
|
- |
|
|
|
|
|
if [ -n "$AWS_ACCESS_KEY_ID" ] && [ -n "$AWS_SECRET_ACCESS_KEY" ] && [ -n "$S3_DESTINATION_DOCS" ] ; then
|
|
|
|
|
for DOC_FILE in ws[ud]g_html{,_chunked}.zip {user,developer}-guide.pdf ; do
|
|
|
|
|
aws s3 cp "$DOC_FILE" "$S3_DESTINATION_DOCS/"
|
|
|
|
|
done
|
|
|
|
|
fi
|
2020-09-03 15:40:05 +00:00
|
|
|
|
artifacts:
|
|
|
|
|
paths:
|
2021-05-04 18:47:33 +00:00
|
|
|
|
- wsug_html.zip
|
|
|
|
|
- wsug_html_chunked.zip
|
|
|
|
|
- wsdg_html.zip
|
|
|
|
|
- wsdg_html_chunked.zip
|
|
|
|
|
- user-guide.pdf
|
|
|
|
|
- developer-guide.pdf
|
2020-12-24 13:11:51 +00:00
|
|
|
|
needs: []
|
2020-09-03 15:40:05 +00:00
|
|
|
|
|
2020-10-18 03:40:28 +00:00
|
|
|
|
|
2020-08-18 23:00:32 +00:00
|
|
|
|
# https://docs.gitlab.com/ee/user/gitlab_com/index.html#linux-shared-runners
|
2020-09-15 23:55:41 +00:00
|
|
|
|
|
|
|
|
|
merge-req:commit-checks:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
extends: .build-ubuntu
|
|
|
|
|
rules: !reference [.if-merge-request]
|
2020-08-18 23:00:32 +00:00
|
|
|
|
tags:
|
|
|
|
|
- docker
|
|
|
|
|
script:
|
|
|
|
|
# build-ubuntu puts us in `build`.
|
|
|
|
|
- cd ..
|
|
|
|
|
- bash ./tools/pre-commit 'HEAD^1'
|
2020-09-15 23:55:41 +00:00
|
|
|
|
- tools/validate-commit.py
|
|
|
|
|
|
|
|
|
|
merge-req:ubuntu-dpkg:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
extends: .build-ubuntu
|
|
|
|
|
rules: !reference [.if-merge-request]
|
2020-09-15 23:55:41 +00:00
|
|
|
|
tags:
|
|
|
|
|
- docker
|
|
|
|
|
script:
|
|
|
|
|
# build-ubuntu puts us in `build`.
|
|
|
|
|
- cd ..
|
2020-12-10 23:42:48 +00:00
|
|
|
|
- CC=/usr/lib/ccache/gcc CXX=/usr/lib/ccache/g++ MAKE=ninja dpkg-buildpackage -us -uc -rfakeroot -jauto -Zgzip -zfast
|
2020-12-08 19:44:42 +00:00
|
|
|
|
- lintian --suppress-tags library-not-linked-against-libc,copyright-excludes-files-in-native-package --display-experimental --display-info --pedantic --profile debian
|
2020-12-13 23:43:59 +00:00
|
|
|
|
after_script:
|
|
|
|
|
# dpkg-buildpackage builds in obj-<triplet>, so we need to override
|
2020-12-10 23:42:48 +00:00
|
|
|
|
# .build-ubuntu. We also build more stuff, so decrease our multiplier.
|
|
|
|
|
- ccache --max-size $( du --summarize --block-size=1M --total "$CI_PROJECT_DIR"/obj-* | awk '/total$/ {printf ("%dM", $1 * 1.25)}' )
|
2020-08-18 23:00:32 +00:00
|
|
|
|
|
2020-09-15 23:55:41 +00:00
|
|
|
|
merge-req:ubuntu-gcc-ctest:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
extends: .build-ubuntu
|
|
|
|
|
rules: !reference [.if-merge-request]
|
2020-08-18 23:00:32 +00:00
|
|
|
|
tags:
|
|
|
|
|
- docker
|
|
|
|
|
script:
|
|
|
|
|
# build-ubuntu puts us in `build`.
|
2020-09-01 21:41:02 +00:00
|
|
|
|
- CC=gcc CXX=g++ cmake -DENABLE_EXTRA_COMPILER_WARNINGS=on -DCMAKE_EXPORT_COMPILE_COMMANDS=on -DENABLE_CCACHE=ON -G Ninja ..
|
2021-04-12 19:13:02 +00:00
|
|
|
|
- script --command ninja --flush --quiet --return ../gcc_report.txt
|
|
|
|
|
- ansi2html < ../gcc_report.txt > ../gcc_report.html
|
2020-08-18 23:00:32 +00:00
|
|
|
|
- ninja test-programs
|
|
|
|
|
- chown -R user .
|
2020-12-14 00:01:54 +00:00
|
|
|
|
- su user -c "ctest --parallel $(getconf _NPROCESSORS_ONLN) --force-new-ctest-process --verbose"
|
2021-04-12 19:13:02 +00:00
|
|
|
|
artifacts:
|
|
|
|
|
paths:
|
|
|
|
|
- gcc_report.html
|
2020-08-18 23:00:32 +00:00
|
|
|
|
|
2020-09-15 23:55:41 +00:00
|
|
|
|
merge-req:ubuntu-clang-other-tests:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
extends: .build-ubuntu
|
|
|
|
|
rules: !reference [.if-merge-request]
|
2020-08-18 23:00:32 +00:00
|
|
|
|
tags:
|
|
|
|
|
- docker
|
2021-04-30 17:49:11 +00:00
|
|
|
|
variables:
|
2021-04-30 21:06:21 +00:00
|
|
|
|
CC: "clang-$CLANG_VERSION"
|
|
|
|
|
CXX: "clang++-$CLANG_VERSION"
|
2020-08-18 23:00:32 +00:00
|
|
|
|
script:
|
|
|
|
|
# build-ubuntu puts us in `build`.
|
|
|
|
|
- cd ..
|
|
|
|
|
- python3 tools/checklicenses.py
|
2020-08-24 18:47:20 +00:00
|
|
|
|
- ./tools/cppcheck/cppcheck.sh -l 1 -x | tee cppcheck_report.xml
|
2020-12-20 20:04:00 +00:00
|
|
|
|
- ./tools/check_typed_item_calls.py --commits 1 | tee item_calls_check.txt
|
|
|
|
|
- ./tools/check_tfs.py --commits 1 | tee tfs_check.txt
|
2020-08-24 18:47:20 +00:00
|
|
|
|
- if [[ -s "cppcheck_report.xml" ]]; then cppcheck-htmlreport --file cppcheck_report.xml --report-dir . ; fi
|
2020-08-18 23:00:32 +00:00
|
|
|
|
- cd build
|
2020-09-01 21:41:02 +00:00
|
|
|
|
- cmake -DENABLE_EXTRA_COMPILER_WARNINGS=on -DENABLE_CHECKHF_CONFLICT=on -DCMAKE_EXPORT_COMPILE_COMMANDS=on -DENABLE_CCACHE=ON -G Ninja ..
|
2021-04-12 19:13:02 +00:00
|
|
|
|
- script --command ninja --flush --quiet --return ../clang_report.txt
|
|
|
|
|
- ansi2html < ../clang_report.txt > ../clang_report.html
|
2020-08-18 23:00:32 +00:00
|
|
|
|
- ./run/tshark -v
|
2021-04-30 21:06:21 +00:00
|
|
|
|
- ../tools/validate-clang-check.sh -c $CLANG_VERSION
|
2020-08-18 23:00:32 +00:00
|
|
|
|
- ninja checkAPI
|
2020-08-24 18:47:20 +00:00
|
|
|
|
artifacts:
|
|
|
|
|
paths:
|
2021-04-12 19:13:02 +00:00
|
|
|
|
- clang_report.html
|
2020-10-27 17:09:40 +00:00
|
|
|
|
- cppcheck_report.html
|
2021-04-12 19:13:02 +00:00
|
|
|
|
- cppcheck_report.xml
|
2020-12-20 20:04:00 +00:00
|
|
|
|
- item_calls_check.txt
|
|
|
|
|
- tfs_check.txt
|
2020-08-18 23:00:32 +00:00
|
|
|
|
|
2021-04-05 18:35:23 +00:00
|
|
|
|
# Windows runners are still beta, at least technically:
|
2020-08-18 23:00:32 +00:00
|
|
|
|
# https://docs.gitlab.com/ee/user/gitlab_com/index.html#windows-shared-runners-beta
|
2020-09-15 23:55:41 +00:00
|
|
|
|
merge-req:windows:
|
2021-05-02 16:39:21 +00:00
|
|
|
|
extends: .build-windows
|
|
|
|
|
rules: !reference [.if-attached-merge-request]
|
2020-08-18 23:00:32 +00:00
|
|
|
|
tags:
|
2021-04-04 20:28:16 +00:00
|
|
|
|
- wireshark-windows-merge-req
|
2020-08-18 23:00:32 +00:00
|
|
|
|
script:
|
2020-12-12 23:29:05 +00:00
|
|
|
|
- cmake -G "Visual Studio 16 2019" -A x64 -DENABLE_LTO=off ..
|
2021-04-04 21:30:15 +00:00
|
|
|
|
- msbuild /verbosity:minimal "/consoleloggerparameters:PerformanceSummary;NoSummary" /maxcpucount Wireshark.sln
|
|
|
|
|
- msbuild /verbosity:minimal test-programs.vcxproj
|
2020-08-18 23:00:32 +00:00
|
|
|
|
- ctest -C RelWithDebInfo --parallel 3 --force-new-ctest-process --verbose
|
2021-04-29 19:10:51 +00:00
|
|
|
|
|
|
|
|
|
# Adapted from https://www.synopsys.com/blogs/software-security/integrating-coverity-scan-with-gitlab-ci/
|
|
|
|
|
# and https://gitlab.gnome.org/GNOME/glib/-/blob/8f57a5b9/.gitlab-ci.yml#L481
|
|
|
|
|
coverity-gcc:
|
|
|
|
|
image: wireshark/wireshark-ubuntu-dev
|
2021-05-01 01:13:01 +00:00
|
|
|
|
rules:
|
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "coverity-gcc"'
|
|
|
|
|
when: always
|
2021-04-29 19:10:51 +00:00
|
|
|
|
stage: analysis
|
|
|
|
|
needs: []
|
|
|
|
|
variables:
|
|
|
|
|
CC: gcc
|
|
|
|
|
CXX: g++
|
|
|
|
|
# cov-build doesn’t handle GLIB_DEPRECATED_ENUMERATOR
|
|
|
|
|
CFLAGS: '-DGLIB_DISABLE_DEPRECATION_WARNINGS'
|
|
|
|
|
CXXFLAGS: '-DGLIB_DISABLE_DEPRECATION_WARNINGS'
|
|
|
|
|
script:
|
2021-04-30 00:36:52 +00:00
|
|
|
|
- curl --output /tmp/cov-analysis-linux64.tar.gz --form project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN https://scan.coverity.com/download/linux64
|
2021-04-29 19:10:51 +00:00
|
|
|
|
- tar --directory=/tmp --extract --gzip --file /tmp/cov-analysis-linux64.tar.gz
|
|
|
|
|
- mkdir build
|
|
|
|
|
- cd build
|
|
|
|
|
- cmake -G Ninja ..
|
2021-05-03 01:32:12 +00:00
|
|
|
|
- /tmp/cov-analysis-linux64-*/bin/cov-build --return-emit-failures --dir ../cov-int ninja
|
|
|
|
|
- cd ..
|
2021-04-29 19:10:51 +00:00
|
|
|
|
- tar --create --gzip --file cov-int.tar.gz cov-int
|
2021-04-30 19:18:23 +00:00
|
|
|
|
# - curl --form file=@cov-int.tar.gz --form token=$COVERITY_SCAN_TOKEN --form email=$GITLAB_USER_EMAIL --form description="Ubuntu $( git describe --tags ) $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID" --form version=$( git describe --tags ) https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME
|
2021-05-03 15:38:16 +00:00
|
|
|
|
- echo "export ARTIFACT_JOB_URL=$CI_JOB_URL" > job_environment_variables.sh
|
|
|
|
|
- echo "export GIT_DESCRIPTION=$( git describe --tags )" >> job_environment_variables.sh
|
2021-04-30 19:18:23 +00:00
|
|
|
|
artifacts:
|
|
|
|
|
paths:
|
2021-05-03 01:32:12 +00:00
|
|
|
|
- cov-int.tar.gz
|
2021-05-03 15:38:16 +00:00
|
|
|
|
- job_environment_variables.sh
|
2021-05-03 01:32:12 +00:00
|
|
|
|
coverity-gcc-submit:
|
|
|
|
|
image: curlimages/curl
|
|
|
|
|
rules:
|
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "coverity-gcc"'
|
|
|
|
|
when: always
|
|
|
|
|
stage: .post
|
|
|
|
|
script:
|
2021-05-03 15:38:16 +00:00
|
|
|
|
- . job_environment_variables.sh
|
|
|
|
|
- echo $ARTIFACT_JOB_URL
|
|
|
|
|
- echo $GIT_DESCRIPTION
|
2021-05-03 16:46:18 +00:00
|
|
|
|
- curl --fail --data "project=$COVERITY_SCAN_PROJECT_NAME&token=$COVERITY_SCAN_TOKEN&email=$GITLAB_USER_EMAIL&url=$ARTIFACT_JOB_URL/artifacts/raw/cov-int.tar.gz&version=$GIT_DESCRIPTION&description=Ubuntu $GIT_DESCRIPTION $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID" https://scan.coverity.com/builds
|
2021-05-03 01:32:12 +00:00
|
|
|
|
needs:
|
|
|
|
|
- coverity-gcc
|
2021-04-29 20:55:35 +00:00
|
|
|
|
|
|
|
|
|
coverity-visual-c++:
|
|
|
|
|
extends: .build-windows
|
2021-05-01 01:13:01 +00:00
|
|
|
|
rules:
|
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "coverity-visual-c++"'
|
|
|
|
|
when: always
|
2021-04-29 20:55:35 +00:00
|
|
|
|
tags:
|
|
|
|
|
- wireshark-windows-merge-req
|
|
|
|
|
stage: analysis
|
|
|
|
|
needs: []
|
|
|
|
|
script:
|
|
|
|
|
- $gitDescription = (( git describe --tags ) | Out-String).Trim()
|
2021-04-30 01:50:51 +00:00
|
|
|
|
- C:\Windows\System32\curl --output $env:temp\cov-analysis-win64.zip --form project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN https://scan.coverity.com/download/win64
|
2021-04-29 20:55:35 +00:00
|
|
|
|
- C:\ProgramData\chocolatey\tools\7z x "$env:temp\cov-analysis-win64.zip" -y -r -o"$env:temp"
|
|
|
|
|
- cmake -DTEST_EXTRA_ARGS=--enable-release -DENABLE_LTO=off -G "Visual Studio 16 2019" -A x64 ..
|
|
|
|
|
- $covAnalysisWin64 = (Get-ChildItem -Path $env:temp -Filter "cov-analysis-win64-*" -Directory)[0].FullName
|
2021-05-03 01:32:12 +00:00
|
|
|
|
- Invoke-Expression "& $covAnalysisWin64\bin\cov-build.exe --return-emit-failures --dir ..\cov-int msbuild /verbosity:minimal `"/consoleloggerparameters:PerformanceSummary;NoSummary`" /maxcpucount:1 Wireshark.sln"
|
|
|
|
|
- cd ..
|
2021-04-29 20:55:35 +00:00
|
|
|
|
- C:\ProgramData\chocolatey\tools\7z a -tzip cov-int.zip cov-int
|
2021-04-30 19:18:23 +00:00
|
|
|
|
# - C:\Windows\System32\curl --form file=@cov-int.zip --form token=$COVERITY_SCAN_TOKEN--form email=$GITLAB_USER_EMAIL --form description="Windows $gitDescription $env:CI_COMMIT_REF_NAME`:$env:CI_PIPELINE_ID" --form version=$gitDescription https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME
|
2021-05-03 15:38:16 +00:00
|
|
|
|
- '"export ARTIFACT_JOB_URL=$env:CI_JOB_URL" | Out-File -Encoding ascii job_environment_variables.sh'
|
|
|
|
|
- '"export GIT_DESCRIPTION=$gitDescription" | Out-File -Encoding ascii -Append job_environment_variables.sh'
|
2021-04-30 19:18:23 +00:00
|
|
|
|
artifacts:
|
|
|
|
|
paths:
|
2021-05-03 03:28:50 +00:00
|
|
|
|
- cov-int.zip
|
2021-05-03 15:38:16 +00:00
|
|
|
|
- job_environment_variables.sh
|
2021-05-03 01:32:12 +00:00
|
|
|
|
coverity-visual-c++-submit:
|
|
|
|
|
image: curlimages/curl
|
|
|
|
|
rules:
|
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "coverity-visual-c++"'
|
|
|
|
|
when: always
|
|
|
|
|
stage: .post
|
|
|
|
|
script:
|
2021-05-03 15:38:16 +00:00
|
|
|
|
- sed -i -e 's/\r//' job_environment_variables.sh
|
|
|
|
|
- . job_environment_variables.sh
|
|
|
|
|
- echo $ARTIFACT_JOB_URL
|
|
|
|
|
- echo $GIT_DESCRIPTION
|
2021-05-03 16:46:18 +00:00
|
|
|
|
- curl --fail --data "project=$COVERITY_SCAN_PROJECT_NAME&token=$COVERITY_SCAN_TOKEN&email=$GITLAB_USER_EMAIL&url=$ARTIFACT_JOB_URL/artifacts/raw/cov-int.zip&version=$GIT_DESCRIPTION&description=Windows $GIT_DESCRIPTION $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID" https://scan.coverity.com/builds
|
2021-05-03 01:32:12 +00:00
|
|
|
|
needs:
|
|
|
|
|
- coverity-visual-c++
|
2021-04-30 00:33:48 +00:00
|
|
|
|
|
|
|
|
|
clang-scan-build:
|
|
|
|
|
image: wireshark/wireshark-ubuntu-dev
|
2021-05-02 16:39:21 +00:00
|
|
|
|
rules: !reference [.if-daily-schedule]
|
2021-04-30 00:33:48 +00:00
|
|
|
|
stage: analysis
|
|
|
|
|
needs: []
|
|
|
|
|
variables:
|
|
|
|
|
CC: "clang-${CLANG_VERSION}"
|
|
|
|
|
CXX: "clang++-${CLANG_VERSION}"
|
|
|
|
|
script:
|
|
|
|
|
- mkdir build
|
|
|
|
|
- cd build
|
|
|
|
|
- scan-build-${CLANG_VERSION} cmake -DCMAKE_BUILD_TYPE=Debug -DDISABLE_WERROR=ON -G Ninja ..
|
|
|
|
|
- scan-build-${CLANG_VERSION} -o ../sbout ninja
|
|
|
|
|
- cd ../sbout
|
|
|
|
|
- RAW_DIR=$( find ../sbout -type d -name "20??-??-??-*" -printf "%P\n" | head )
|
|
|
|
|
- SB_DIR="scan-build-$RAW_DIR"
|
|
|
|
|
- mv "$RAW_DIR" "$SB_DIR"
|
|
|
|
|
- if [ -d logs ] ; then mv logs $SB_DIR ; fi
|
|
|
|
|
- chmod -R u=rwX,go=rX "$SB_DIR"
|
|
|
|
|
- zip -9 -r "${SB_DIR}.zip" "$SB_DIR"
|
|
|
|
|
- if [ -n "$AWS_ACCESS_KEY_ID" ] && [ -n "$AWS_SECRET_ACCESS_KEY" ] && [ -n "$S3_DESTINATION_ANALYSIS" ] ; then aws s3 cp "${SB_DIR}.zip" "$S3_DESTINATION_ANALYSIS/" ; fi
|
2021-04-30 15:56:29 +00:00
|
|
|
|
|
|
|
|
|
# Windows runners are still beta, at least technically:
|
|
|
|
|
# https://docs.gitlab.com/ee/user/gitlab_com/index.html#windows-shared-runners-beta
|
|
|
|
|
build:windows-vs-code-analysis:
|
|
|
|
|
extends: .build-windows
|
|
|
|
|
tags:
|
|
|
|
|
- wireshark-windows-dev
|
|
|
|
|
rules:
|
|
|
|
|
# The wireshark-windows-* tags are only available in wireshark/wireshark.
|
2021-05-01 01:13:01 +00:00
|
|
|
|
- if: '$CI_PIPELINE_SOURCE == "schedule" && $SCHEDULE_TYPE == "daily" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/'
|
2021-04-30 15:56:29 +00:00
|
|
|
|
when: always
|
|
|
|
|
script:
|
|
|
|
|
- $env:caexcludepath = "C:\Qt;$env:INCLUDE"
|
|
|
|
|
- cmake -DENABLE_CODE_ANALYSIS=ON -G "Visual Studio 16 2019" -A x64 -DENABLE_LTO=off ..
|
|
|
|
|
- msbuild /verbosity:minimal "/consoleloggerparameters:PerformanceSummary;NoSummary" /maxcpucount:2 Wireshark.sln
|
2021-04-30 17:11:29 +00:00
|
|
|
|
|
2021-05-03 17:34:31 +00:00
|
|
|
|
# Build all doxygen docs
|
|
|
|
|
doxygen_all:
|
|
|
|
|
image: wireshark/wireshark-ubuntu-dev
|
|
|
|
|
rules: !reference [.if-daily-schedule]
|
|
|
|
|
stage: build
|
|
|
|
|
script:
|
|
|
|
|
- mkdir build
|
|
|
|
|
- cd build
|
|
|
|
|
- cmake -GNinja ..
|
|
|
|
|
- ninja wsar_html_zip 2>&1 > doxygen_output.txt | tee doxygen_errors.txt
|
|
|
|
|
after_script:
|
2021-05-04 21:06:57 +00:00
|
|
|
|
- mv build/wsar_html.zip .
|
2021-05-03 17:34:31 +00:00
|
|
|
|
- mv build/doxygen_output.txt .
|
|
|
|
|
- mv build/doxygen_errors.txt .
|
2021-05-04 21:06:57 +00:00
|
|
|
|
- |
|
|
|
|
|
if [ -n "$AWS_ACCESS_KEY_ID" ] && [ -n "$AWS_SECRET_ACCESS_KEY" ] && [ -n "$S3_DESTINATION_DOCS" ] ; then
|
|
|
|
|
aws s3 cp wsar_html.zip "$S3_DESTINATION_DOCS/"
|
|
|
|
|
fi
|
2021-05-03 17:34:31 +00:00
|
|
|
|
artifacts:
|
|
|
|
|
when: always
|
|
|
|
|
paths:
|
|
|
|
|
- doxygen_errors.txt
|
|
|
|
|
- doxygen_output.txt
|
|
|
|
|
- wsar_html.zip
|
|
|
|
|
needs: []
|
|
|
|
|
|
2021-04-30 17:11:29 +00:00
|
|
|
|
sloccount:
|
2021-05-01 01:13:01 +00:00
|
|
|
|
extends: .build-ubuntu
|
2021-05-02 16:39:21 +00:00
|
|
|
|
rules: !reference [.if-daily-schedule]
|
2021-04-30 17:11:29 +00:00
|
|
|
|
stage: analysis
|
|
|
|
|
variables:
|
|
|
|
|
SLOC_OUT: sloccount.txt
|
|
|
|
|
script:
|
|
|
|
|
- cmake -G Ninja ..
|
|
|
|
|
- ninja
|
|
|
|
|
- cd ..
|
|
|
|
|
- echo -n "SLOCCount version:\ "
|
|
|
|
|
- sloccount --version
|
|
|
|
|
- sloccount . | awk "/^Computing results/ { results=1 } { if (results) print }" > $SLOC_OUT
|
|
|
|
|
- cat $SLOC_OUT
|
|
|
|
|
- if [ -n "$AWS_ACCESS_KEY_ID" ] && [ -n "$AWS_SECRET_ACCESS_KEY" ] && [ -n "$S3_DESTINATION_ANALYSIS" ] ; then aws s3 cp "$SLOC_OUT" "$S3_DESTINATION_ANALYSIS/" ; fi
|
2021-05-04 19:22:32 +00:00
|
|
|
|
|
|
|
|
|
fuzz-test:
|
|
|
|
|
extends: .build-ubuntu
|
|
|
|
|
rules: !reference [.if-fuzz-schedule]
|
2021-05-05 22:44:14 +00:00
|
|
|
|
tags:
|
|
|
|
|
- wireshark-ubuntu-fuzz
|
2021-05-04 19:22:32 +00:00
|
|
|
|
stage: test
|
|
|
|
|
resource_group: fuzz-master
|
|
|
|
|
variables:
|
|
|
|
|
MIN_PLUGINS: 10
|
|
|
|
|
MAX_PASSES: 5
|
|
|
|
|
script:
|
|
|
|
|
- mkdir /tmp/fuzz
|
2021-05-05 22:44:14 +00:00
|
|
|
|
- JOB_START_SECS=$( date -d "$CI_JOB_STARTED_AT" +%s )
|
|
|
|
|
- cmake -G Ninja -DBUILD_wireshark=OFF -DCMAKE_BUILD_TYPE=Debug -DENABLE_ASAN=ON -DCMAKE_INSTALL_PREFIX=$CI_PROJECT_DIR/install.asan ..
|
2021-05-04 19:22:32 +00:00
|
|
|
|
- ninja
|
2021-05-05 22:44:14 +00:00
|
|
|
|
- ninja install
|
|
|
|
|
# Run for 4 hours - build time - slop
|
|
|
|
|
- MAX_SECONDS=$(( 14400 - ( $( date +%s ) - $JOB_START_SECS ) - 300 ))
|
2021-05-04 19:22:32 +00:00
|
|
|
|
- cd ..
|
|
|
|
|
- FUZZ_PASSED=false
|
2021-05-05 22:44:14 +00:00
|
|
|
|
- ./tools/fuzz-test.sh -a -2 -P $MIN_PLUGINS -b $CI_PROJECT_DIR/install.asan -d /tmp/fuzz -t $MAX_SECONDS $( shuf -e /var/menagerie/*/* ) 2> fuzz-test.err && FUZZ_PASSED=true
|
2021-05-04 19:22:32 +00:00
|
|
|
|
- if $FUZZ_PASSED ; then exit 0 ; fi
|
2021-05-05 22:44:14 +00:00
|
|
|
|
- echo Fuzzing failed. Generating report.
|
|
|
|
|
- FUZZ_CAPTURE=$( ls /tmp/fuzz/fuzz-*.pcap | head -n 1 )
|
|
|
|
|
- FUZZ_ERRORS="/tmp/fuzz/$( basename "$FUZZ_CAPTURE" .pcap ).err"
|
|
|
|
|
- printf "\nfuzz-test.sh stderr:\n"
|
|
|
|
|
- cat fuzz-test.err >> "$FUZZ_ERRORS"
|
|
|
|
|
- |
|
|
|
|
|
if [ -n "$AWS_ACCESS_KEY_ID" ] && [ -n "$AWS_SECRET_ACCESS_KEY" ] && [ -n "$S3_DESTINATION_FUZZ" ] ; then
|
|
|
|
|
aws s3 cp "$FUZZ_CAPTURE" "$S3_DESTINATION_FUZZ/"
|
|
|
|
|
aws s3 cp "$FUZZ_ERRORS" "$S3_DESTINATION_FUZZ/"
|
|
|
|
|
fi
|