Feature/formatting #43
Workflow file for this run
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: Build and publish graffiti | |
on: | |
push: | |
branches: | |
- "master" | |
pull_request: | |
workflow_dispatch: | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
jobs: | |
backend: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: | |
- { name: jeb, type: pybunch } | |
- { name: intellij, type: java } | |
- { name: clion, type: java } | |
- { name: ida, type: pybunch } | |
- { name: vscode, type: typescript } | |
- { name: opengrok_sourcegraph, 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: "19" | |
if: matrix.target.type == 'java' | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
with: | |
gradle-version: 7.6 | |
if: matrix.target.type == 'java' | |
- 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 |