Android Build #104
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Android Build | |
| on: | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| jobs: | |
| build: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # Cache Buildozer global directory | |
| - name: Cache Buildozer global directory | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.buildozer | |
| key: ${{ runner.os }}-buildozer-global | |
| restore-keys: | | |
| ${{ runner.os }}-buildozer-global | |
| # Cache Buildozer directory in app | |
| - name: Cache Buildozer directory in app | |
| uses: actions/cache@v4 | |
| with: | |
| path: .buildozer | |
| key: ${{ runner.os }}-buildozer-app-v2 | |
| restore-keys: | | |
| ${{ runner.os }}-buildozer-app | |
| # Cache Android SDK | |
| - name: Cache Android SDK | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.buildozer/android/platform/android-sdk | |
| key: ${{ runner.os }}-android-sdk | |
| restore-keys: | | |
| ${{ runner.os }}-android-sdk | |
| # Install dependencies | |
| - name: Install dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt-get install -y \ | |
| build-essential \ | |
| git \ | |
| ffmpeg \ | |
| libsdl2-dev \ | |
| libsdl2-image-dev \ | |
| libsdl2-mixer-dev \ | |
| libsdl2-ttf-dev \ | |
| libportmidi-dev \ | |
| libswscale-dev \ | |
| libavformat-dev \ | |
| libavcodec-dev \ | |
| libunwind-dev \ | |
| zlib1g-dev \ | |
| libsqlite3-dev \ | |
| sqlite3 \ | |
| bzip2 \ | |
| libbz2-dev \ | |
| openssl \ | |
| libgdbm-dev \ | |
| libgdbm-compat-dev \ | |
| liblzma-dev \ | |
| libreadline-dev \ | |
| uuid-dev \ | |
| libgstreamer1.0 \ | |
| gstreamer1.0-plugins-base \ | |
| gstreamer1.0-plugins-good \ | |
| zip \ | |
| unzip \ | |
| autoconf \ | |
| libtool \ | |
| pkg-config \ | |
| libncurses5-dev \ | |
| libncursesw5-dev \ | |
| libtinfo6 \ | |
| cmake \ | |
| libffi-dev \ | |
| libssl-dev \ | |
| automake | |
| # Setup Java 17 | |
| - name: Setup Java 17 required by Gradle | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: temurin | |
| java-version: '17' | |
| # Setup Python | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| # Install pip dependencies | |
| - name: Install pip dependencies | |
| run: | | |
| pip install --upgrade pip | |
| pip install buildozer cython==0.29.33 | |
| # Clean build | |
| - name: Clean build | |
| run: | | |
| rm -rf .buildozer | |
| rm -rf bin | |
| # Build APK | |
| - name: Build with Buildozer | |
| run: | | |
| yes | buildozer -v android debug | |
| # Upload artifact (ZIP v Actions) | |
| - name: Upload APK artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: package | |
| path: | | |
| bin/*.apk | |
| bin/*.aab | |
| retention-days: 3 | |
| # 🚀 GitHub Release | |
| - name: Upload APK to GitHub Release | |
| if: github.ref == 'refs/heads/main' | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| tag_name: v${{ github.run_number }} | |
| name: PyServe Build #${{ github.run_number }} | |
| files: bin/*.apk | |
| draft: false | |
| prerelease: false | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |