processing / processing/processing4
CI/CD Actions for compiling apps on Github Actions using processing android
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Java
- Star
- 494
- Fork
- 183
- Merge trung bình
- 4 giờ 39 phút
- Pull request đã merge (30 ngày)
- 3
Mô tả
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 }}
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với workflow build.yml trong issue và lệnh gọi processing-java, đặc biệt là đường dẫn --sketchbook và việc thiết lập Android Mode. Xác minh Processing mong đợi thư mục sketchbook và bố cục thư viện nào, sau đó kiểm thử workflow với dự án spark được liên kết. Được xem là hoàn tất khi một lần chạy GitHub Actions có thể tạo và build các artifact APK Android một cách có thể tái lập.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- android, github-actions, java
- Lĩnh vực
- build-system, ci-cd, mobile
- Loại issue
- Tính năng
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 30/100