processing / processing/processing4
CI/CD Actions for compiling apps on Github Actions using processing android
Personne n'a encore pris cette issue.
- Langage dominant
- Java
- Étoiles
- 494
- Forks
- 183
- Merge moyen
- 4 h 39 min
- PR mergées (30 j)
- 3
Description
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 }}
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par le workflow build.yml dans l’issue et l’invocation de processing-java, en particulier le chemin --sketchbook et la configuration de Android Mode. Vérifiez quel répertoire de sketchbook et quelle organisation des bibliothèques Processing attend, puis testez le workflow avec le projet spark lié. Le travail est terminé lorsqu’une exécution de GitHub Actions peut générer et compiler les artefacts APK Android de manière reproductible.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- android, github-actions, java
- Domaine
- build-system, ci-cd, mobile
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 30/100