name: Build APK on: push: branches: [ master ] jobs: build: runs-on: docker defaults: run: working-directory: apk steps: - name: 📥 Checkout uses: actions/checkout@v4 - name: 🟢 Setup Node uses: actions/setup-node@v4 with: node-version: 18 - name: 📦 Install deps run: npm install - name: ☕ Setup Java uses: actions/setup-java@v4 with: distribution: temurin java-version: 17 - name: 🤖 Setup Android SDK run: | set -e apt-get update apt-get install -y unzip curl export ANDROID_HOME=$HOME/android export ANDROID_SDK_ROOT=$ANDROID_HOME mkdir -p $ANDROID_HOME/cmdline-tools cd $ANDROID_HOME # Download command line tools curl -o cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip # Extract unzip -q cmdline-tools.zip rm cmdline-tools.zip # Fix folder structure (IMPORTANT: zip contains cmdline-tools/cmdline-tools/) mv cmdline-tools/cmdline-tools cmdline-tools/latest # Add tools to PATH (sdkmanager lives here) export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH export PATH=$ANDROID_HOME/platform-tools:$PATH # Accept licenses yes | sdkmanager --sdk_root=$ANDROID_SDK_ROOT --licenses # Install required SDK components sdkmanager --sdk_root=$ANDROID_SDK_ROOT \ "platform-tools" \ "platforms;android-33" \ "build-tools;33.0.0" - name: 🔧 Set env run: | echo "ANDROID_HOME=$HOME/android" >> $GITHUB_ENV echo "ANDROID_SDK_ROOT=$HOME/android" >> $GITHUB_ENV echo "$HOME/android/platform-tools" >> $GITHUB_PATH - name: ⚙️ Expo prebuild run: npx expo prebuild --non-interactive - name: 🏗️ Build APK run: | cd android ./gradlew assembleRelease - name: 📦 Upload APK uses: actions/upload-artifact@v4 with: name: app-release path: android/app/build/outputs/apk/release/app-release.apk