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: | apt-get update apt-get install -y unzip curl export ANDROID_HOME=$HOME/android export ANDROID_SDK_ROOT=$HOME/android 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 unzip cmdline-tools.zip mv cmdline-tools cmdline-tools/latest rm cmdline-tools.zip # Add tools to PATH export PATH=$ANDROID_HOME/cmdline-tools/latest/bin:$PATH export PATH=$ANDROID_HOME/platform-tools:$PATH # Accept licenses yes | sdkmanager --licenses # Install required SDK parts sdkmanager "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