Skip to content

Commit

Permalink
automated builds for linux, mac and windows wireshark plugins (#170)
Browse files Browse the repository at this point in the history
  • Loading branch information
noeltimothy authored Sep 20, 2024
1 parent df3c067 commit bc1806c
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 3 deletions.
112 changes: 112 additions & 0 deletions .github/workflows/ja4-wireshark-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
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
7 changes: 4 additions & 3 deletions wireshark/build-scripts/macos_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ if [ ! -d wireshark-$VER ]
cd wireshark-$VER
fi


rm -rf ./plugins/epan/ja4
cp -r ../../source ./plugins/epan/ja4

if [ ! -d build ]; then
mkdir build
fi

cd build && cmake -DCUSTOM_PLUGIN_SRC_DIR=plugins/epan/ja4 ../
cd build && cmake -DCUSTOM_PLUGIN_SRC_DIR=plugins/epan/ja4 -DBUILD_wireshark=off ../
echo 'building using make...'
make -j8

Expand All @@ -42,5 +42,6 @@ if [ ! -d ../../../../ja4-plugin ]; then
fi

cp `find . -name ja4.so` ../../../../ja4-plugin/
echo "Your JA4 Plugin is ready at `pwd`/../../../../ja4-plugin/ja4.so"
echo "Your JA4 Plugin is ready at" `find . -name ja4.so`


0 comments on commit bc1806c

Please sign in to comment.