diff options
Diffstat (limited to '')
-rw-r--r-- | .gitlab-ci.yml | 369 |
1 files changed, 224 insertions, 145 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 67a5e645..3425b20f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -23,7 +23,12 @@ variables: GIT_FETCH_EXTRA_FLAGS: "--depth=5000" CCACHE_DIR: "${CI_PROJECT_DIR}/ccache" # Preferred version of clang available on wireshark-ubuntu-dev - CLANG_VERSION: "17" + CLANG_VERSION: "18" + # The Qt versions that we ship in our offical installers. Must match + # windows-qt6-lts-version and macos-qt6-lts-version in + # doc/wsdg_src/developer-guide.adoc in master. + WINDOWS_QT6_LTS_VERSION: "6.5.3" + MACOS_QT6_LTS_VERSION: "6.5.3" # Enable color output in various tools. # CMake, Ninja, and others: https://bixense.com/clicolors/ CLICOLOR_FORCE: "1" @@ -34,6 +39,12 @@ variables: # Skip irrelevant SAST scanners: SAST_EXCLUDED_ANALYZERS: "brakeman,eslint,security-code-scan,semgrep,spotbugs" +workflow: + auto_cancel: + # Automatically cancel pipelines if new changes are pushed to a branch + # and the job is interruptible. Jobs are not interruptible by default. + on_new_commit: interruptible + # Scheduled builds additionally set SCHEDULE_TYPE, which can be one of: # - daily: Daily at 10:00 UTC # - weekly: Sunday at 14:00 UTC @@ -47,11 +58,12 @@ variables: # Commits that have been approved and merged. Run automatically in the main # repo and allow manual runs in the web UI and in forks. +# Release builds: CI_PIPELINE_SOURCE=api .if-merged: - # Regular commits: CI_PIPELINE_SOURCE=push, CI_COMMIT_BRANCH=release-4.2 - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "release-4.2" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/' + # Regular commits: CI_PIPELINE_SOURCE=push, CI_COMMIT_BRANCH=release-4.4 + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "release-4.4" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/' # "Run pipeline" button commits, cherry picks - - if: '$CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_BRANCH == "release-4.2" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/' + - if: '$CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_BRANCH == "release-4.4" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/' # Tagged release builds: CI_PIPELINE_SOURCE=api (should be "web"?) - if: '$CI_PIPELINE_SOURCE == "api"' - if: '$CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_URL !~ /.*gitlab.com\/wireshark\/wireshark/' @@ -60,16 +72,18 @@ variables: # wireshark/wireshark, e.g. wireshark-windows-*. Run automatically in # the main repo and allow manual runs in the web UI. .if-w-w-only-merged: - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "release-4.2" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/' - - if: '$CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_BRANCH == "release-4.2" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "release-4.4" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/' + - if: '$CI_PIPELINE_SOURCE == "web" && $CI_COMMIT_BRANCH == "release-4.4" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/' - if: '$CI_PIPELINE_SOURCE == "api"' # Incoming merge requests. .if-merge-request: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + interruptible: true # Incoming non-detached merge requests. Must be used for runners which are only # available in wireshark/wireshark, e.g. wireshark-windows-* .if-w-w-only-merge-request: - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/' + interruptible: true # Scheduled jobs. Care should be taken when changing this since the scheduler # often doesn't report errors. .if-daily-schedule: @@ -107,7 +121,7 @@ variables: # 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}-release-4.2 + key: ${CI_JOB_NAME}-release-4.4 paths: - ccache/ before_script: @@ -122,7 +136,7 @@ variables: - export DEB_BUILD_OPTIONS="nocheck parallel=$(( $(getconf _NPROCESSORS_ONLN) + 2 ))" - export DH_QUIET=1 - export MAKEFLAGS=--silent - - NUM_COMMITS=$(curl $CI_API_V4_URL/projects/$CI_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/commits | jq length) + - NUM_COMMITS=$(curl --silent $CI_API_V4_URL/projects/$CI_MERGE_REQUEST_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/commits | jq length) - echo "$NUM_COMMITS commit(s) in this MR" - mkdir build - cd build @@ -136,7 +150,8 @@ variables: 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)}' ) + - cd "$CI_PROJECT_DIR" + - ccache --max-size $( du --total --summarize --block-size=1M *build*/ | awk 'END {printf ("%dM", $1 * 1.5)}' ) .build-rpm: extends: .build-linux @@ -169,7 +184,7 @@ variables: - $env:WIRESHARK_BASE_DIR = "C:\Development" - $env:Configuration = "RelWithDebInfo" - $env:Path += ";C:\Program Files\CMake\bin" - - $env:CMAKE_PREFIX_PATH = "C:\qt\6.5.3\msvc2019_64" + - $env:CMAKE_PREFIX_PATH = "C:\qt\$($env:WINDOWS_QT6_LTS_VERSION)\msvc2019_64" # https://help.appveyor.com/discussions/questions/18777-how-to-use-vcvars64bat-from-powershell - cmd.exe /c "call `"C:\Program Files\Microsoft Visual Studio\2022\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] } } @@ -191,15 +206,15 @@ variables: # https://gitlab.com/gitlab-org/ci-cd/shared-runners/images/macstadium/orka/-/blob/main/toolchain/monterey.yml .build-macos: stage: build - tags: [ saas-macos-medium-m1 ] - image: macos-12-xcode-14 # https://docs.gitlab.com/ee/ci/runners/saas/macos/environment.html + tags: [ saas-macos-medium-m1 ] # https://docs.gitlab.com/ee/ci/runners/saas/macos/environment.html retry: 1 # https://gould.cx/ted/blog/2017/06/10/ccache-for-Gitlab-CI/ cache: - key: ${CI_JOB_NAME}-release-4.2 + key: ${CI_JOB_NAME}-release-4.4 paths: - ccache/ variables: + HOMEBREW_NO_AUTO_UPDATE: "1" HOMEBREW_DISPLAY_INSTALL_TIMES: "1" HOMEBREW_NO_INSTALL_CLEANUP: "1" HOMEBREW_NO_INSTALL_UPGRADE: "1" @@ -209,25 +224,16 @@ variables: - printf "\e[0Ksection_start:%s:ci_env_section[collapsed=true]\r\e[0KCI environment variables" "$(date +%s)" - env | grep ^CI | sort - printf "\e[0Ksection_end:%s:ci_env_section\r\e[0K" "$(date +%s)" - # At the time of this writing (January 2023), the macOS SaaS builder has the following PATH: - # /Users/gitlab/.asdf/shims:/Users/gitlab/.asdf/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin - # The suite_clopts.case_tshark_extcap.test_tshark_extcap_interfaces test will fail because - # it sets an alternate HOME, which results in asdf returning - # unknown command: python3. Perhaps you have to reshim? - # Make sure /usr/local/bin is first in order to work around asdf. - - export PATH=/usr/local/bin:$PATH:$HOME/.python-env/bin - brew --version - printf "\e[0Ksection_start:%s:brew_section[collapsed=true]\r\e[0KInstalling prerequisites" "$( date +%s)" - ./tools/macos-setup-brew.sh --install-optional --install-test-deps - printf "\e[0Ksection_end:%s:brew_section\r\e[0K" "$( date +%s)" - # Homebrew implemented PEP 668, so install Python packages using venv for now. - - python3 -m venv $HOME/.python-env - - $HOME/.python-env/bin/pip3 install pytest pytest-xdist + - python3 -m venv $CI_PROJECT_DIR/.venv + - source $CI_PROJECT_DIR/.venv/bin/activate + - pip3 install pytest pytest-xdist - export PYTEST_ADDOPTS=--skip-missing-programs=dumpcap,rawshark - mkdir -p ccache - ccache --show-stats - - NUM_COMMITS=$(curl $CI_API_V4_URL/projects/$CI_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/commits | jq length) - - echo "$NUM_COMMITS commit(s) in this MR" - mkdir build - cd build script: @@ -243,9 +249,37 @@ variables: - ccache --max-size $( gdu --summarize --block-size=1M "$CI_PROJECT_DIR/build" | awk '{printf ("%dM", $1 * 1.5)}' ) needs: [] +.build-mingw: + stage: build + image: registry.gitlab.com/wireshark/wireshark-containers/mingw-dev + tags: + - saas-linux-small-amd64 + cache: + # XXX Use ${CI_JOB_NAME}-${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} instead? + key: ${CI_JOB_NAME}-release-4.4 + paths: + - ccache/ + before_script: + - printf "\e[0Ksection_start:%s:ci_env_section[collapsed=true]\r\e[0KCI environment variables" "$(date +%s)" + - env | grep ^CI | sort + - printf "\e[0Ksection_end:%s:ci_env_section\r\e[0K" "$(date +%s)" + - mkdir -p ccache + - ccache --show-stats + - mkdir build + - cd build + script: + - mingw64-cmake -G Ninja -DENABLE_CCACHE=Yes -DFETCH_lua=Yes .. + - ninja + 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)}' ) + needs: [] + Source Package: extends: .build-ubuntu stage: .pre + rules: rules: !reference [.if-merged] script: - ../tools/make-version.py --set-release --version-file=wireshark_version.txt .. @@ -263,15 +297,11 @@ Source Package: after_script: # - ccache --max-size $( du --summarize --block-size=1M "$CI_PROJECT_DIR/build" | awk '{printf ("%dM", $1 * 1.5)}' ) - if [ "$CI_JOB_STATUS" != "success" ]; then exit 0 ; fi + - if [ -n "$SCHEDULE_TYPE" ] ; then exit 0 ; fi - stat --format="%n %s bytes" wireshark-*.tar.* - for digest in sha512 sha256 sha1 ; do openssl $digest wireshark-*.tar.* ; done - # This will break if we produce multiple tarballs, which is arguably a good thing. - - if [ -n "$S3_DESTINATION_DIST" ] ; then aws s3 cp wireshark-*.tar.* "$S3_DESTINATION_DIST/" ; fi - - | - if [ -n "$S3_DESTINATION_RELEASE" ] ; then - aws s3 cp release-notes-*.txt "$S3_DESTINATION_RELEASE/" - aws s3 cp release-notes-*.html "$S3_DESTINATION_RELEASE/" - fi + - if [ -n "$MC_DESTINATION_DIST" ] ; then mc --quiet cp wireshark-*.tar.* "$MC_DESTINATION_DIST/" ; fi + - if [ -n "$MC_DESTINATION_RELEASE" ] ; then mc --quiet cp release-notes-*.{txt,html} "$MC_DESTINATION_RELEASE/" ; fi artifacts: paths: - wireshark-*.tar.* @@ -291,11 +321,11 @@ Debian Stable APT Package: - export DEB_BUILD_OPTIONS="nocheck parallel=$(( $(getconf _NPROCESSORS_ONLN) + 2 ))" - export DH_QUIET=1 - export MAKEFLAGS=--silent - # We're just here to build a package. - - export DPKG_GENSYMBOLS_CHECK_LEVEL=0 - CC=/usr/lib/ccache/gcc CXX=/usr/lib/ccache/g++ dpkg-buildpackage -b --no-sign -jauto -zfast + # Please don't add a Lintian step unless you can guarantee that someone + # will fix any breakages that invariably pop up. - mkdir debian-packages - - mv ../*.deb debian-packages/ + - mv -v ../*.deb debian-packages/ artifacts: paths: - debian-packages/*.deb @@ -313,10 +343,7 @@ Debian Stable APT Test: # Used for https://www.wireshark.org/docs/dfref/ - TSHARK_VERSION=$( tshark --version | head -n 1 | sed -e 's/.*(v//' -e 's/)\.*$//' -e 's/-0-g.*//' ) - tshark -G fields > dfilter-list-${TSHARK_VERSION}.txt - - if [[ -n "$S3_DESTINATION_RELEASE" ]] ; then aws s3 cp dfilter-list-${TSHARK_VERSION}.txt "$S3_DESTINATION_RELEASE/" ; fi - artifacts: - paths: - - dfilter-list-*.txt + - if [[ -n "$MC_DESTINATION_RELEASE" ]] ; then mc --quiet cp dfilter-list-${TSHARK_VERSION}.txt "$MC_DESTINATION_RELEASE/" ; fi variables: GIT_STRATEGY: none needs: [ 'Debian Stable APT Package' ] @@ -341,38 +368,6 @@ Fedora RPM Package: # - tshark --version # needs: [ 'Fedora RPM Package' ] -Windows MinGW-w64 Package: - stage: build - image: registry.gitlab.com/wireshark/wireshark-containers/mingw-dev - rules: !reference [.if-merged] - tags: - - saas-linux-small-amd64 - cache: - # XXX Use ${CI_JOB_NAME}-${CI_MERGE_REQUEST_TARGET_BRANCH_NAME} instead? - key: ${CI_JOB_NAME}-release-4.2 - paths: - - ccache/ - before_script: - - mkdir -p ccache - - ccache --show-stats - - mkdir build - - cd build - script: - - mingw64-cmake -G Ninja -DENABLE_CCACHE=Yes -DFETCH_lua=Yes .. - - ninja - - ninja user_guide_html - - ninja wireshark_nsis_prep - - ninja wireshark_nsis - 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)}' ) - artifacts: - paths: - - build/packaging/nsis/wireshark-*.exe - expire_in: 3 days - needs: [] - openSUSE 15.5 RPM Package: extends: .build-rpm image: registry.gitlab.com/wireshark/wireshark-containers/opensuse-15.5-dev @@ -414,9 +409,9 @@ Ubuntu APT Package: # build-ubuntu puts us in `build`. - cd .. - ln --symbolic --no-dereference --force packaging/debian - # We're just here to build a package. - - export DPKG_GENSYMBOLS_CHECK_LEVEL=0 - CC=/usr/lib/ccache/gcc CXX=/usr/lib/ccache/g++ MAKE=ninja dpkg-buildpackage -us -uc -rfakeroot -jauto -zfast + # Please don't add a Lintian step unless you can guarantee that someone + # will fix any breakages that invariably pop up. - mkdir ubuntu-packages - mv ../*.deb ubuntu-packages/ after_script: @@ -448,7 +443,7 @@ Windows x64 Package: before_script: - $env:WIRESHARK_BASE_DIR = "C:\Development" - $env:Configuration = "RelWithDebInfo" - - $env:CMAKE_PREFIX_PATH = "C:\Qt\6.5.3\msvc2019_64" + - $env:CMAKE_PREFIX_PATH = "C:\Qt\$($env:WINDOWS_QT6_LTS_VERSION)\msvc2019_64" # https://help.appveyor.com/discussions/questions/18777-how-to-use-vcvars64bat-from-powershell - cmd.exe /c "call `"C:\Program Files\Microsoft Visual Studio\2022\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] } } @@ -456,22 +451,25 @@ Windows x64 Package: - cd build script: - C:\Windows\py.exe ..\tools\make-version.py --set-release --version-file=wireshark_version.txt .. - - cmake -G "Visual Studio 17 2022" -A x64 -DENABLE_WERROR=ON -DENABLE_LTO=off -DENABLE_SIGNED_NSIS=on .. + - cmake -G "Visual Studio 17 2022" -A x64 -DENABLE_WERROR=ON -DENABLE_LTO=off -DBUILD_logray=on -DBUILD_falcodump=on -DENABLE_SIGNED_NSIS=on .. - msbuild /verbosity:minimal "/consoleloggerparameters:PerformanceSummary;NoSummary" /maxcpucount Wireshark.sln - msbuild /verbosity:minimal /maxcpucount test-programs.vcxproj - msbuild /verbosity:minimal /maxcpucount wireshark_nsis_prep.vcxproj + - msbuild /verbosity:minimal /maxcpucount logray_nsis_prep.vcxproj - msbuild /verbosity:minimal /maxcpucount wireshark_wix_prep.vcxproj - C:\gitlab-builds\bin\sign-files.ps1 -Recurse -Path run\RelWithDebInfo - msbuild /verbosity:minimal wireshark_nsis.vcxproj + - msbuild /verbosity:minimal logray_nsis.vcxproj # No need for explicit signing of NSIS installer here. The signing is done by makensis. - msbuild /verbosity:minimal wireshark_wix.vcxproj - C:\gitlab-builds\bin\sign-files.ps1 -Path packaging\wix\Wireshark-*.msi - msbuild /verbosity:minimal wireshark_portableapps.vcxproj - C:\gitlab-builds\bin\sign-files.ps1 -Path packaging\portableapps\WiresharkPortable*.exe - - $plugins = Get-ChildItem run\RelWithDebInfo\plugins\*\*.dll ; signtool verify /q /pa /all run\RelWithDebInfo\*.exe run\RelWithDebInfo\extcap\*.exe $plugins run\RelWithDebInfo\libwireshark.dll run\RelWithDebInfo\libwiretap.dll run\RelWithDebInfo\libwsutil.dll packaging\nsis\Wireshark-*-x64.exe packaging\wix\Wireshark-*-x64.msi packaging\portableapps\WiresharkPortable??_*.paf.exe + - $plugins = Get-ChildItem run\RelWithDebInfo\plugins\*\*.dll ; signtool verify /q /pa /all run\RelWithDebInfo\*.exe run\RelWithDebInfo\extcap\wireshark\*.exe $plugins run\RelWithDebInfo\libwireshark.dll run\RelWithDebInfo\libwiretap.dll run\RelWithDebInfo\libwsutil.dll packaging\nsis\Wireshark-*-x64.exe packaging\nsis\Logray-*-x64.exe packaging\wix\Wireshark-*-x64.msi packaging\portableapps\WiresharkPortable??_*.paf.exe - msbuild /verbosity:minimal pdb_zip_package.vcxproj - C:\gitlab-builds\bin\mse-scan.ps1 - - $packages = Get-ChildItem "packaging\nsis\Wireshark-*-x64.exe", "packaging\wix\Wireshark-*-x64.msi", "packaging\portableapps\WiresharkPortable??_*.paf.exe", "Wireshark-pdb-*x64.zip" + - run\RelWithDebInfo\tshark --version + - $packages = Get-ChildItem "packaging\nsis\Wireshark-*-x64.exe", "packaging\nsis\Logray-*-x64.exe", "packaging\wix\Wireshark-*-x64.msi", "packaging\portableapps\WiresharkPortable??_*.paf.exe", "Wireshark-pdb-*x64.zip" - foreach ($package in $packages) { Write-Host $package.name $(Get-Filehash -Algorithm SHA256 $package).Hash $package.length "bytes" } - if (Test-Path env:MC_DESTINATION_WINDOWS_X64) { C:\gitlab-builds\bin\mc --quiet cp $packages "$env:MC_DESTINATION_WINDOWS_X64/" } - $nsisSha256 = (Get-FileHash -Algorithm SHA256 .\packaging\nsis\Wireshark-*-x64.exe).Hash @@ -491,7 +489,7 @@ Windows Arm64 Package: before_script: - $env:WIRESHARK_BASE_DIR = "C:\Development" - $env:Configuration = "RelWithDebInfo" - - $env:CMAKE_PREFIX_PATH = "C:\Qt\6.5.3\msvc2019_arm64" + - $env:CMAKE_PREFIX_PATH = "C:\Qt\$($env:WINDOWS_QT6_LTS_VERSION)\msvc2019_arm64" # https://help.appveyor.com/discussions/questions/18777-how-to-use-vcvars64bat-from-powershell - cmd.exe /c "call `"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsarm64.bat`" && set > %temp%\vcvars.txt" - Get-Content "$env:temp\vcvars.txt" | Foreach-Object { if ($_ -match "^(.*?)=(.*)$") { Set-Content "env:\$($matches[1])" $matches[2] } } @@ -499,16 +497,19 @@ Windows Arm64 Package: - cd build script: - C:\Windows\py.exe ..\tools\make-version.py --set-release --version-file=wireshark_version.txt .. - - cmake -G "Visual Studio 17 2022" -A arm64 -DENABLE_WERROR=ON -DENABLE_LTO=off -DENABLE_SIGNED_NSIS=on .. + - cmake -G "Visual Studio 17 2022" -A arm64 -DENABLE_WERROR=ON -DENABLE_LTO=off -DBUILD_logray=on -DBUILD_falcodump=on -DENABLE_SIGNED_NSIS=on .. - msbuild /verbosity:minimal "/consoleloggerparameters:PerformanceSummary;NoSummary" /maxcpucount Wireshark.sln - msbuild /verbosity:minimal /maxcpucount test-programs.vcxproj - msbuild /verbosity:minimal /maxcpucount wireshark_nsis_prep.vcxproj + - msbuild /verbosity:minimal /maxcpucount logray_nsis_prep.vcxproj - C:\gitlab-builds\bin\sign-files.ps1 -Recurse -Path run\RelWithDebInfo - msbuild /verbosity:minimal wireshark_nsis.vcxproj - - $plugins = Get-ChildItem run\RelWithDebInfo\plugins\*\*.dll ; signtool verify /q /pa /all run\RelWithDebInfo\*.exe run\RelWithDebInfo\extcap\*.exe $plugins run\RelWithDebInfo\libwireshark.dll run\RelWithDebInfo\libwiretap.dll run\RelWithDebInfo\libwsutil.dll packaging\nsis\Wireshark-*-arm64.exe + - msbuild /verbosity:minimal logray_nsis.vcxproj + - $plugins = Get-ChildItem run\RelWithDebInfo\plugins\*\*.dll ; signtool verify /q /pa /all run\RelWithDebInfo\*.exe run\RelWithDebInfo\extcap\wireshark\*.exe $plugins run\RelWithDebInfo\libwireshark.dll run\RelWithDebInfo\libwiretap.dll run\RelWithDebInfo\libwsutil.dll packaging\nsis\Wireshark-*-arm64.exe packaging\nsis\Logray-*-arm64.exe - msbuild /verbosity:minimal pdb_zip_package.vcxproj - C:\gitlab-builds\bin\mse-scan.ps1 - - $packages = Get-ChildItem "packaging\nsis\Wireshark-*-arm64.exe", "Wireshark-pdb-*arm64.zip" + - run\RelWithDebInfo\tshark --version + - $packages = Get-ChildItem "packaging\nsis\Wireshark-*-arm64.exe", "packaging\nsis\Logray-*-arm64.exe", "Wireshark-pdb-*arm64.zip" - foreach ($package in $packages) { Write-Host $package.name $(Get-Filehash -Algorithm SHA256 $package).Hash $package.length "bytes" } - if (Test-Path env:MC_DESTINATION_WINDOWS_ARM64) { C:\gitlab-builds\bin\mc --quiet cp $packages "$env:MC_DESTINATION_WINDOWS_ARM64/" } - $nsisSha256 = (Get-FileHash -Algorithm SHA256 .\packaging\nsis\Wireshark-*-arm64.exe).Hash @@ -520,6 +521,20 @@ Windows Arm64 Package: paths: - build/release-info-*.ini +Windows MinGW-w64 Package: + extends: .build-mingw + rules: !reference [.if-w-w-only-merged] + script: + - mingw64-cmake -G Ninja -DENABLE_CCACHE=Yes -DFETCH_lua=Yes .. + - ninja + - ninja user_guide_html + - ninja wireshark_nsis_prep + - ninja wireshark_nsis + artifacts: + paths: + - build/packaging/nsis/wireshark-*.exe + expire_in: 3 days + macOS Arm Package: stage: build rules: !reference [.if-w-w-only-merged] @@ -529,30 +544,36 @@ macOS Arm Package: - wireshark-macos-arm-package retry: 1 script: - - export CMAKE_PREFIX_PATH="/usr/local/Qt-6.2.4:/usr/local/lua-5.2" + - export CMAKE_PREFIX_PATH=/usr/local/Qt-$MACOS_QT6_LTS_VERSION - export PATH="$PATH:$HOME/bin" - mkdir build - cd build - ../tools/make-version.py --set-release --version-file=wireshark_version.txt .. - printf "\e[0Ksection_start:%s:cmake_section[collapsed=true]\r\e[0KRunning CMake" "$( date +%s)" - - cmake -DENABLE_CCACHE=ON -DCMAKE_APPLE_SILICON_PROCESSOR=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 -DCMAKE_OSX_ARCHITECTURES=arm64 -DTEST_EXTRA_ARGS=--enable-release -G Ninja .. + - cmake -DENABLE_CCACHE=ON -DCMAKE_APPLE_SILICON_PROCESSOR=arm64 -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 -DCMAKE_OSX_ARCHITECTURES=arm64 -DBUILD_logray=on -DBUILD_falcodump=on -DFALCO_PLUGINS=/usr/local/lib/falco-plugins/libcloudtrail.so -DTEST_EXTRA_ARGS=--enable-release -G Ninja .. - printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)" - ninja - codesign-prep - security find-identity -v -s "$CODE_SIGN_IDENTITY" - ninja wireshark_dmg + - ninja logray_dmg - cd run - xcrun notarytool submit Wireshark?[1-9]*.dmg --apple-id "$MACOS_NOTARIZATION_APPLE_ID" --team-id "$MACOS_NOTARIZATION_TEAM_ID" --password "$MACOS_NOTARIZATION_PWD" --wait --timeout 10m - xcrun stapler staple Wireshark?[1-9]*.dmg - - spctl --assess --type open --context context:primary-signature --verbose=2 Wireshark?[1-9]*.dmg - - stat -f "%N %z bytes" Wireshark*.dmg - - for digest in sha512 sha256 sha1 ; do openssl $digest Wireshark*.dmg ; done + - xcrun notarytool submit Logray?[0-9]*.dmg --apple-id "$MACOS_NOTARIZATION_APPLE_ID" --team-id "$MACOS_NOTARIZATION_TEAM_ID" --password "$MACOS_NOTARIZATION_PWD" --wait --timeout 10m + - xcrun stapler staple Logray?[0-9]*.dmg + - spctl --assess --type open --context context:primary-signature --verbose=2 Wireshark?[1-9]*.dmg Logray?[0-9]*.dmg + - stat -f "%N %z bytes" Wireshark*.dmg Logray*.dmg + - for digest in sha512 sha256 sha1 ; do openssl $digest Wireshark*.dmg Logray*.dmg ; done - | if [ -n "$S3_DESTINATION_MACOS_ARM64" ] ; then aws s3 cp Wireshark?[1-9]*Arm*.dmg "$S3_DESTINATION_MACOS_ARM64/" aws s3 cp Wireshark?dSYM*Arm*.dmg "$S3_DESTINATION_MACOS_ARM64/" + aws s3 cp Logray?[0-9]*Arm*.dmg "$S3_DESTINATION_MACOS_ARM64/" + aws s3 cp Logray?dSYM*Arm*.dmg "$S3_DESTINATION_MACOS_ARM64/" fi - SPARKLE_SIGNATURE=$( age --decrypt --identity="$MACOS_AGE_IDENTITY" "$MACOS_SPARKLE_BLOB" | /usr/local/Sparkle-2.2.2/bin/sign_update --ed-key-file - Wireshark?[1-9]*.dmg ) + - $CI_PROJECT_DIR/build/run/tshark --version - DMG_SHA256=$( shasum --algorithm 256 Wireshark?[1-9]*.dmg | awk '{print $1}' ) - WIRESHARK_VERSION=$(< ../wireshark_version.txt) - printf '[DEFAULT]\nsparkle_signature = %s\ndmg_sha256 = %s\n' "$SPARKLE_SIGNATURE" "$DMG_SHA256" > release-info-${WIRESHARK_VERSION}-macos-arm64.ini @@ -574,30 +595,35 @@ macOS Intel Package: - wireshark-macos-intel-package retry: 1 script: - - export CMAKE_PREFIX_PATH="/usr/local/Qt-6.2.4:/usr/local/lua-5.2" + - export CMAKE_PREFIX_PATH=/usr/local/Qt-$MACOS_QT6_LTS_VERSION - export PATH="$PATH:$HOME/bin" - mkdir build - cd build - ../tools/make-version.py --set-release --version-file=wireshark_version.txt .. - printf "\e[0Ksection_start:%s:cmake_section[collapsed=true]\r\e[0KRunning CMake" "$( date +%s)" - - cmake -DENABLE_CCACHE=ON -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 -DTEST_EXTRA_ARGS=--enable-release -G Ninja .. + - cmake -DENABLE_CCACHE=ON -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0 -DBUILD_logray=on -DBUILD_falcodump=on -DFALCO_PLUGINS=/usr/local/lib/falco-plugins/libcloudtrail.so -DTEST_EXTRA_ARGS=--enable-release -G Ninja .. - printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)" - ninja - codesign-prep - security find-identity -v -s "$CODE_SIGN_IDENTITY" - ninja wireshark_dmg + - ninja logray_dmg - cd run - xcrun notarytool submit Wireshark?[1-9]*.dmg --apple-id "$MACOS_NOTARIZATION_APPLE_ID" --team-id "$MACOS_NOTARIZATION_TEAM_ID" --password "$MACOS_NOTARIZATION_PWD" --wait --timeout 10m - - xcrun stapler staple Wireshark?[1-9]*.dmg - - spctl --assess --type open --context context:primary-signature --verbose=2 Wireshark?[1-9]*.dmg - - stat -f "%N %z bytes" Wireshark*.dmg - - for digest in sha512 sha256 sha1 ; do openssl $digest Wireshark*.dmg ; done + - xcrun notarytool submit Logray?[0-9]*.dmg --apple-id "$MACOS_NOTARIZATION_APPLE_ID" --team-id "$MACOS_NOTARIZATION_TEAM_ID" --password "$MACOS_NOTARIZATION_PWD" --wait --timeout 10m + - xcrun stapler staple Logray?[0-9]*.dmg + - spctl --assess --type open --context context:primary-signature --verbose=2 Wireshark?[1-9]*.dmg Logray?[0-9]*.dmg + - stat -f "%N %z bytes" Wireshark*.dmg Logray*.dmg + - for digest in sha512 sha256 sha1 ; do openssl $digest Wireshark*.dmg Logray*.dmg ; done - | if [ -n "$S3_DESTINATION_MACOS_INTEL64" ] ; then aws s3 cp Wireshark?[1-9]*Intel*.dmg "$S3_DESTINATION_MACOS_INTEL64/" aws s3 cp Wireshark?dSYM*Intel*.dmg "$S3_DESTINATION_MACOS_INTEL64/" + aws s3 cp Logray?[0-9]*Intel*.dmg "$S3_DESTINATION_MACOS_INTEL64/" + aws s3 cp Logray?dSYM*Intel*.dmg "$S3_DESTINATION_MACOS_INTEL64/" fi - SPARKLE_SIGNATURE=$( age --decrypt --identity="$MACOS_AGE_IDENTITY" "$MACOS_SPARKLE_BLOB" | /usr/local/Sparkle-2.2.2/bin/sign_update --ed-key-file - Wireshark?[1-9]*.dmg ) + - $CI_PROJECT_DIR/build/run/tshark --version - DMG_SHA256=$( shasum --algorithm 256 Wireshark?[1-9]*.dmg | awk '{print $1}' ) - WIRESHARK_VERSION=$(< ../wireshark_version.txt) - printf '[DEFAULT]\nsparkle_signature = %s\ndmg_sha256 = %s\n' "$SPARKLE_SIGNATURE" "$DMG_SHA256" > release-info-${WIRESHARK_VERSION}-macos-intel64.ini @@ -611,13 +637,14 @@ macOS Intel Package: needs: [] # Build the User's Guide and Developer's Guide -Documentation: +# Disabled for release branch +.Documentation: extends: .build-linux image: registry.gitlab.com/wireshark/wireshark-containers/ubuntu-dev rules: - - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "release-4.2" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/' + - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "release-4.4" && $CI_PROJECT_URL =~ /.*gitlab.com\/wireshark\/wireshark/' changes: - - "docbook/**/*" + - "doc/**/*" - "epan/wslua/**/*" - if: '$CI_PIPELINE_SOURCE == "push"' when: manual @@ -632,16 +659,12 @@ Documentation: - printf "\e[0Ksection_start:%s:cmake_section[collapsed=true]\r\e[0KRunning CMake" "$( date +%s)" - cmake -GNinja .. - printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)" - - ninja all_guides - - cd docbook + - ninja all_guides faq_html + - cd doc - for HTML_DIR in ws[ud]g_html{,_chunked} ; do zip -9 -r "$HTML_DIR.zip" "$HTML_DIR" ; done - - | - if [ -n "$S3_DESTINATION_DOCS" ] ; then - for DOC_FILE in ws[ud]g_html{,_chunked}.zip Wireshark*Guide.{epub,pdf} ; do - aws s3 cp "$DOC_FILE" "$S3_DESTINATION_DOCS/" - done - fi - - mv -v ws[ud]g_html{,_chunked}.zip Wireshark*Guide.{epub,pdf} ../.. + - gzip -9 faq.html + - if [ -n "$MC_DESTINATION_DOCS" ] ; then mc --quiet cp ws[ud]g_html{,_chunked}.zip Wireshark*Guide.{epub,pdf} faq.html.gz "$MC_DESTINATION_DOCS/" ; fi + - mv -v ws[ud]g_html{,_chunked}.zip Wireshark*Guide.{epub,pdf} faq.html.gz ../.. after_script: - if [ "$CI_JOB_STATUS" != "success" ]; then exit 0 ; fi artifacts: @@ -654,6 +677,7 @@ Documentation: - "Wireshark Developer's Guide.pdf" - "Wireshark User's Guide.epub" - "Wireshark Developer's Guide.epub" + - faq.html.gz needs: [] @@ -662,13 +686,69 @@ Documentation: Commit Check: extends: .build-ubuntu rules: !reference [.if-merge-request] + variables: + GITLAB_REPO: "$CI_MERGE_REQUEST_PROJECT_URL" script: + # glab depends on a valid GITALB_TOKEN variable. It will fail when run under outside projects. + - if ! command -V glab 2> /dev/null ; then (cd /tmp ; curl -JLO https://gitlab.com/gitlab-org/cli/-/releases/v1.34.0/downloads/glab_1.34.0_Linux_x86_64.deb ; dpkg --install /tmp/glab_1.34.0_Linux_x86_64.deb ) ; fi + - glab auth status + - > + if [[ $NUM_COMMITS > 1 ]] ; then + MESSAGE="ℹ️ This merge request has more than one commit. Please squash any trivial ones: + ~~~ + $(git log --oneline --no-decorate "${CI_COMMIT_SHA}~$NUM_COMMITS..${CI_COMMIT_SHA}") + ~~~ + " + glab mr note $CI_MERGE_REQUEST_IID --unique --message "$MESSAGE" || echo "$MESSAGE" + fi # build-ubuntu puts us in `build`. - cd .. - git status - - bash ./tools/pre-commit "${CI_COMMIT_SHA}~$NUM_COMMITS" - - tools/validate-commit.py - - python3 tools/checklicenses.py + - PC_EXIT_CODE=0 + - ANALYSIS_MESSAGE=$( ./tools/pre-commit "${CI_COMMIT_SHA}~$NUM_COMMITS" ) || PC_EXIT_CODE=1 + - > + if [ -n "$ANALYSIS_MESSAGE" ] ; then + MESSAGE="Pre-commit check results: + ~~~ + $ANALYSIS_MESSAGE + ~~~ + " + glab mr note $CI_MERGE_REQUEST_IID --unique --message "$MESSAGE" || echo "$MESSAGE" + fi + - VC_EXIT_CODE=0 + - ANALYSIS_MESSAGE=$( tools/validate-commit.py ) || VC_EXIT_CODE=1 + - > + if [[ $VC_EXIT_CODE != 0 ]] ; then + MESSAGE="Commit validation failure: + ~~~ + $ANALYSIS_MESSAGE + ~~~ + " + glab mr note $CI_MERGE_REQUEST_IID --unique --message "$MESSAGE" || echo "$MESSAGE" + fi + - LC_EXIT_CODE=0 + - ANALYSIS_MESSAGE=$( python3 tools/checklicenses.py ) || LC_EXIT_CODE=1 + - > + if [[ $LC_EXIT_CODE != 0 ]] ; then + MESSAGE="License check failure: + ~~~ + $ANALYSIS_MESSAGE + ~~~ + " + glab mr note $CI_MERGE_REQUEST_IID --unique --message "$MESSAGE" || echo "$MESSAGE" + fi + - HC_EXIT_CODE=0 + - ANALYSIS_MESSAGE=$( python3 tools/check_help_urls.py ) || HC_EXIT_CODE=1 + - > + if [[ $HC_EXIT_CODE != 0 ]] ; then + MESSAGE="Help URL check failure: + ~~~ + $ANALYSIS_MESSAGE + ~~~ + " + glab mr note $CI_MERGE_REQUEST_IID --unique --message "$MESSAGE" || echo "$MESSAGE" + fi + - exit $(( PC_EXIT_CODE || VC_EXIT_CODE || LC_EXIT_CODE || HC_EXIT_CODE )) Ubuntu GCC Build: extends: .build-ubuntu @@ -679,6 +759,9 @@ Ubuntu GCC Build: needs: [ 'Commit Check' ] script: # build-ubuntu puts us in `build`. + - cd .. + - mv build "🦈 build 🦈" + - cd "🦈 build 🦈" - printf "\e[0Ksection_start:%s:cmake_section[collapsed=true]\r\e[0KRunning CMake" "$( date +%s)" # Test release build. - cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DENABLE_CCACHE=ON -DENABLE_WERROR=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=on .. @@ -699,14 +782,22 @@ Ubuntu GCC Build: paths: - gcc_report.html +Fedora MinGW Build: + extends: .build-mingw + rules: !reference [.if-merge-request] + needs: [ 'Commit Check' ] + Clang + Code Checks: extends: .build-ubuntu + tags: + - saas-linux-medium-amd64 rules: !reference [.if-merge-request] - variables: - CC: "clang-$CLANG_VERSION" - CXX: "clang++-$CLANG_VERSION" needs: [ 'Commit Check' ] script: + - source /clang-latest.env + - apt-get update && apt-get --yes install python3-venv + - python3 -m venv $CI_PROJECT_DIR/.venv + - source $CI_PROJECT_DIR/.venv/bin/activate # build-ubuntu puts us in `build`. - cd .. - mkdir cppcheck @@ -716,14 +807,15 @@ Clang + Code Checks: - cd build - printf "\e[0Ksection_start:%s:cmake_section[collapsed=true]\r\e[0KRunning CMake" "$( date +%s)" # We don't have an "All options" job, so build fuzzshark and tfshark here. - - cmake -DENABLE_CHECKHF_CONFLICT=on -DCMAKE_EXPORT_COMPILE_COMMANDS=on -DBUILD_fuzzshark=ON -DBUILD_tfshark=On -DBUILD_logray=ON -DENABLE_DEBUG=ON -DENABLE_CCACHE=ON -DENABLE_WERROR=ON -G Ninja .. + - cmake -DENABLE_CHECKHF_CONFLICT=on -DCMAKE_EXPORT_COMPILE_COMMANDS=on -DCMAKE_C_CLANG_TIDY=clang-tidy-$CLANG_VERSION -DCMAKE_CXX_CLANG_TIDY=clang-tidy-$CLANG_VERSION -DBUILD_fuzzshark=ON -DBUILD_tfshark=On -DBUILD_logray=ON -DENABLE_DEBUG=ON -DENABLE_CCACHE=ON -DENABLE_WERROR=ON -G Ninja .. - printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)" - - printf "\e[0Ksection_start:%s:asn1_section[collapsed=true]\r\e[0KRegenerating ASN.1 dissectors" "$( date +%s)" - - ninja asn1 + - printf "\e[0Ksection_start:%s:asn1_section[collapsed=false]\r\e[0KRegenerating ASN.1 dissectors" "$( date +%s)" + - ninja --quiet asn1 - git diff --exit-code ${CI_COMMIT_SHA} .. - printf "\e[0Ksection_end:%s:asn1_section\r\e[0K" "$( date +%s)" - printf "\e[0Ksection_start:%s:pidl_section[collapsed=true]\r\e[0KRegenerating PIDL dissectors" "$( date +%s)" - ninja pidl-dissectors + - ninja idl2wrs-dissectors - git diff --exit-code ${CI_COMMIT_SHA} .. - printf "\e[0Ksection_end:%s:pidl_section\r\e[0K" "$( date +%s)" - mkdir ../html @@ -737,21 +829,25 @@ Clang + Code Checks: - ninja checkAPI - ninja shellcheck - cd .. + - pip3 install pyspellchecker + - ./tools/check_spelling.py --no-wikipedia --comments --commits $NUM_COMMITS | tee spelling_check.txt - ./tools/check_typed_item_calls.py --consecutive --label --mask --check-bitmask-fields --commits $NUM_COMMITS | tee item_calls_check.txt - ./tools/check_tfs.py --check-value-strings --commits $NUM_COMMITS | tee tfs_check.txt - ./tools/check_val_to_str.py --commits $NUM_COMMITS | tee val_to_str_check.txt + - ./tools/check_col_apis.py --commits $NUM_COMMITS | tee col_apis_check.txt artifacts: paths: - clang_report.txt - clang_analyzer_check.txt - cppcheck + - spelling_check.txt - item_calls_check.txt - tfs_check.txt - val_to_str_check.txt + - col_apis_check.txt - checkhf_conflict.txt - html/ -# Disabled for release branch. .No options: extends: .build-ubuntu rules: !reference [.if-merge-request] @@ -759,9 +855,11 @@ Clang + Code Checks: script: | cmake -GNinja -DENABLE_CCACHE=ON \ -DENABLE_BROTLI=OFF -DENABLE_CAP=OFF -DENABLE_CHECKHF_CONFLICT=ON -DENABLE_GNUTLS=OFF \ - -DENABLE_KERBEROS=OFF -DENABLE_LIBXML2=OFF -DENABLE_ILBC=OFF -DENABLE_LUA=OFF -DENABLE_LZ4=OFF -DENABLE_MINIZIP=OFF \ - -DENABLE_NETLINK=OFF -DENABLE_NGHTTP2=OFF -DENABLE_PCAP=OFF -DENABLE_PLUGIN_IFDEMO=ON -DENABLE_PLUGINS=OFF \ - -DENABLE_SBC=OFF -DENABLE_SMI=OFF -DENABLE_SNAPPY=OFF -DENABLE_SPANDSP=OFF -DENABLE_ZLIB=OFF -DENABLE_ZSTD=OFF .. + -DENABLE_KERBEROS=OFF -DENABLE_LIBXML2=OFF -DENABLE_ILBC=OFF -DENABLE_LUA=OFF -DENABLE_LZ4=OFF \ + -DENABLE_MINIZIP=OFF -DENABLE_NETLINK=OFF -DENABLE_NGHTTP2=OFF -DENABLE_NGHTTP3=OFF \ + -DENABLE_BCG729=OFF -DENABLE_OPUS=OFF -DENABLE_PCAP=OFF -DENABLE_PLUGIN_IFDEMO=ON \ + -DENABLE_PLUGINS=OFF -DENABLE_SBC=OFF -DENABLE_SMI=OFF -DENABLE_SNAPPY=OFF -DENABLE_SPANDSP=OFF \ + -DENABLE_ZLIB=OFF -DENABLE_ZSTD=OFF -DBUILD_mmdbresolve=OFF .. ninja # Windows runners are still beta, at least technically: @@ -773,38 +871,27 @@ Windows Build: - wireshark-windows-merge-req needs: [ 'Commit Check' ] script: + # lib{sinsp,scap} don't support Configuration=Debug, so we can't enable + # BUILD_logray or BUILD_falcodump here just yet. - cmake -G "Visual Studio 17 2022" -A x64 -DENABLE_WERROR=ON -DENABLE_LTO=off .. - msbuild /verbosity:minimal /maxcpucount /property:Configuration=Debug Wireshark.sln - msbuild /verbosity:minimal /maxcpucount /property:Configuration=Debug test-programs.vcxproj - C:\Windows\py.exe -m pytest --disable-gui --build-type=Debug - -# Disabled for release branch. -.Windows Qt5 Build: - extends: .build-windows - rules: !reference [.if-w-w-only-merge-request] - tags: - - wireshark-windows-merge-req - needs: [ 'Commit Check' ] - script: - - $env:CMAKE_PREFIX_PATH = "C:\qt\5.15.2\msvc2019_64" - - cmake -G "Visual Studio 17 2022" -A x64 -DUSE_qt6=OFF -DENABLE_WERROR=ON -DENABLE_LTO=off .. - - msbuild /verbosity:minimal /maxcpucount ui\qt\qtui.vcxproj - macOS Build: extends: .build-macos rules: !reference [.if-w-w-only-merge-request] script: - printf "\e[0Ksection_start:%s:cmake_section[collapsed=true]\r\e[0KRunning CMake" "$( date +%s)" - - cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DENABLE_CCACHE=ON -DTEST_EXTRA_ARGS=--disable-capture .. + - cmake -G Ninja -DENABLE_WERROR=ON -DCMAKE_BUILD_TYPE=Debug -DENABLE_CCACHE=ON -DTEST_EXTRA_ARGS=--disable-capture .. - printf "\e[0Ksection_end:%s:cmake_section\r\e[0K" "$( date +%s)" - ninja - ninja test-programs - pytest needs: [ 'Commit Check' ] -# Disabled for release branch. # Build all doxygen docs +# Disabled for release branch. .API Reference: extends: .build-ubuntu rules: !reference [.if-daily-schedule] @@ -815,10 +902,7 @@ macOS Build: - ninja wsar_html_zip 2>&1 > doxygen_output.txt | tee doxygen_errors.txt - mv wsar_html.zip doxygen_{output,errors}.txt .. - cd .. - - | - if [ -n "$S3_DESTINATION_DOCS" ] ; then - aws s3 cp wsar_html.zip "$S3_DESTINATION_DOCS/" - fi + - if [ -n "$MC_DESTINATION_DOCS" ] ; then mc --quiet cp wsar_html.zip "$MC_DESTINATION_DOCS/" ; fi after_script: - if [ "$CI_JOB_STATUS" != "success" ]; then exit 0 ; fi artifacts: @@ -835,14 +919,13 @@ macOS Build: rules: !reference [.if-fuzz-schedule] tags: - wireshark-ubuntu-fuzz - resource_group: fuzz-release-4.2 + resource_group: fuzz-release-4.4 variables: - CC: "clang-$CLANG_VERSION" - CXX: "clang++-$CLANG_VERSION" INSTALL_PREFIX: "$CI_PROJECT_DIR/_install" MIN_PLUGINS: 10 MAX_PASSES: 15 before_script: + - source /clang-latest.env - DEBIAN_FRONTEND=noninteractive apt-get update # Use DPkg::options::="--force-overwrite" until # https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-15/+bug/2008755 @@ -865,11 +948,7 @@ macOS Build: - FUZZ_ERRORS="/tmp/fuzz/$( basename "$FUZZ_CAPTURE" .pcap ).err" - printf "\nfuzz-test.sh stderr:\n" >> "$FUZZ_ERRORS" - cat fuzz-test.err >> "$FUZZ_ERRORS" - - | - if [ -n "$S3_DESTINATION_FUZZ" ] ; then - aws s3 cp "$FUZZ_CAPTURE" "$S3_DESTINATION_FUZZ/" - aws s3 cp "$FUZZ_ERRORS" "$S3_DESTINATION_FUZZ/" - fi + - if [ -n "$MC_DESTINATION_FUZZ" ] ; then mc --quiet cp "$FUZZ_CAPTURE" "$FUZZ_ERRORS" "$MC_DESTINATION_FUZZ/" ; fi ASan Menagerie Fuzz: extends: .fuzz-ubuntu @@ -914,7 +993,7 @@ ASan randpkt Fuzz: Valgrind Menagerie Fuzz: extends: .fuzz-ubuntu stage: fuzz-valgrind - resource_group: fuzz-release-4.2-valgrind + resource_group: fuzz-release-4.4-valgrind variables: # Use DWARF-4 debug info. Valgrind does not support Clang 14 with DWARF-5. # https://gitlab.com/wireshark/wireshark/-/issues/18191 |