1.6. Automated Builds (GitLab CI)
The Wireshark development team uses GitLab’s continuous integration (CI) system to automatically build Wireshark for each Git merge request and commit.
Automated builds provide several useful services:
-
Cross-platform testing.
Inbound merge requests and commits can be tested on each of our supported platforms, which ensures that a developer on one platform doesn’t break the build on other platforms.
-
A health indicator for the source code.
The CI badges at https://gitlab.com/wireshark/wireshark can quickly tell you how healthy the latest code is.
Green is good, red is bad.
-
Fast code delivery.
After a change is committed to the repository, an installer is usually available within an hour at https://www.wireshark.org/download/automated/.
This can be quite helpful for resolving issues, e.g. a bug reporter can easily verify a bugfix by installing a recent build.
-
Automated regression tests.
We run a comprehensive test suite as part of each build and continuously run fuzz tests that try to crash the dissection engine.
1.6.1. What Do The Automated Builds Do?
GitLab’s CI operates by running a series of steps and reporting success or failure.
A typical CI job might do the following:
-
Check out Wireshark from the source repository.
-
Build Wireshark.
-
Create a source tarball, binary package, or installer.
-
Run regression tests.
GitLab’s CI marks successful jobs with a green checkmark and failed jobs with a red “X”.
Jobs provide a link to the corresponding console logfile which provides additional information.
Release packages are built on the following platforms:
-
Windows Server 2022 x64, Visual Studio 2022
-
Windows 11 Arm64, Visual Studio 2022
-
Ubuntu 22.04 x64, gcc
-
macOS x64, clang
-
macOS Arm64, clang
Static code analysis and fuzz tests are run on the following platforms:
-
Visual Studio Code Analysis, Visual Studio 2022
-
Clang Code Analysis, Coverity Scan, and fuzz tests, clang