name: Build Android on: [push] jobs: build: name: Build APK runs-on: ubuntu-latest steps: - name: Checkout source uses: actions/checkout@v4 - name: Set Up JDK uses: actions/setup-java@v3 with: distribution: 'zulu' java-version: '17' cache: 'gradle' - name: Setup Android SDK uses: android-actions/setup-android@v3 with: packages: 'platform-tools' # https://github.com/lzhiyong/android-sdk-tools/releases - name: Install ADB run: | curl --compressed --location --output tools.zip https://github.com/lzhiyong/android-sdk-tools/releases/download/34.0.3/android-sdk-tools-static-x86_64.zip unzip -d tools -n -q tools.zip rm -f tools.zip cp tools/platform-tools/adb $ANDROID_HOME/platform-tools/adb rm -fr tools shell: bash # https://ci.android.com/builds/branches/aosp-emu-master-dev/grid - name: Install Emulator run: | curl --compressed --location --output emulator.zip $(curl --location --silent https://ci.android.com/builds/submitted/11162281/emulator-linux_aarch64/latest/sdk-repo-linux_aarch64-emulator-11162281.zip | grep -o 'https://storage[^"]*' | sed 's/\\u0026/\&/g') unzip -d $ANDROID_HOME -n -q emulator.zip rm -f emulator.zip cp $ANDROID_HOME/platform-tools/package.xml $ANDROID_HOME/emulator/package.xml sed -i \ -e 's|path="[a-zA-Z-]*"|path="emulator"|g' \ -e 's|Android .*<\/display-name>|Android Emulator<\/display-name>|g' \ $ANDROID_HOME/emulator/package.xml echo 'Vulkan = off\nGLDirectMem = on' >> ~/.android/advancedFeatures.ini shell: bash - name: Install SDK Tools run: | sdkmanager 'platforms;android-34' 'android-34;google_apis' 'tools' bash -c 'yes || true' | sdkmanager --licenses shell: bash # Install Android SDK Build Tools - name: Setup Node.js uses: actions/setup-node@v1 with: node-version: 20.x # - name: Install Ionic # run: npm install -g @ionic/cli - name: Install app dependencies run: npm install - name: Ionic Cap Sync run: ionic capacitor sync --prod - name: Change permission for gradlew working-directory: ./android/ run: chmod +x ./gradlew - name: Clean gradle project working-directory: ./android/ run: ./gradlew --no-daemon clean # Create APK Debug - name: Build apk debug project (APK) working-directory: ./android/ run: ./gradlew --no-daemon assembleDebug # Run Build Project - name: Build gradle project working-directory: ./android/ run: ./gradlew --no-daemon build - name: Generate the Android App Bundle working-directory: ./android/ run: ./gradlew --no-daemon bundle - name: Upload dev APK uses: actions/upload-artifact@v1 with: name: app-dev path: apk/app-debug.apk - name: Upload release bundle uses: actions/upload-artifact@v1 with: name: app-release path: apk/app.aab