name: Build Android on: [push, pull_request] 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: amyu/setup-android@v4 with: sdk-version: | 30 34 build-tools-version: 30.0.3 - name: Install android Build Tools continue-on-error: true run: | yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "build-tools;30.0.3" # yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "platforms;android-30" # yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "platforms;android-31" # yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager "build-tools;31.0.0" - name: Accept license for Android SDK run: yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses || if [ $? -ne '141' ]; then exit $?; fi; #Captures SIGPIPE 141 error but still allow repeating "y" to accept all licenses - 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 # Create APK Debug - name: Build apk debug project (APK) working-directory: ./android/ run: ./gradlew assembleDebug # Run Build Project - name: Build gradle project working-directory: ./android/ run: ./gradlew build - name: Generate the Android App Bundle working-directory: ./android/ run: ./gradlew 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