processing / processing/processing4
CI/CD Actions for compiling apps on Github Actions using processing android
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Java
- Estrellas
- 494
- Forks
- 183
- Merge medio
- 4 h 39 min
- PR fusionados (30 d)
- 3
Descripción
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 }}
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza con el workflow build.yml de la incidencia y la invocación de processing-java, especialmente con la ruta de --sketchbook y la configuración de Android Mode. Verifica qué directorio de sketchbook y qué estructura de bibliotecas espera Processing y, después, prueba el workflow con el proyecto spark enlazado. Se considera terminado cuando una ejecución de GitHub Actions puede generar y compilar de forma reproducible los artefactos APK de Android.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- android, github-actions, java
- Área
- build-system, ci-cd, mobile
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 30/100