Skip to content

Commit

Permalink
ci: GitHub actions add windows-latest test build
Browse files Browse the repository at this point in the history
  • Loading branch information
3c7 authored and MatejKastak committed Jan 9, 2024
1 parent 54cadf6 commit c8e44af
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 11 deletions.
76 changes: 65 additions & 11 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,19 @@ jobs:
- name: Install YARA deps
run: sudo apt-get install -y automake libtool make gcc pkg-config libssl-dev libjansson-dev libmagic-dev
- name: Build YARA
run: cd yari-sys/yara && ./bootstrap.sh && CFLAGS="-fPIC" ./configure --enable-debug --disable-shared --enable-static --enable-cuckoo --enable-magic --enable-dotnet --with-crypto && make
run: |
cd yari-sys/yara
./bootstrap.sh
CFLAGS="-fPIC" ./configure --enable-debug --disable-shared --enable-static --enable-cuckoo --enable-magic --enable-dotnet --with-crypto
make
- name: Build
run: cargo build --verbose
run: cargo build
- name: Run Rust tests
run: cargo test --verbose
run: cargo test
- name: Run tests with yari using bundled bindings
run: |
cargo clean
YARI_USE_BUNDLED_BINDINGS=1 cargo test --verbose
YARI_USE_BUNDLED_BINDINGS=1 cargo test
- uses: actions/setup-python@v4
with:
python-version: '3.10'
Expand All @@ -48,19 +52,69 @@ jobs:
uses: actions/checkout@v3
with:
submodules: 'true'
- name: Install (Yara) Dependencies
- name: Install YARA deps
run: brew install autoconf automake libtool pkg-config jansson libmagic openssl [email protected] [email protected] [email protected]
- name: Build Yara
run: cd yari-sys/yara && ./bootstrap.sh && CFLAGS="-fPIC -I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib $LDFLAGS" LIBRARY_PATH="$(brew --prefix)/lib:$LIBRARY_PATH" ./configure --enable-debug --disable-shared --enable-static --enable-cuckoo --enable-magic --enable-dotnet --with-crypto && make
run: |
cd yari-sys/yara
./bootstrap.sh
CFLAGS="-fPIC -I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib $LDFLAGS" LIBRARY_PATH="$(brew --prefix)/lib:$LIBRARY_PATH" ./configure --enable-debug --disable-shared --enable-static --enable-cuckoo --enable-magic --enable-dotnet --with-crypto
make
- name: Build Yari (yari-sys)
run: cd yari-sys && CFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib $LDFLAGS" LIBRARY_PATH="$(brew --prefix)/lib:$LIBRARY_PATH" cargo build --release
- name: Build Yari (yari-cli)
run: cd yari-cli && CFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib $LDFLAGS" LIBRARY_PATH="$(brew --prefix)/lib:$LIBRARY_PATH" cargo build --release
- name: Build Yari (yari-py)
run: cd yari-py && python3.12 -mvenv .venv && .venv/bin/pip install maturin pytest && CFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib $LDFLAGS" LIBRARY_PATH="$(brew --prefix)/lib:$LIBRARY_PATH" .venv/bin/maturin build --release -i python3.10 -i python3.11 -i python3.12
- name: Run Rust tests
run: CFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib $LDFLAGS" LIBRARY_PATH="$(brew --prefix)/lib:$LIBRARY_PATH" cargo test --verbose
run: CFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib $LDFLAGS" LIBRARY_PATH="$(brew --prefix)/lib:$LIBRARY_PATH" cargo test
- name: Run Rust tests with bundled bindings
run: cargo clean && YARI_USE_BUNDLED_BINDINGS=1 CFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib $LDFLAGS" LIBRARY_PATH="$(brew --prefix)/lib:$LIBRARY_PATH" cargo test --verbose
run: |
cargo clean
YARI_USE_BUNDLED_BINDINGS=1 CFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib $LDFLAGS" LIBRARY_PATH="$(brew --prefix)/lib:$LIBRARY_PATH" cargo test
- name: Run Python tests
run: cd yari-py && .venv/bin/maturin develop && .venv/bin/pytest
run: |
cd yari-py
python3.12 -m venv .venv
.venv/bin/pip install maturin pytest
CFLAGS="-I$(brew --prefix)/include" LDFLAGS="-L$(brew --prefix)/lib $LDFLAGS" LIBRARY_PATH="$(brew --prefix)/lib:$LIBRARY_PATH" .venv/bin/maturin build -i python3.10 -i python3.11 -i python3.12
.venv/bin/maturin build
.venv/bin/maturin develop
.venv/bin/pytest
build-windows:
runs-on: windows-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v3
with:
submodules: 'recursive'
- uses: actions/setup-python@v3
with:
python-version: '3.10'
- name: Setup Nuget.exe
uses: nuget/setup-nuget@v1
with:
nuget-version: 'latest'
- name: Setup msbuild
uses: microsoft/[email protected]
- name: Install YARA Dependencies
run: nuget.exe restore windows/vs2017/yara.sln
working-directory: ./yari-sys/yara
- name: Build YARA
run: msbuild /m /p:Platform=x64 /p:Configuration=Release /p:PlatformToolset="v142" /p:WindowsTargetPlatformVersion="10.0.19041.0" windows/vs2017/yara.sln
working-directory: ./yari-sys/yara
shell: cmd
- name: Build yari-sys
run: |
cargo build
cargo test
working-directory: ./yari-sys
- name: Build Python wheels
run: |
pip install --upgrade pip
python -m venv env
. env/Scripts/activate
pip install maturin pytest
maturin develop
pytest tests
working-directory: ./yari-py
3 changes: 3 additions & 0 deletions yari-sys/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ fn link_lib(name: &str) {
#[cfg(target_os = "windows")]
fn link_windows() {
link_lib("libyara64");
link_lib("crypt32");
link_lib("user32");
// link_lib("cryptlib");
}

#[cfg(any(target_os = "linux", target_os = "macos"))]
Expand Down

0 comments on commit c8e44af

Please sign in to comment.