processing / processing/processing4
CI/CD Actions for compiling apps on Github Actions using processing android
还没有人认领这个 Issue。
- 主要语言
- Java
- 星标
- 494
- 派生
- 183
- 平均合并
- 4 小时 39 分钟
- 30 天内合并 PR
- 3
描述
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 }}
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从 issue 中的 build.yml workflow 和 processing-java 调用开始,重点检查 --sketchbook 路径以及 Android Mode 的设置。确认 Processing 期望的 sketchbook 目录和库布局,然后针对链接的 spark 项目测试该 workflow。当一次 GitHub Actions 运行能够可重复地生成并构建 Android APK 工件时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- android, github-actions, java
- 领域
- build-system, ci-cd, mobile
- Issue 类型
- 功能
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 30/100