forked from OISF/suricata
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
github-ci: add windows build with suricata-verify
Initial attempt with a few hacks: - npcap dlls are extracted from the installer and placed in cwd - cbindgen is installed system wide desipte a preinstalled copy This does not yet hook into the "prep" build from build.yaml or support using custom support PRs/branches (SV, SU).
- Loading branch information
1 parent
4e1f151
commit 606750f
Showing
1 changed file
with
52 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
name: Windows | ||
on: [push, pull_request] | ||
|
||
jobs: | ||
build: | ||
runs-on: windows-latest | ||
defaults: | ||
run: | ||
shell: msys2 {0} | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- uses: msys2/setup-msys2@v2 | ||
with: | ||
msystem: MINGW64 | ||
update: true | ||
install: git mingw-w64-x86_64-toolchain automake1.16 automake-wrapper autoconf libtool libyaml-devel pcre-devel jansson-devel make mingw-w64-x86_64-libyaml mingw-w64-x86_64-pcre mingw-w64-x86_64-rust mingw-w64-x86_64-jansson mingw-w64-x86_64-nss mingw-w64-x86_64-nspr unzip p7zip python-setuptools mingw-w64-x86_64-python-yaml mingw-w64-x86_64-jq | ||
# hack: install our own cbindgen system wide as we can't get the | ||
# preinstalled one to be picked up by configure | ||
- name: cbindgen | ||
run: cargo install --root /usr --force --debug --version 0.14.1 cbindgen | ||
- name: Npcap DLL | ||
run: | | ||
curl -s -O https://nmap.org/npcap/dist/npcap-1.00.exe | ||
7z -y x -o/npcap-bin npcap-1.00.exe | ||
# hack: place dlls in cwd | ||
cp /npcap-bin/*.dll . | ||
- name: Npcap SDK | ||
run: | | ||
curl -s -O https://nmap.org/npcap/dist/npcap-sdk-1.06.zip | ||
unzip npcap-sdk-1.06.zip -d /npcap | ||
cp /npcap/Lib/x64/* /usr/lib/ | ||
- name: libhtp | ||
run: git clone https://github.com/OISF/libhtp -b 0.5.x | ||
- name: Suricata-Update | ||
run: | | ||
mv suricata-update suricata-update.old | ||
git clone https://github.com/OISF/suricata-update | ||
# make sure to place the makefiles back | ||
cp suricata-update.old/* suricata-update/ | ||
- name: Suricata-Verify | ||
run: git clone https://github.com/OISF/suricata-verify | ||
- name: Build | ||
run: | | ||
./autogen.sh | ||
CFLAGS="-ggdb -Werror" ./configure --enable-unittests --enable-gccprotect --disable-gccmarch-native --disable-shared --with-libpcap-includes=/npcap/Include --with-libpcap-libraries=/npcap/Lib/x64 | ||
make -j3 | ||
- name: Run | ||
run: | | ||
./src/suricata --build-info | ||
./src/suricata -u -l /tmp/ | ||
# need cwd in path due to npcap dlls (see above) | ||
PATH="$PATH:$(pwd)" python3 ./suricata-verify/run.py |