Skip to content

Decouple Android SDK and APK #109

Decouple Android SDK and APK

Decouple Android SDK and APK #109

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
concurrency:
# Cancels pending runs when a PR gets updated.
group: ${{ github.head_ref || github.run_id }}-${{ github.actor }}
cancel-in-progress: true
jobs:
build:
name: Build
strategy:
matrix:
include:
- os: "ubuntu-22.04"
- os: "windows-latest"
- os: "macos-14" # arm64 as per table: https://github.com/actions/runner-images/blob/8a1eeaf6ac70c66f675a04078d1a7222edd42008/README.md#available-images
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
with:
packages: 'tools platform-tools platforms;android-35 build-tools;35.0.0 ndk;29.0.13113456'
#
# Stable Zig Builds
#
- name: Setup Zig Stable (0.14.0)
# note(jae): 2024-09-15
# Uses download mirror first as preferred by Zig Foundation
# see: https://ziglang.org/news/migrate-to-self-hosting/
uses: mlugg/setup-zig@v1
with:
version: "0.14.0"
- name: Build Minimal Example (Zig Stable)
run: zig build -Dandroid=true --verbose
working-directory: examples/minimal
- name: Build SDL2 Example (Zig Stable)
run: |
zig build -Dandroid=true --verbose
zig build -Dandroid=true -Dcrash-on-exception --verbose
working-directory: examples/sdl2
# TODO(jae): 2025-03-30
# Need to figure out how to get 'adb shell monkey' to return an error code or be able to return an error code
# if the stdout of the command has 'Monkey aborted due to error.'
# - name: Enable KVM (For Android emulation)
# if: startsWith(matrix.os, 'ubuntu-')
# run: |
# echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
# sudo udevadm control --reload-rules
# sudo udevadm trigger --name-match=kvm
# - name: Run Minimal Example (Android Emulator)
# if: startsWith(matrix.os, 'ubuntu-')
# uses: reactivecircus/android-emulator-runner@v2
# with:
# api-level: 34
# arch: x86_64
# profile: Nexus 6
# script: |
# adb install ./zig-out/bin/minimal.apk
# adb shell am start -S -W -n com.zig.minimal/android.app.NativeActivity
# working-directory: examples/minimal
# - name: Run SDL2 Example (Android Emulator)
# if: startsWith(matrix.os, 'ubuntu-')
# uses: reactivecircus/android-emulator-runner@v2
# with:
# api-level: 34
# arch: x86_64
# profile: Nexus 6
# script: |
# adb install ./zig-out/bin/sdl-zig-demo.apk
# adb shell monkey --kill-process-after-error --monitor-native-crashes --pct-touch 100 -p com.zig.sdl2 --throttle 1000 -v 2
# working-directory: examples/sdl2
#
# Nightly Zig Builds
#
- name: Setup Zig Nightly
uses: mlugg/setup-zig@v1
with:
version: "master"
- name: Build Minimal Example (Zig Nightly)
run: zig build -Dandroid=true --verbose
working-directory: examples/minimal
- name: Build SDL2 Example (Zig Nightly)
run: zig build -Dandroid=true --verbose
working-directory: examples/sdl2