Skip to content

🔖 Version 1.16.0 #83

🔖 Version 1.16.0

🔖 Version 1.16.0 #83

Workflow file for this run

name: Build and publish graffiti
on:
push:
branches:
- "master"
pull_request:
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
jobs:
check-server-python-compat:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install Vermin
run: python -m pip install vermin
- name: Check for python version violation
run: vermin --config-file server/vermin.ini --quiet --violations server/
backend:
runs-on: ubuntu-latest
needs: check-server-python-compat
strategy:
matrix:
target:
- { name: jeb, type: pybunch }
- { name: intellij, type: java }
- { name: ghidra, type: java }
- { name: ida, type: pybunch }
- { name: vscode, type: typescript }
- { name: websites, type: typescript }
- { name: jadx, type: pack }
- { name: server, type: pybunch }
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup NodeJS
uses: actions/setup-node@v4
if: matrix.target.type == 'typescript'
- name: Setup JDK
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"
if: matrix.target.type == 'java'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
with:
gradle-version: 7.6
if: matrix.target.type == 'java'
- uses: er28-0652/setup-ghidra@master
with:
version: "11.0.3"
if: matrix.target.name == 'ghidra'
- name: Configure
run: make init
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
if: matrix.target.type == 'pybunch'
- name: Install pybunch
run: python -m pip install pybunch
if: matrix.target.type == 'pybunch'
- name: Build ${{ matrix.target.name }}
run: make ${{ matrix.target.name }}
- name: Upload Artifact
uses: actions/[email protected]
with:
name: Graffiti for ${{ matrix.target.name }}
path: out/*
frontend:
runs-on: ubuntu-latest
needs: backend
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Configure
run: make init
- name: Build web frontend
run: make web
- name: Upload Artifact
uses: actions/[email protected]
with:
name: Graffiti web frontend
path: out/*
- name: Download backends
uses: actions/download-artifact@v4
with:
path: /tmp/artifacts
- name: Copy backends
run: find /tmp/artifacts -type f -exec cp -v {} out/ \;
- name: Pack web frontend with backends
run: make web-collect
- name: Upload Artifact
uses: actions/[email protected]
with:
name: Graffiti Web frontend with backends
path: out/*_frontend_web_with_deps.zip
publish:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
needs: frontend
steps:
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Download web frontend
uses: actions/download-artifact@v4
with:
path: /tmp
name: Graffiti Web frontend with backends
- name: Unzip web frotnend
run: mkdir /tmp/web && unzip /tmp/*_frontend_web_with_deps.zip -d /tmp/web
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: /tmp/web
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4