processing / processing/processing4
CI/CD Actions for compiling apps on Github Actions using processing android
Nessuno ha ancora preso questa issue.
- Lingua principale
- Java
- Stelle
- 494
- Fork
- 183
- Merge medio
- 4h 39m
- PR unite (30g)
- 3
Descrizione
Currently, there aren’t any existing GitHub Actions to automatically build desktop and mobile apps from Processing .pde code. I’ve been working on setting one up, as you can see from the build.yml file attached. However, I’m running into an issue determining the correct folder that Processing considers its "sketchbook" directory. This is important because the Android libraries need to be placed there for the project to build successfully.
I would really appreciate your guidance in fixing this. Having a working GitHub Actions setup for Processing sketches, games, and apps could benefit the entire Processing community by enabling automated builds. Not to mention many app stores for libre software won't accept software without reproducible builds using CI/CD actions.
Link to my test project: https://github.com/ronynn/spark
name: Build Processing Android APK
on:
push:
tags:
- "alpha"
- "beta"
- "release*"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install OpenJDK
run: |
sudo apt-get update && sudo apt-get install -y openjdk-17-jdk
- name: Install Processing CLI
run: |
wget https://github.com/processing/processing4/releases/download/processing-1297-4.3.4/processing-4.3.4-linux-x64.tgz -O processing.tgz
tar -xzf processing.tgz
sudo mv processing-4.3.4 /opt/processing
- name: Debug Repository Structure
run: ls -R $GITHUB_WORKSPACE
- name: Install Android SDK
run: |
sudo apt-get install -y unzip
wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O sdk-tools.zip
mkdir -p $HOME/android-sdk/cmdline-tools
unzip sdk-tools.zip -d $HOME/android-sdk/cmdline-tools
mv $HOME/android-sdk/cmdline-tools/cmdline-tools $HOME/android-sdk/cmdline-tools/latest
echo "ANDROID_HOME=$HOME/android-sdk" >> $GITHUB_ENV
echo "PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$PATH" >> $GITHUB_ENV
yes | $HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager --sdk_root=$HOME/android-sdk "platform-tools" "build-tools;34.0.0" "platforms;android-34"
yes | $HOME/android-sdk/cmdline-tools/latest/bin/sdkmanager --licenses
- name: Install Processing Android Mode and Setup Sketchbook
run: |
# Create a custom sketchbook folder with both modes and libraries directories.
mkdir -p $HOME/sketchbook/modes
mkdir -p $HOME/sketchbook/libraries
wget https://github.com/processing/processing-android/releases/download/latest/AndroidMode.zip -O AndroidMode.zip
unzip AndroidMode.zip -d $HOME/sketchbook/modes/
# If the Android Mode package contains libraries (commonly in modes/AndroidMode/libraries),
# copy them into the sketchbook libraries folder so Processing can find them.
if [ -d "$HOME/sketchbook/modes/AndroidMode/libraries" ]; then
cp -r $HOME/sketchbook/modes/AndroidMode/libraries/* $HOME/sketchbook/libraries/
fi
echo "PROCESSING_SKETCHBOOK=$HOME/sketchbook" >> $GITHUB_ENV
echo "Sketchbook structure:"
ls -R $HOME/sketchbook
- name: Generate Android Project
run: |
/opt/processing/processing-java \
--sketch=$GITHUB_WORKSPACE/spark \
--output=$GITHUB_WORKSPACE/build \
--force --export --variant android \
--sketchbook=$HOME/sketchbook
- name: Build APK (Ant)
run: |
cd $GITHUB_WORKSPACE/build/android
ant debug
ant release
- name: Upload Debug APK as Artifact
uses: actions/upload-artifact@v4
with:
name: Processing-Android-APK-Debug
path: build/android/bin/app-debug.apk
- name: Upload Unsigned APK as Artifact
uses: actions/upload-artifact@v4
with:
name: Processing-Android-APK-Unsigned
path: build/android/bin/app-release-unsigned.apk
- name: Create GitHub Release (Only for Release Tags)
if: startsWith(github.ref, 'refs/tags/release')
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ github.ref_name }}
name: Processing APK - ${{ github.ref_name }}
draft: false
prerelease: false
files: |
build/android/bin/app-debug.apk
build/android/bin/app-release-unsigned.apk
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia dal workflow build.yml nell’issue e dall’invocazione di processing-java, in particolare dal percorso --sketchbook e dalla configurazione di Android Mode. Verifica quale directory sketchbook e quale struttura delle librerie si aspetta Processing, quindi prova il workflow con il progetto spark collegato. Il lavoro è completato quando un’esecuzione di GitHub Actions può generare e compilare in modo riproducibile gli artefatti APK Android.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- android, github-actions, java
- Ambito
- build-system, ci-cd, mobile
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 30/100