Skip to content

OFRAK CI Tests

OFRAK CI Tests #2536

Workflow file for this run

name: OFRAK CI Tests
on:
pull_request:
branches:
- master
push:
branches:
- master
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
inputs:
permissions:
contents: read
defaults:
run:
shell: bash
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
lfs: true
- uses: actions/setup-python@v4
with:
python-version: '3.7'
cache: pip
cache-dependency-path: '**/setup.py'
- name: Install pre-commit
run: |
python3 -m pip install pre-commit
pre-commit install
- name: Run pre-commit
run: |
pre-commit run --all-files
- name: Install frontend linting dependencies
run: |
cd frontend
npm install
sudo apt-get install shellcheck
python3 -m pip install black==23.3.0
- name: Lint frontend
run: |
cd frontend
make check
ofrak-ghidra:
name: Test main OFRAK components
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
lfs: true
- uses: actions/setup-python@v4
with:
python-version: '3.7'
cache: pip
cache-dependency-path: '**/setup.py'
- name: Build Ghidra image
run: |
python3 -m pip install PyYAML
DOCKER_BUILDKIT=1 \
python3 build_image.py \
--config ofrak-ghidra.yml \
--base \
--finish \
--cache-from redballoonsecurity/ofrak/core-dev-base:latest
- name: Test documentation
run: |
docker run \
--interactive \
--rm \
--entrypoint bash \
--volume "$(pwd)":/ofrak \
redballoonsecurity/ofrak/ghidra:latest \
-c "cd /ofrak \
&& mkdocs build --site-dir /tmp/docs"
- name: Test components
run: |
docker run \
--interactive \
--rm \
--entrypoint bash \
redballoonsecurity/ofrak/ghidra:latest \
-c "python -m ofrak_ghidra.server start \
&& ofrak license --community --i-agree \
&& make test"
ofrak-angr:
name: Test OFRAK angr and capstone components
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
lfs: true
- uses: actions/setup-python@v4
with:
python-version: '3.7'
cache: pip
cache-dependency-path: '**/setup.py'
- name: Build angr image
run: |
python3 -m pip install PyYAML
DOCKER_BUILDKIT=1 \
python3 build_image.py \
--config ofrak-angr.yml \
--base \
--finish \
--cache-from redballoonsecurity/ofrak/core-dev-base:latest
- name: Test components
run: |
docker run \
--interactive \
--rm \
--entrypoint bash \
--volume "$(pwd)":/ofrak \
redballoonsecurity/ofrak/angr:latest \
-c "ofrak license --community --i-agree \
&& make -C /ofrak_angr test \
&& make -C /ofrak_capstone test"
ofrak-tutorial:
name: Test OFRAK examples and tutorial notebooks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
lfs: true
- uses: actions/setup-python@v4
with:
python-version: '3.7'
cache: pip
cache-dependency-path: '**/setup.py'
- name: Build tutorial image
run: |
python3 -m pip install PyYAML
DOCKER_BUILDKIT=1 \
python3 build_image.py \
--config ofrak-tutorial.yml \
--base \
--finish \
--cache-from redballoonsecurity/ofrak/core-dev-base:latest
- name: Test tutorials
run: |
docker run \
--interactive \
--rm \
--entrypoint bash \
redballoonsecurity/ofrak/tutorial:latest \
-c "python -m ofrak_ghidra.server start \
&& ofrak license --community --i-agree \
&& make -C /examples test \
&& make -C /ofrak_tutorial test"