Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var APIReference = pipeline.Job{ Name: "API Reference", Script: List("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 wsar_html_zip 2>&1 > doxygen_output.txt | tee doxygen_errors.txt", "mv wsar_html.zip doxygen_{output,errors}.txt ..", "cd ..", "if [ -n \"$MC_DESTINATION_DOCS\" ] ; then mc --quiet cp wsar_html.zip \"$MC_DESTINATION_DOCS/\" ; fi"), AfterScript: List("if [ \"$CI_JOB_STATUS\" != \"success\" ]; then exit 0 ; fi"), Artifacts: pipeline.Artifacts{ Paths: List("doxygen_errors.txt", "doxygen_output.txt", "wsar_html.zip"), }, }
View Source
var ASanMenagerieFuzz = pipeline.Job{
Name: "ASan Menagerie Fuzz",
Stage: "fuzz-asan",
Script: List("MAX_SECONDS=$(( 6 * 60 * 60 ))", "printf \"\\e[0Ksection_start:%s:cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "cmake -G Ninja -DBUILD_wireshark=OFF -DCMAKE_BUILD_TYPE=Debug -DENABLE_ASAN=ON -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DENABLE_CCACHE=ON -DENABLE_WERROR=Off ..", "printf \"\\e[0Ksection_end:%s:cmake_section\\r\\e[0K\" \"$( date +%s)\"", "ninja", "ninja install", "cd ..", "FUZZ_PASSED=true", "./tools/fuzz-test.sh -a -2 -P $MIN_PLUGINS -b $INSTALL_PREFIX/bin -d /tmp/fuzz -t $MAX_SECONDS $( shuf -e /var/menagerie/*/* ) 2> fuzz-test.err || FUZZ_PASSED=false", "echo \"export FUZZ_PASSED=$FUZZ_PASSED\" > /tmp/fuzz_result.sh", "$FUZZ_PASSED"),
Variables: Json{
"WIRESHARK_LOG_FATAL": "critical",
},
}
View Source
var ASanRandpktFuzz = pipeline.Job{ Name: "ASan randpkt Fuzz", Stage: "fuzz-randpkt", Script: List("printf \"\\e[0Ksection_start:%s:cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "cmake -G Ninja -DBUILD_wireshark=OFF -DCMAKE_BUILD_TYPE=Debug -DENABLE_ASAN=ON -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DENABLE_CCACHE=ON -DENABLE_WERROR=Off ..", "printf \"\\e[0Ksection_end:%s:cmake_section\\r\\e[0K\" \"$( date +%s)\"", "ninja", "ninja install", "cd ..", "FUZZ_PASSED=true", "./tools/randpkt-test.sh -a -b $INSTALL_PREFIX/bin -d /tmp/fuzz -p $MAX_PASSES 2> fuzz-test.err || FUZZ_PASSED=false", "echo \"export FUZZ_PASSED=$FUZZ_PASSED\" > /tmp/fuzz_result.sh", "$FUZZ_PASSED"), Variables: Json{ "WIRESHARK_LOG_FATAL": "critical", }, Needs: []any{ASanMenagerieFuzz}, }
View Source
var ArchLinux = pipeline.Job{ Name: "Arch Linux", Script: List("COMMON_PACMAN_ARGS=\"--sync --refresh --sysupgrade --needed --noconfirm\"", "./tools/make-version.py --set-release --wireshark-version-file=wireshark_version.txt .", "WIRESHARK_VERSION=$(cat wireshark_version.txt)", "WIRESHARK_PREFIX=\"/opt/wireshark-$WIRESHARK_VERSION\"", "pushd /tmp", "pacman $COMMON_PACMAN_ARGS go", "git clone https://github.com/falcosecurity/plugins.git falco-plugins", "pushd /tmp/falco-plugins/plugins/cloudtrail", "make", "popd", "pushd /tmp/falco-plugins/plugins/gcpaudit", "make", "popd", "pushd /tmp/falco-plugins/plugins/k8saudit", "make", "popd", "pacman $COMMON_PACMAN_ARGS uthash libelf onetbb jsoncpp re2", "export LDFLAGS=-Wl,-rpath,'$ORIGIN/../lib'", "git clone https://github.com/falcosecurity/libs.git falco-libs", "cd /tmp/falco-libs", "git switch -c 0.20.0 0.20.0", "printf \"\\e[0Ksection_start:%s:fslibs_cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "cmake -B build -G Ninja -DBUILD_SHARED_LIBS=on -DMINIMAL_BUILD=on -DBUILD_DRIVER=off -DENABLE_ENGINE_KMOD=off -DBUILD_LIBSCAP_EXAMPLES=off -DUSE_BUNDLED_DEPS=off -DUSE_BUNDLED_VALIJSON=on -DCREATE_TEST_TARGETS=off -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_RPATH='$ORIGIN/../lib' -DCMAKE_INSTALL_PREFIX=$WIRESHARK_PREFIX", "printf \"\\e[0Ksection_end:%s:fslibs_cmake_section\\r\\e[0K\" \"$( date +%s)\"", "ninja -C build", "ninja -C build install", "sed -i -e 's/-linstall_lib_link_libraries-NOTFOUND/-lscap_platform -lscap_platform_util/g' $WIRESHARK_PREFIX/lib/pkgconfig/libscap.pc", "popd", "export CMAKE_PREFIX_PATH=$WIRESHARK_PREFIX", "mkdir build", "cd build", "printf \"\\e[0Ksection_start:%s:cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "cmake -G Ninja -DBUILD_stratoshark=on -DFALCO_PLUGINS=\"/tmp/falco-plugins/plugins/cloudtrail/libcloudtrail.so;/tmp/falco-plugins/plugins/gcpaudit/libgcpaudit.so;/tmp/falco-plugins/plugins/k8saudit/libk8saudit.so\" -DCMAKE_INSTALL_PREFIX=$WIRESHARK_PREFIX ..", "printf \"\\e[0Ksection_end:%s:cmake_section\\r\\e[0K\" \"$( date +%s)\"", "ninja", "ninja install", "install -v -D -m 755 -t $WIRESHARK_PREFIX/lib/stratoshark/plugins/4.7/epan run/plugins/4.7/epan/falco-events.so", "install -v -D -m 755 -t $WIRESHARK_PREFIX/lib/stratoshark/plugins/falco run/plugins/falco/*.so", "tar -C / -cJf $CI_PROJECT_DIR/wireshark-arch-$WIRESHARK_VERSION.tar.xz opt/wireshark-$WIRESHARK_VERSION"), Image: pipeline.Image{Name: "registry.gitlab.com/wireshark/wireshark-containers/arch-dev"}, Artifacts: pipeline.Artifacts{ Paths: List("$CI_PROJECT_DIR/wireshark-arch-*.tar.xz"), }, }
View Source
var ClangCodeChecks = pipeline.Job{ Name: "Clang + Code Checks", Script: List("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", "cd ..", "mkdir cppcheck", "./tools/cppcheck/cppcheck.sh -l $NUM_COMMITS | tee cppcheck/cppcheck_report.txt", "if [[ -s \"cppcheck/cppcheck_report.txt\" ]]; then ./tools/cppcheck/cppcheck.sh -l $NUM_COMMITS -x > cppcheck/cppcheck_report.xml ; fi", "if [[ -s \"cppcheck/cppcheck_report.txt\" ]]; then cppcheck-htmlreport --file cppcheck/cppcheck_report.xml --report-dir cppcheck ; fi", "cd build", "printf \"\\e[0Ksection_start:%s:cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "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_stratoshark=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=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)\"", "printf \"\\e[0Ksection_start:%s:corba_section[collapsed=false]\\r\\e[0KRegenerating CORBA IDL dissectors\" \"$( date +%s)\"", "ninja corba-dissectors", "git diff --exit-code ${CI_COMMIT_SHA} ..", "printf \"\\e[0Ksection_end:%s:corba_section\\r\\e[0K\" \"$( date +%s)\"", "printf \"\\e[0Ksection_start:%s:public_header_section[collapsed=false]\\r\\e[0KGenerating public dissector header list\" \"$( date +%s)\"", "../tools/generate-dissector-lists.py", "git diff --exit-code ${CI_COMMIT_SHA} ..", "printf \"\\e[0Ksection_end:%s:public_header_section\\r\\e[0K\" \"$( date +%s)\"", "mkdir ../html", "script --command ninja --flush --quiet --return ../tmp_clang_report.txt", "ansi2txt < ../tmp_clang_report.txt > ../clang_report.txt", "ansi2html < ../tmp_clang_report.txt > ../html/clang_report.html", "./run/tshark -v 2> >(tee ../checkhf_conflict.txt)", "../tools/validate-clang-check.sh -c $CLANG_VERSION 2> >(tee ../tmp_clang_analyzer_check.txt)", "ansi2txt < ../tmp_clang_analyzer_check.txt > ../clang_analyzer_check.txt", "ansi2html < ../tmp_clang_analyzer_check.txt > ../html/clang_analyzer_check.html", "ninja checkAPI", "ninja shellcheck", "cd ..", "pip3 install pyspellchecker ruff", "ruff check . tools/idl2deb tools/asn2deb tools/idl2deb tools/pidl/wscript --extend-exclude tools/pkt-from-core.py --extend-exclude tools/WiresharkXML.py --extend-exclude tools/yacc.py --extend-exclude tools/ncp2222.py", "./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: pipeline.Artifacts{ Paths: List("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/"), }, Tags: List("saas-linux-medium-amd64"), }
View Source
var ClangStaticAnalyzer = pipeline.Job{
Name: "Clang Static Analyzer",
Stage: "analysis",
Script: List("source /clang-latest.env", "scan-build-${CLANG_VERSION} --exclude tools cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_WERROR=OFF -G Ninja ..", "scan-build-${CLANG_VERSION} --exclude tools -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 \"$MC_DESTINATION_ANALYSIS\" ] ; then mc --quiet cp \"${SB_DIR}.zip\" \"$MC_DESTINATION_ANALYSIS/\" ; fi"),
}
View Source
var CodeLinesAndData = pipeline.Job{ Name: "Code Lines and Data", Stage: "analysis", Script: List("DEBIAN_FRONTEND=noninteractive apt-get update", "DEBIAN_FRONTEND=noninteractive apt-get --yes install sloccount cloc curl unzip", "pushd /tmp", "curl -L -O https://github.com/boyter/scc/releases/download/v3.0.0/scc-3.0.0-x86_64-unknown-linux.zip", "unzip scc-3.0.0-x86_64-unknown-linux.zip", "curl -L -O https://github.com/XAMPPRocky/tokei/releases/download/v12.1.2/tokei-x86_64-unknown-linux-gnu.tar.gz", "tar -xf tokei-x86_64-unknown-linux-gnu.tar.gz", "popd", "printf \"\\e[0Ksection_start:%s:cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "cmake -G Ninja ..", "printf \"\\e[0Ksection_end:%s:cmake_section\\r\\e[0K\" \"$( date +%s)\"", "ninja", "cd ..", "echo -n \"cloc version:\\ \"", "cloc --version", "cloc --quiet . | tee $CLOC_OUT", "/tmp/scc --version", "/tmp/scc --not-match 'qt/.*.ts' . | tee $SCC_OUT", "echo -n \"SLOCCount version:\\ \"", "sloccount --version", "sloccount . | awk \"/^Computing results/ { results=1 } { if (results) print }\" | tee $SLOC_OUT", "/tmp/tokei --version", "/tmp/tokei --exclude 'qt/*.ts' . | tee $TOKEI_OUT", "cat > manuf <<FIN\n# This file was generated by TShark $(git describe --tags | sed -e 's/^v//') with the\n# command \\`tshark -G manuf\\`. Its canonical location is\n#\n# https://www.wireshark.org/download/automated/data/manuf.gz\n#\n# The first column contains the MAC address block (24, 28 or 36 bits wide,\n# per IEEE allocation sizes), the second column contains the shortened name\n# used by Wireshark for address name resolution and the third column contains the\n# full vendor name from the registry.\n#\nFIN\n", "build/run/tshark -G manuf | sed -e 's,:00:00:00/24,,' >> manuf", "gzip --best --keep manuf", "if [ -n \"$MC_DESTINATION_ANALYSIS\" ] ; then mc --quiet cp \"$CLOC_OUT\" \"$SCC_OUT\" \"$SLOC_OUT\" \"$TOKEI_OUT\" \"$MC_DESTINATION_ANALYSIS/\" ; fi", "if [ -n \"$MC_DESTINATION_DATA\" ] ; then mc --quiet cp manuf manuf.gz \"$MC_DESTINATION_DATA/\" ; fi"), Variables: Json{ "TOKEI_OUT": "/tmp/tokei.txt", "CLOC_OUT": "/tmp/cloc.txt", "SCC_OUT": "/tmp/scc.txt", "SLOC_OUT": "/tmp/sloccount.txt", }, Artifacts: pipeline.Artifacts{ Paths: List("manuf", "manuf.gz"), }, }
View Source
var CommitCheck = pipeline.Job{ Name: "Commit Check", Script: List("cd ..", "git status", "REPORT_FILE=commit_checks.xml", "TEST_SUITE=commit_checks", "EXIT_CODE=0", "./tools/wrap-ci-test.py --file $REPORT_FILE --suite $TEST_SUITE --case num_commits --command \"[ $NUM_COMMITS -lt 2 ] || (echo 'ℹ️ This merge request has more than one commit. Please squash any trivial ones:\\n'; git log --oneline --no-decorate --max-count=$NUM_COMMITS ; false)\" || true", "./tools/wrap-ci-test.py --file $REPORT_FILE --suite $TEST_SUITE --case tools/pre-commit ./tools/pre-commit \"${CI_COMMIT_SHA}~${NUM_COMMITS}\" || EXIT_CODE=1", "./tools/wrap-ci-test.py --file $REPORT_FILE --suite $TEST_SUITE --case tools/validate-commit ./tools/validate-commit.py $( git log --max-count=$NUM_COMMITS --pretty=format:%h ) || EXIT_CODE=1", "./tools/wrap-ci-test.py --file $REPORT_FILE --suite $TEST_SUITE --case tools/checklicenses ./tools/checklicenses.py || EXIT_CODE=1", "./tools/wrap-ci-test.py --file $REPORT_FILE --suite $TEST_SUITE --case tools/check_help_urls ./tools/check_help_urls.py || EXIT_CODE=1", "exit $EXIT_CODE"), Artifacts: pipeline.Artifacts{ Paths: List("commit_checks.xml"), When: "always", }, }
View Source
var CoverityGCCScan = pipeline.Job{ Name: "Coverity GCC Scan", Stage: "analysis", Script: List("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", "tar --directory=/tmp --extract --gzip --file /tmp/cov-analysis-linux64.tar.gz", "mkdir build", "cd build", "cmake -G Ninja -DENABLE_ASSERT=ON ..", "/tmp/cov-analysis-linux64-*/bin/cov-build --return-emit-failures --dir ../cov-int ninja", "cd ..", "tar --create --gzip --file cov-int.tar.gz cov-int", "echo \"export ARTIFACT_JOB_URL=$CI_JOB_URL\" > job_environment_variables.sh", "echo \"export GIT_DESCRIPTION=$( git describe --tags --match \"v[1-9]*\" )\" >> job_environment_variables.sh"), Image: pipeline.Image{Name: "registry.gitlab.com/wireshark/wireshark-containers/ubuntu-dev"}, Variables: Json{ "CFLAGS": "-DGLIB_DISABLE_DEPRECATION_WARNINGS", "CXXFLAGS": "-DGLIB_DISABLE_DEPRECATION_WARNINGS", "CC": "gcc", "CXX": "g++", }, Rules: List( pipeline.Rule{ If: "$CI_PIPELINE_SOURCE == \"schedule\" && $SCHEDULE_TYPE == \"coverity-gcc\"", }, ), Artifacts: pipeline.Artifacts{ Paths: List("cov-int.tar.gz", "job_environment_variables.sh"), }, }
View Source
var CoverityGCCSubmit = pipeline.Job{ Name: "Coverity GCC Submit", Stage: ".post", Script: List(". job_environment_variables.sh", "echo $ARTIFACT_JOB_URL", "echo $GIT_DESCRIPTION", "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"), Image: pipeline.Image{Name: "curlimages/curl"}, Rules: List( pipeline.Rule{ If: "$CI_PIPELINE_SOURCE == \"schedule\" && $SCHEDULE_TYPE == \"coverity-gcc\"", }, ), Needs: []any{CoverityGCCScan}, }
View Source
var CoverityVisualCScan = pipeline.Job{ Name: "Coverity Visual C++ Scan", Stage: "analysis", Script: List("$gitDescription = (( git describe --tags ) | Out-String).Trim()", "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", "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 17 2022\" -A x64 ..", "$covAnalysisWin64 = (Get-ChildItem -Path $env:temp -Filter \"cov-analysis-win64-*\" -Directory)[0].FullName", "Invoke-Expression \"& $covAnalysisWin64\\bin\\cov-build.exe --return-emit-failures --dir ..\\cov-int msbuild /verbosity:minimal `\"/consoleloggerparameters:PerformanceSummary;NoSummary`\" /maxcpucount:1 Wireshark.sln\"", "cd ..", "C:\\ProgramData\\chocolatey\\tools\\7z a -tzip cov-int.zip cov-int", "\"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"), Rules: List( pipeline.Rule{ If: "$CI_PIPELINE_SOURCE == \"schedule\" && $SCHEDULE_TYPE == \"coverity-visual-c++\"", }, ), Artifacts: pipeline.Artifacts{ Paths: List("cov-int.zip", "job_environment_variables.sh"), }, Tags: List("wireshark-windows-merge-req"), }
View Source
var CoverityVisualCSubmit = pipeline.Job{ Name: "Coverity Visual C++ Submit", Stage: ".post", Script: List("sed -i -e 's/\\r//' job_environment_variables.sh", ". job_environment_variables.sh", "echo $ARTIFACT_JOB_URL", "echo $GIT_DESCRIPTION", "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"), Image: pipeline.Image{Name: "curlimages/curl"}, Rules: List( pipeline.Rule{ If: "$CI_PIPELINE_SOURCE == \"schedule\" && $SCHEDULE_TYPE == \"coverity-visual-c++\"", }, ), Needs: []any{CoverityVisualCScan}, }
View Source
var DebianStableAPTPackage = pipeline.Job{ Name: "Debian Stable APT Package", Script: List("ln --symbolic --no-dereference --force packaging/debian", "tools/make-version.py --set-release .", "export DEB_BUILD_OPTIONS=\"nocheck parallel=$(( $(getconf _NPROCESSORS_ONLN) + 2 ))\"", "export DH_QUIET=1", "export MAKEFLAGS=--silent", "CC=/usr/lib/ccache/gcc CXX=/usr/lib/ccache/g++ dpkg-buildpackage -b --no-sign -jauto -zfast", "mkdir debian-packages", "mv -v ../*.deb debian-packages/"), Image: pipeline.Image{Name: "registry.gitlab.com/wireshark/wireshark-containers/debian-stable-dev"}, Artifacts: pipeline.Artifacts{ Paths: List("debian-packages/*.deb"), ExpireIn: "3 days", }, }
View Source
var DebianStableAPTTest = pipeline.Job{ Name: "Debian Stable APT Test", Stage: "test", Script: List("DEBIAN_FRONTEND=noninteractive apt-get update", "DEBIAN_FRONTEND=noninteractive apt-get install ./debian-packages/*.deb -y", "tshark --version"), Image: pipeline.Image{Name: "registry.gitlab.com/wireshark/wireshark-containers/debian-stable-dev"}, Variables: Json{ "GIT_STRATEGY": "none", }, Needs: []any{DebianStableAPTPackage}, }
View Source
var Documentation = pipeline.Job{ Name: "Documentation", Script: List("DEBIAN_FRONTEND=noninteractive apt-get update", "DEBIAN_FRONTEND=noninteractive apt-get --yes install ruby-asciidoctor-pdf ruby-coderay ruby-dev", "NOKOGIRI_USE_SYSTEM_LIBRARIES=1 gem install asciidoctor-epub3", "mkdir build", "cd build", "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 doc", "for HTML_DIR in ws[ud]g_html{,_chunked} ; do zip -9 -r \"$HTML_DIR.zip\" \"$HTML_DIR\" ; done", "if [ -n \"$MC_DESTINATION_DOCS\" ] ; then mc --quiet cp ws[ud]g_html{,_chunked}.zip Wireshark*Guide.{epub,pdf} \"$MC_DESTINATION_DOCS/\" ; fi", "mv -v ws[ud]g_html{,_chunked}.zip Wireshark*Guide.{epub,pdf} ../.."), AfterScript: List("if [ \"$CI_JOB_STATUS\" != \"success\" ]; then exit 0 ; fi"), Image: pipeline.Image{Name: "registry.gitlab.com/wireshark/wireshark-containers/ubuntu-dev"}, Rules: List( pipeline.Rule{ If: "$CI_PIPELINE_SOURCE == \"push\" && $CI_COMMIT_BRANCH == \"master\" && $CI_PROJECT_URL =~ /.*gitlab.com\\/wireshark\\/wireshark/", Changes: List("doc/**/*", "epan/wslua/**/*"), }, pipeline.Rule{ If: "$CI_PIPELINE_SOURCE == \"push\"", When: "manual", AllowFailure: true, }, ), Artifacts: pipeline.Artifacts{ Paths: List("wsug_html.zip", "wsug_html_chunked.zip", "wsdg_html.zip", "wsdg_html_chunked.zip", "Wireshark User's Guide.pdf", "Wireshark Developer's Guide.pdf", "Wireshark User's Guide.epub", "Wireshark Developer's Guide.epub"), }, }
View Source
var FedoraRPMPackage = pipeline.Job{ Name: "Fedora RPM Package", Script: List("export FORCE_CMAKE_NINJA_NON_VERBOSE=1", "printf \"\\e[0Ksection_start:%s:cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "cmake3 -G Ninja -DBUILD_stratoshark=ON ..", "printf \"\\e[0Ksection_end:%s:cmake_section\\r\\e[0K\" \"$( date +%s)\"", "ninja wireshark_rpm"), Image: pipeline.Image{Name: "registry.gitlab.com/wireshark/wireshark-containers/fedora-dev"}, }
View Source
var MacOSBuild = pipeline.Job{ Name: "macOS Build", Needs: []any{CommitCheck}, Retry: pipeline.Retry{Max: 2, When: List("runner_system_failure", "stuck_or_timeout_failure")}, Timeout: "45 minutes", }
View Source
var MacOSUniversalPackage = pipeline.Job{ Name: "macOS Universal Package", Stage: "build", Script: List("if [[ $MACOS_REINSTALL_THIRD_PARTY == true ]] ; then rm -rf \"$WIRESHARK_BASE_DIR\" ; fi", "if [ ! -d \"$WIRESHARK_BASE_DIR/Qt\" ] ; then mkdir -p \"$WIRESHARK_BASE_DIR/Qt\" ; fi", "if [ ! -d \"$WIRESHARK_BASE_DIR/Qt/$MACOS_QT_VERSION/macos/lib/QtCore.framework\" ] ; then pip3 install aqtinstall ; aqt install-qt --outputdir $WIRESHARK_BASE_DIR/Qt mac desktop $MACOS_QT_VERSION clang_64 --modules qt5compat qtmultimedia --timeout 10 ; fi", "export CMAKE_PREFIX_PATH=\"$WIRESHARK_BASE_DIR/Qt/$MACOS_QT_VERSION/macos\"", "export PKG_CONFIG_PATH=", "for falco_plugin in gcpaudit k8saudit ; do cp -f $FALCO_PLUGIN_DIR/lib${falco_plugin}.so $FALCO_PLUGIN_DIR/lib${falco_plugin}.so.disabled ; done", "mkdir build", "cd build", "../tools/make-version.py --set-release --wireshark-version-file=wireshark_version.txt --stratoshark-version-file=stratoshark_version.txt ..", "printf \"\\e[0Ksection_start:%s:cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "cmake -G Ninja -DENABLE_CCACHE=ON -DWIRESHARK_BASE_DIR=\"$WIRESHARK_BASE_DIR\" -DCMAKE_OSX_DEPLOYMENT_TARGET=12.0 -DCMAKE_OSX_ARCHITECTURES=\"arm64;x86_64\" -DBUILD_stratoshark=on -DFALCO_PLUGINS=\"$FALCO_PLUGIN_DIR/libcloudtrail.so;$FALCO_PLUGIN_DIR/libgcpaudit.so.disabled;$FALCO_PLUGIN_DIR/libk8saudit.so.disabled\" -DTEST_EXTRA_ARGS=--enable-release ..", "sed -i .bak '/Requires.*zlib/d' $WIRESHARK_BASE_DIR/macos-universal-master/lib/pkgconfig/libscap.pc", "printf \"\\e[0Ksection_end:%s:cmake_section\\r\\e[0K\" \"$( date +%s)\"", "ninja", "for exe in $( find run/{Wire,Strato}shark.app/Contents/MacOS -type f ) ; do lipo \"$exe\" -verify_arch arm64 x86_64 ; done", "codesign-prep", "security find-identity -v -s \"$CODE_SIGN_IDENTITY\"", "ninja wireshark_dmg", "ninja stratoshark_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", "xcrun notarytool submit Stratoshark?[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 Stratoshark?[0-9]*.dmg", "spctl --assess --type open --context context:primary-signature --verbose=2 Wireshark?[1-9]*.dmg Stratoshark?[0-9]*.dmg", "stat -f \"%N %z bytes\" Wireshark*.dmg Stratoshark*.dmg", "for digest in sha512 sha256 sha1 ; do openssl $digest Wireshark*.dmg Stratoshark*.dmg ; done", "if [ -n \"$S3_DESTINATION_MACOS_UNIVERSAL\" ] ; then aws s3 cp Wireshark?[1-9]*.dmg \"$S3_DESTINATION_MACOS_UNIVERSAL/\" ; aws s3 cp Wireshark?dSYM*.dmg \"$S3_DESTINATION_MACOS_UNIVERSAL/\" ; aws s3 cp Stratoshark?[0-9]*.dmg \"$S3_DESTINATION_MACOS_UNIVERSAL/\" ; aws s3 cp Stratoshark?dSYM*.dmg \"$S3_DESTINATION_MACOS_UNIVERSAL/\" ; fi", "$CI_PROJECT_DIR/build/run/tshark --version", "WIRESHARK_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 )", "WIRESHARK_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' \"$WIRESHARK_SPARKLE_SIGNATURE\" \"$WIRESHARK_DMG_SHA256\" > wireshark-release-info-${WIRESHARK_VERSION}-macos-arm64.ini", "cp wireshark-release-info-${WIRESHARK_VERSION}-macos-arm64.ini wireshark-release-info-${WIRESHARK_VERSION}-macos-intel64.ini", "STRATOSHARK_SPARKLE_SIGNATURE=$( age --decrypt --identity=\"$MACOS_AGE_IDENTITY\" \"$MACOS_SPARKLE_BLOB\" | /usr/local/Sparkle-2.2.2/bin/sign_update --ed-key-file - Stratoshark?[0-9]*.dmg )", "STRATOSHARK_DMG_SHA256=$( shasum --algorithm 256 Stratoshark?[0-9]*.dmg | awk '{print $1}' )", "STRATOSHARK_VERSION=$(< ../stratoshark_version.txt)", "printf '[DEFAULT]\\nsparkle_signature = %s\\ndmg_sha256 = %s\\n' \"$STRATOSHARK_SPARKLE_SIGNATURE\" \"$STRATOSHARK_DMG_SHA256\" > stratoshark-release-info-${STRATOSHARK_VERSION}-macos-arm64.ini", "cp stratoshark-release-info-${STRATOSHARK_VERSION}-macos-arm64.ini stratoshark-release-info-${STRATOSHARK_VERSION}-macos-intel64.ini", "if [ -n \"$S3_DESTINATION_RELEASE\" ] ; then aws s3 cp wireshark-release-info-*-macos-arm64.ini \"$S3_DESTINATION_RELEASE/\" ; aws s3 cp wireshark-release-info-*-macos-intel64.ini \"$S3_DESTINATION_RELEASE/\" ; aws s3 cp stratoshark-release-info-*-macos-arm64.ini \"$S3_DESTINATION_RELEASE/\" ; aws s3 cp stratoshark-release-info-*-macos-intel64.ini \"$S3_DESTINATION_RELEASE/\" ; fi", "cd ..", "ninja test"), BeforeScript: List("export PATH=\"/Library/Frameworks/Python.framework/Versions/3.13/bin:$PATH:$HOME/bin\"", "python3 -m venv $CI_PROJECT_DIR/.venv", "source $CI_PROJECT_DIR/.venv/bin/activate", "pip3 install pytest pytest-xdist"), Variables: Json{ "CODE_SIGN_IDENTITY": "Wireshark Foundation", "WIRESHARK_BASE_DIR": "$CI_PROJECT_DIR/../wireshark-third-party", "FALCO_PLUGIN_DIR": "$WIRESHARK_BASE_DIR/macos-universal-master/lib/falco/plugins", }, Artifacts: pipeline.Artifacts{ Paths: List("build/run/*shark-release-info-*-macos-*.ini"), }, Tags: List("wireshark-macos-arm-package"), Retry: 1, }
View Source
var MainPipeline = pipeline.Pipeline{
Stages: List("build", "analysis", "test", "fuzz-asan", "fuzz-randpkt", "fuzz-valgrind"),
Variables: Json{
"WINDOWS_QT_VERSION": "6.9.3",
"SAST_EXCLUDED_ANALYZERS": "brakeman,eslint,security-code-scan,semgrep,spotbugs",
"FORCE_COLOR": "1",
"GIT_DEPTH": "1",
"GIT_FETCH_EXTRA_FLAGS": "--depth=5000",
"HOMEBREW_COLOR": "1",
"CCACHE_DIR": "${CI_PROJECT_DIR}/ccache",
"MACOS_QT_VERSION": "6.9.3",
"CLICOLOR_FORCE": "1",
},
}
View Source
var NoOptions = pipeline.Job{ Name: "No options", Needs: []any{CommitCheck}, }
View Source
var OpenSUSE156RPMPackage = pipeline.Job{ Name: "openSUSE 15.6 RPM Package", Script: List("source /gcc-latest.env", "export FORCE_CMAKE_NINJA_NON_VERBOSE=1", "printf \"\\e[0Ksection_start:%s:cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "cmake -G Ninja ..", "printf \"\\e[0Ksection_end:%s:cmake_section\\r\\e[0K\" \"$( date +%s)\"", "ninja wireshark_rpm"), Image: pipeline.Image{Name: "registry.gitlab.com/wireshark/wireshark-containers/opensuse-15.6-dev"}, }
View Source
var OpenSUSE156RPMTest = pipeline.Job{ Name: "openSUSE 15.6 RPM Test", Script: List("zypper --no-gpg-checks --no-remote install -y build/packaging/rpm/RPMS/x86_64/*.rpm", "tshark --version"), Image: pipeline.Image{Name: "registry.gitlab.com/wireshark/wireshark-containers/opensuse-15.6-dev"}, Needs: []any{OpenSUSE156RPMPackage}, }
View Source
var RockyLinux9RPMPackage = pipeline.Job{ Name: "Rocky Linux 9 RPM Package", Script: List("export FORCE_CMAKE_NINJA_NON_VERBOSE=1", "printf \"\\e[0Ksection_start:%s:cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "cmake -G Ninja -DBUILD_stratoshark=ON ..", "printf \"\\e[0Ksection_end:%s:cmake_section\\r\\e[0K\" \"$( date +%s)\"", "ninja wireshark_rpm"), Image: pipeline.Image{Name: "registry.gitlab.com/wireshark/wireshark-containers/rockylinux-9-dev"}, }
View Source
var RockyLinux9RPMTest = pipeline.Job{ Name: "Rocky Linux 9 RPM Test", Script: List("dnf --nogpgcheck localinstall -y build/packaging/rpm/RPMS/x86_64/*.rpm", "tshark --version"), Image: pipeline.Image{Name: "registry.gitlab.com/wireshark/wireshark-containers/rockylinux-9-dev"}, Needs: []any{RockyLinux9RPMPackage}, }
View Source
var SourcePackage = pipeline.Job{ Name: "Source Package", Stage: ".pre", Script: List("../tools/make-version.py --set-release --wireshark-version-file=wireshark_version.txt --stratoshark-version-file=stratoshark_version.txt ..", "../tools/update-appdata.py", "printf \"\\e[0Ksection_start:%s:cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "cmake -G Ninja $CMAKE_ARGS ..", "printf \"\\e[0Ksection_end:%s:cmake_section\\r\\e[0K\" \"$( date +%s)\"", "cd $CI_PROJECT_DIR", "build/packaging/source/git-export-release.sh -d .", "cd build", "ninja release_notes", "WIRESHARK_VERSION=$(< wireshark_version.txt)", "cp -v \"doc/Wireshark Release Notes.html\" ../wireshark-release-notes-${WIRESHARK_VERSION}.html", "cp -v \"doc/Wireshark Release Notes.txt\" ../wireshark-release-notes-${WIRESHARK_VERSION}.txt", "STRATOSHARK_VERSION=$(< stratoshark_version.txt)", "cp -v \"doc/Stratoshark Release Notes.html\" ../stratoshark-release-notes-${STRATOSHARK_VERSION}.html", "cp -v \"doc/Stratoshark Release Notes.txt\" ../stratoshark-release-notes-${STRATOSHARK_VERSION}.txt", "cd .."), AfterScript: List("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", "if [ -n \"$MC_DESTINATION_DIST\" ] ; then mc --quiet cp wireshark-*.tar.* \"$MC_DESTINATION_DIST/\" ; fi", "if [ -n \"$MC_DESTINATION_RELEASE\" ] ; then mc --quiet cp {wire,strato}shark-release-notes-*.{txt,html} \"$MC_DESTINATION_RELEASE/\" ; fi"), Artifacts: pipeline.Artifacts{ Paths: List("wireshark-*.tar.*", "wireshark-release-notes-*.html", "wireshark-release-notes-*.txt", "stratoshark-release-notes-*.html", "stratoshark-release-notes-*.txt"), }, }
View Source
var UbuntuAPTPackage = pipeline.Job{ Name: "Ubuntu APT Package", Script: List("cd ..", "ln --symbolic --no-dereference --force packaging/debian", "CC=/usr/lib/ccache/gcc CXX=/usr/lib/ccache/g++ MAKE=ninja dpkg-buildpackage -us -uc -rfakeroot -jauto -zfast", "mkdir ubuntu-packages", "mv ../*.deb ubuntu-packages/"), AfterScript: List("ccache --max-size $( du --summarize --block-size=1M --total \"$CI_PROJECT_DIR\"/obj-* | awk '/total$/ {printf (\"%dM\", $1 * 1.25)}' )"), Artifacts: pipeline.Artifacts{ Paths: List("ubuntu-packages/*.deb"), ExpireIn: "3 days", }, }
View Source
var UbuntuAPTTest = pipeline.Job{ Name: "Ubuntu APT Test", Stage: "test", Script: List("DEBIAN_FRONTEND=noninteractive apt-get install ./ubuntu-packages/*.deb -y", "tshark --version"), Image: pipeline.Image{Name: "registry.gitlab.com/wireshark/wireshark-containers/ubuntu-dev"}, Variables: Json{ "GIT_STRATEGY": "none", }, Needs: []any{UbuntuAPTPackage}, }
View Source
var UbuntuGCCBuild = pipeline.Job{ Name: "Ubuntu GCC Build", Script: List("source /gcc-latest.env", "cd ..", "mv build \"🦈 build 🦈\"", "cd \"🦈 build 🦈\"", "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 -DENABLE_WERROR=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DBUILD_sshdig=ON ..", "printf \"\\e[0Ksection_end:%s:cmake_section\\r\\e[0K\" \"$( date +%s)\"", "script --command ninja --flush --quiet --return ../gcc_report.txt", "ansi2html < ../gcc_report.txt > ../gcc_report.html", "ninja test-programs", "chown -R user .", "if [ -f run/dumpcap ]; then setcap cap_net_raw,cap_net_admin+eip run/dumpcap; fi", "if [ -f run/dumpcap ]; then su user -c \"run/dumpcap -D\" ; fi", "PYTEST_ADDOPTS=--skip-missing-programs=dumpcap,falcodump,rawshark,sshdig su user -c \"pytest --junitxml=../ubuntu_tests.xml\"", "ninja user_guide_html", "ninja developer_guide_html", "cpack -G TZST .", "ls wireshark-*.tar.zst{,.sha256}"), Variables: Json{ "CC": "gcc", "CXX": "g++", }, Needs: []any{CommitCheck}, Artifacts: pipeline.Artifacts{ Paths: List("gcc_report.html"), When: "always", }, }
View Source
var UbuntuQt5Build = pipeline.Job{ Name: "Ubuntu Qt5 Build", Script: List("../tools/debian-setup.sh --install-qt5-deps --yes --no-install-recommends", "printf \"\\e[0Ksection_start:%s:cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "cmake -G Ninja -DENABLE_CCACHE=ON -DENABLE_WERROR=ON -DUSE_qt6=OFF ..", "printf \"\\e[0Ksection_end:%s:cmake_section\\r\\e[0K\" \"$( date +%s)\"", "ninja", "run/wireshark -v"), Rules: List( pipeline.Rule{ If: "$CI_PIPELINE_SOURCE == \"merge_request_event\"", Changes: List("ui/**/*"), }, pipeline.Rule{ If: "$CI_PIPELINE_SOURCE == \"merge_request_event\"", When: "manual", AllowFailure: true, }, ), Needs: []any{CommitCheck}, }
View Source
var ValgrindMenagerieFuzz = pipeline.Job{ Name: "Valgrind Menagerie Fuzz", Stage: "fuzz-valgrind", Script: List("DEBIAN_FRONTEND=noninteractive apt-get update", "DEBIAN_FRONTEND=noninteractive apt-get --yes install valgrind", "MAX_SECONDS=$(( 3 * 60 * 60 ))", "printf \"\\e[0Ksection_start:%s:cmake_section[collapsed=true]\\r\\e[0KRunning CMake\" \"$( date +%s)\"", "cmake -G Ninja -DBUILD_wireshark=OFF -DCMAKE_BUILD_TYPE=Debug -DENABLE_ASAN=OFF -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX -DENABLE_CCACHE=ON -DENABLE_WERROR=Off ..", "printf \"\\e[0Ksection_end:%s:cmake_section\\r\\e[0K\" \"$( date +%s)\"", "ninja", "ninja install", "cd ..", "FUZZ_PASSED=true", "./tools/fuzz-test.sh -g -P $MIN_PLUGINS -b $INSTALL_PREFIX/bin -d /tmp/fuzz -t $MAX_SECONDS $( shuf -e /var/menagerie/*/* ) 2> fuzz-test.err || FUZZ_PASSED=false", "echo \"export FUZZ_PASSED=$FUZZ_PASSED\" > /tmp/fuzz_result.sh", "$FUZZ_PASSED"), Variables: Json{ "WIRESHARK_LOG_FATAL": "critical", "CFLAGS": "-gdwarf-4", }, Needs: []any{ASanRandpktFuzz}, }
View Source
var VisualStudioCodeAnalysis = pipeline.Job{ Name: "Visual Studio Code Analysis", Script: List("py -m venv sarif-tools.venv", "sarif-tools.venv\\Scripts\\pip.exe install sarif-tools", "New-Item -Path C:\\MinIO -Type \"directory\"", "Invoke-Webrequest -OutFile C:\\MinIO\\mc.exe https://dl.min.io/client/mc/release/windows-amd64/archive/mc.RELEASE.2024-07-03T20-17-25Z", "if ($( Get-FileHash -Algorithm SHA256 -Path C:\\MinIO\\mc.exe ).Hash -ne \"A379139FB32C0ADDB6C05786782602B5106D13402759AC1B4A88285A4D5EAAD3\" ) { Exit 1 }", "$env:caexcludepath = \"C:\\Qt;$env:INCLUDE\"", "cmake -DENABLE_CODE_ANALYSIS=ON -G \"Visual Studio 17 2022\" -A x64 -DENABLE_LTO=off ..", "msbuild /verbosity:minimal \"/consoleloggerparameters:PerformanceSummary;NoSummary\" /maxcpucount:2 Wireshark.sln", "$report = \"visual-c++-analyze-\" + (Get-Date -format \"yyyy-MM-dd\") + \".html\"", "sarif-tools.venv\\Scripts\\sarif html --output $report", "if (Test-Path env:MC_DESTINATION_ANALYSIS) { C:\\MinIO\\mc --quiet cp \"$report\" \"$env:MC_DESTINATION_ANALYSIS/\" }"), Rules: List( pipeline.Rule{ If: "$CI_PIPELINE_SOURCE == \"schedule\" && $SCHEDULE_TYPE == \"daily\" && $CI_PROJECT_URL =~ /.*gitlab.com\\/wireshark\\/wireshark/", }, ), Tags: List("wireshark-windows-dev"), }
View Source
var WSAR = pipeline.Job{ Name: "WSAR", Script: List("DEBIAN_FRONTEND=noninteractive apt-get update", "DEBIAN_FRONTEND=noninteractive apt-get --yes install doxygen", "mkdir build", "cd build", "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 wsar_html"), AfterScript: List("if [ \"$CI_JOB_STATUS\" != \"success\" ]; then exit 0 ; fi"), Image: pipeline.Image{Name: "registry.gitlab.com/wireshark/wireshark-containers/ubuntu-dev"}, Artifacts: pipeline.Artifacts{ Paths: List("build/wsar_html/*"), }, When: "manual", AllowFailure: true, }
View Source
var WindowsArm64Package = pipeline.Job{ Name: "Windows Arm64 Package", Script: List("C:\\Windows\\py.exe ..\\tools\\make-version.py --set-release --wireshark-version-file=wireshark_version.txt --stratoshark-version-file=stratoshark_version.txt ..", "cmake -G \"Visual Studio 17 2022\" -A arm64 -DENABLE_LTO=off -DBUILD_stratoshark=on -DFALCO_PLUGINS=\"$FALCO_PLUGIN_DIR/cloudtrail.dll;$FALCO_PLUGIN_DIR/gcpaudit.dll;$FALCO_PLUGIN_DIR/k8saudit.dll\" -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 stratoshark_nsis_prep.vcxproj", "C:\\gitlab-builds\\bin\\sign-files.ps1 -Recurse -Path run\\RelWithDebInfo", "msbuild /verbosity:minimal wireshark_nsis.vcxproj", "msbuild /verbosity:minimal stratoshark_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\\Stratoshark-*-arm64.exe", "msbuild /verbosity:minimal pdb_zip_package.vcxproj", "C:\\gitlab-builds\\bin\\mse-scan.ps1", "run\\RelWithDebInfo\\tshark --version", "$packages = Get-ChildItem \"packaging\\nsis\\Wireshark-*-arm64.exe\", \"packaging\\nsis\\Stratoshark-*-arm64.exe\", \"Wireshark-pdb-*arm64.zip\"", "foreach ($package in $packages) { Write-Host $package.name $(Get-Filehash -Algorithm SHA256 $package).Hash.ToLower() $package.length \"bytes\" }", "if (Test-Path env:MC_DESTINATION_WINDOWS_ARM64) { C:\\gitlab-builds\\bin\\mc --quiet cp $packages \"$env:MC_DESTINATION_WINDOWS_ARM64/\" }", "$wiresharkVersion = Get-Content .\\wireshark_version.txt", "$wiresharkNsisSha256 = (Get-FileHash -Algorithm SHA256 .\\packaging\\nsis\\Wireshark-*-arm64.exe).Hash.ToLower()", "Set-Content -Path wireshark-release-info-$($wiresharkVersion)-windows-arm64.ini -Value (\"[DEFAULT]`nnsis_sha256 = $wiresharkNsisSha256\")", "$stratosharkVersion = Get-Content .\\stratoshark_version.txt", "$stratosharkNsisSha256 = (Get-FileHash -Algorithm SHA256 .\\packaging\\nsis\\Stratoshark-*-arm64.exe).Hash.ToLower()", "Set-Content -Path stratoshark-release-info-$($stratosharkVersion)-windows-arm64.ini -Value (\"[DEFAULT]`nnsis_sha256 = $stratosharkNsisSha256\")", "if (Test-Path env:MC_DESTINATION_RELEASE) { C:\\gitlab-builds\\bin\\mc --quiet cp $(Get-ChildItem \"*shark-release-info-*-windows-*.ini\") \"$env:MC_DESTINATION_RELEASE/\" }", "C:\\Windows\\py.exe -m pytest --enable-release"), Variables: Json{ "AQT_ARCH": "msvc2022_arm64", "VCVARS_ARCH": "arm64", "FALCO_PLUGIN_DIR": "$WIRESHARK_BASE_DIR/wireshark-arm64-libs/falcosecurity-plugins-2025-11-24-1-arm64-ws", "AQT_HOST": "windows_arm64", }, Artifacts: pipeline.Artifacts{ Paths: List("build/*shark-release-info-*-windows-*.ini"), }, Tags: List("wireshark-windows-arm64-package"), }
View Source
var WindowsBuild = pipeline.Job{ Name: "Windows Build", Script: List("cmake -G \"Visual Studio 17 2022\" -A x64 -DENABLE_LTO=off -DBUILD_sshdig=on ..", "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 --junitxml=../windows_tests.xml"), Needs: []any{CommitCheck}, Tags: List("wireshark-windows-merge-req"), }
View Source
var WindowsX64Package = pipeline.Job{ Name: "Windows x64 Package", Script: List("C:\\Windows\\py.exe ..\\tools\\make-version.py --set-release --wireshark-version-file=wireshark_version.txt --stratoshark-version-file=stratoshark_version.txt ..", "cmake -G \"Visual Studio 17 2022\" -A x64 -DENABLE_LTO=off -DBUILD_stratoshark=on -DFALCO_PLUGINS=\"$FALCO_PLUGIN_DIR/cloudtrail.dll;$FALCO_PLUGIN_DIR/gcpaudit.dll;$FALCO_PLUGIN_DIR/k8saudit.dll\" -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 stratoshark_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 stratoshark_nsis.vcxproj", "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\\wireshark\\*.exe $plugins run\\RelWithDebInfo\\libwireshark.dll run\\RelWithDebInfo\\libwiretap.dll run\\RelWithDebInfo\\libwsutil.dll packaging\\nsis\\Wireshark-*-x64.exe packaging\\nsis\\Stratoshark-*-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", "run\\RelWithDebInfo\\tshark --version", "$packages = Get-ChildItem \"packaging\\nsis\\Wireshark-*-x64.exe\", \"packaging\\nsis\\Stratoshark-*-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.ToLower() $package.length \"bytes\" }", "if (Test-Path env:MC_DESTINATION_WINDOWS_X64) { C:\\gitlab-builds\\bin\\mc --quiet cp $packages \"$env:MC_DESTINATION_WINDOWS_X64/\" }", "$wiresharkVersion = Get-Content .\\wireshark_version.txt", "$wiresharkNsisSha256 = (Get-FileHash -Algorithm SHA256 .\\packaging\\nsis\\Wireshark-*-x64.exe).Hash.ToLower()", "Set-Content -Path wireshark-release-info-$($wiresharkVersion)-windows-x64.ini -Value (\"[DEFAULT]`nnsis_sha256 = $wiresharkNsisSha256\")", "$stratosharkVersion = Get-Content .\\stratoshark_version.txt", "$stratosharkNsisSha256 = (Get-FileHash -Algorithm SHA256 .\\packaging\\nsis\\Stratoshark-*-x64.exe).Hash.ToLower()", "Set-Content -Path stratoshark-release-info-$($stratosharkVersion)-windows-x64.ini -Value (\"[DEFAULT]`nnsis_sha256 = $stratosharkNsisSha256\")", "if (Test-Path env:MC_DESTINATION_RELEASE) { C:\\gitlab-builds\\bin\\mc --quiet cp $(Get-ChildItem \"*shark-release-info-*-windows-*.ini\") \"$env:MC_DESTINATION_RELEASE/\" }", "C:\\Windows\\py.exe -m pytest --enable-release"), Variables: Json{ "FALCO_PLUGIN_DIR": "$WIRESHARK_BASE_DIR/wireshark-x64-libs/falcosecurity-plugins-2025-11-24-1-x64-ws", }, Artifacts: pipeline.Artifacts{ Paths: List("build/*shark-release-info-*-windows-*.ini"), }, Tags: List("wireshark-windows-x64-package"), }
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.