OFRAK CI Tests #2668
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
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 ci | |
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" |