Skip to content

automated builds for linux, mac and windows wireshark plugins (#170) #1

automated builds for linux, mac and windows wireshark plugins (#170)

automated builds for linux, mac and windows wireshark plugins (#170) #1

name: ja4-wireshark-release
on:
push:
branches: [main]
paths: [wireshark/*, wireshark/source/*, wireshark/build-scripts/*]
workflow_dispatch:
jobs:
wireshark-linux:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- name: build
run: cd wireshark/build-scripts && sudo apt update -y && sudo apt install ninja-build -y && sudo ./linux_build.sh 4.4.0
- name: rename artifact
run: cp ./wireshark/build-scripts/wireshark-4.4.0/build/run/plugins/4.4/epan/ja4.so ja4.so.linux
- name: upload-linux-ja4
uses: actions/upload-artifact@v4
with:
name: linux-ja4
path: ja4.so.linux
wireshark-macos:
runs-on: macOS-latest
steps:
- name: checkout
uses: actions/checkout@v4
- name: build
run: cd wireshark/build-scripts && ./macos_build.sh 4.4.0
- name: rename artifact
run: cp ./wireshark/build-scripts/wireshark-4.4.0/build/run/Wireshark.app/Contents/PlugIns/wireshark/4-4/epan/ja4.so ja4.so.macos
- name: upload-macos-ja4
uses: actions/upload-artifact@v4
with:
name: macos-ja4
path: ja4.so.macos
wireshark-windows:
runs-on: windows-2022
env:
PLATFORM: x64
WIRESHARK_BASE_DIR: C:\Development
CMAKE_PREFIX_PATH: D:\a\ja4\Qt\6.2.3\msvc2019_64
WIRESHARK_VERSION_EXTRA: -GithubActionBuild
steps:
- name: checkout
uses: actions/checkout@v4
- name: create wireshark directory
run: mkdir wireshark/build-scripts/wireshark
- name: checkout wireshark
uses: actions/checkout@v4
with:
repository: wireshark/wireshark
ref: release-4.4
path: wireshark/build-scripts/wireshark
- name: add ja4 plugin
run: copy -r wireshark/source wireshark/build-scripts/wireshark/plugins/epan/ja4
- name: Choco install dependencies
run: choco install -y asciidoctorj xsltproc docbook-bundle nsis winflexbison3 cmake
- name: Install strawberryperl
uses: shogo82148/actions-setup-perl@v1
with:
perl-version: '5.30'
distribution: strawberry
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
arch: win64_msvc2019_64
version: 6.2.3
modules: 'qt5compat'
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v2
with:
vs-version: 16.8
- name: Set MSVC command prompt
uses: ilammy/msvc-dev-cmd@v1
- name: Mkdir build directory and copy sources
run: mkdir wireshark/build-scripts/wireshark/build
- name: Cmake
run: cd wireshark/build-scripts/wireshark/build && cmake -DCUSTOM_PLUGIN_SRC_DIR=plugins/epan/ja4 -DCMAKE_SYSTEM_VERSION="10.0.20348.0" -A x64 ..
env:
PLATFORM: x64
WIRESHARK_BASE_DIR: C:/wireshark-libs
QT5_BASE_DIR: C:/Qt/5.12.3/msvc2017_64
working-directory: wireshark/build-scripts/wireshark/build
- name: Build
run: cmake --build . --config RelWithDebInfo
working-directory: wireshark/build-scripts/wireshark/build
- name: rename artifact
run: cp wireshark/build-scripts/wireshark/build/run/RelWithDebInfo/plugins/4.4/epan/ja4.dll ja4.dll
- name: upload-windows-ja4
uses: actions/upload-artifact@v4
with:
name: windows-ja4
path: ja4.dll
release-artifacts:
runs-on: ubuntu-latest
needs: [ wireshark-linux, wireshark-macos, wireshark-windows ]
steps:
- name: set env
run: echo "NOW=$(date +'%Y.%m.%d.%M')" >> $GITHUB_ENV
- name: download-artifacts
uses: actions/download-artifact@v4
- name: list files
run: ls -al
- name: release
env:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
run: gh release create ja4-wireshark-plugins-${{ env.NOW }} linux-ja4/ja4.so.linux macos-ja4/ja4.so.macos windows-ja4/ja4.dll