Skip to content

Merge branch 'v4.5.2-stable' #35

Merge branch 'v4.5.2-stable'

Merge branch 'v4.5.2-stable' #35

Workflow file for this run

name: Build (multiplatform)
on:
workflow_dispatch:
pull_request:
push:
jobs:
build_linux:
runs-on: ubuntu-latest
strategy:
matrix:
jdk: [21]
libyara_tag: ["v4.5.2-subreption"]
steps:
# Step 1: Checkout the repository
- name: Checkout code
uses: actions/checkout@v4
# Step 2: Set up JDK
- name: Set up JDK ${{ matrix.jdk }}
uses: actions/setup-java@v4
with:
distribution: 'oracle'
java-version: ${{ matrix.jdk }}
settings-path: ${{ github.workspace }}
- name: Clone libyara (${{ matrix.libyara_tag }})
uses: actions/checkout@v4
with:
repository: subreption/yara
path: yara
ref: ${{ matrix.libyara_tag }}
token: ${{ secrets.GH_YARA_REPO_PAT }}
# Step 3: Build libyara on Linux
- name: Build libyara (${{ matrix.libyara_tag }})
run: |
cd yara
./bootstrap.sh
./configure --without-crypto --enable-area --disable-shared CFLAGS=-fPIC
make
echo "YARA_HOME=$PWD" >> $GITHUB_ENV
# Step 4: Build YARA-Java on Linux
- name: Build YARA-Java
run: mvn -B package --file pom.xml
env:
YARA_HOME: ${{ env.YARA_HOME }}
YARA_BINARY_PATH: ${{ env.YARA_HOME }}/yara
YARAC_BINARY_PATH: ${{ env.YARA_HOME }}/yarac
- name: Upload linux64 build artifacts
uses: actions/upload-artifact@v4
with:
name: linux64-artifacts
path: target/*.jar
overwrite: true
build_mac:
runs-on: macos-latest
steps:
# Step 1: Checkout the repository
- name: Checkout code
uses: actions/checkout@v4
# Step 2: Set up JDK 21 on macOS
- name: Set up JDK 21 on macOS
uses: actions/setup-java@v4
with:
distribution: 'oracle'
java-version: 21
settings-path: ${{ github.workspace }}
- name: Install dependencies
run: |
brew install \
autoconf \
automake \
bison \
flex \
libtool \
pkg-config \
jansson \
libmagic \
openssl@3 \
protobuf \
protobuf-c
- name: Print versions
run: |
bison --version
gcc --version
- name: Clone libyara (${{ matrix.libyara_tag }})
uses: actions/checkout@v4
with:
repository: subreption/yara
path: yara
ref: ${{ matrix.libyara_tag }}
token: ${{ secrets.GH_YARA_REPO_PAT }}
# Step 3: Build libyara on macOS
- name: Build libyara on macOS (${{ matrix.libyara_tag }})
run: |
cd yara
./bootstrap.sh
./configure --without-crypto --enable-area --disable-shared CFLAGS=-fPIC
make
echo "YARA_HOME=$PWD" >> $GITHUB_ENV
# Step 4: Build YARA-Java on macOS
- name: Build YARA-Java (macOS)
run: mvn -B package --file pom.xml
env:
YARA_HOME: ${{ env.YARA_HOME }}
YARA_BINARY_PATH: ${{ env.YARA_HOME }}/yara
YARAC_BINARY_PATH: ${{ env.YARA_HOME }}/yarac
- name: Show versions
run: |
bison --version
gcc --version
- name: Upload osx64 build artifacts
uses: actions/upload-artifact@v4
with:
name: osx64-artifacts
path: target/*-osx64.jar
overwrite: true
bundle:
needs: [build_linux, build_mac]
runs-on: ubuntu-latest
steps:
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: linux64-artifacts
path: build/linux64
- name: Download macOS build artifacts
uses: actions/download-artifact@v4
with:
name: osx64-artifacts
path: build/osx64
- name: List current working directory
run: ls -lhRt
# Step to bundle Linux and macOS JARs
- name: Bundle multiplatform JARs
run: |
mkdir -p bundled-jars
cp build/linux64/*.jar bundled-jars/
cp build/osx64/*.jar bundled-jars/
- name: Upload bundled JARs
uses: actions/upload-artifact@v4
with:
name: bundled-jars
path: bundled-jars