name: Generated APK AAB (Upload - Create Artifact To Github Action) on: push jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 # Set Current Date As Env Variable # - name: Set current date as env variable # run: echo "date_today=$(date +'%Y-%m-%d')" >> $GITHUB_ENV # Set Repository Name As Env Variable # - name: Set repository name as env variable # run: echo "repository_name=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')" >> $GITHUB_ENV - name: Set Up JDK uses: actions/setup-java@v3 with: distribution: 'zulu' # See 'Supported distributions' for available options java-version: '17' cache: 'gradle' - name: Setup Node.js uses: actions/setup-node@v1 with: node-version: 20.x - name: test SDK run: | curl --location --output ./idesetup https://github.com/AndroidIDEOfficial/androidide-tools/raw/main/scripts/idesetup ls chmod +x ./idesetup (while sleep 3; do echo "y"; done) | ./idesetup -s 34.0.4 -c -j 17 cat $ANDROID_HOME shell: bash # - 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 # continue-on-error: true # run: | # curl --compressed --location --output tools.zip https://github.com/lzhiyong/android-sdk-tools/releases/download/34.0.3/android-sdk-tools-static-aarch64.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-33' 'tools' bash -c 'yes || true' | sdkmanager --licenses shell: bash - name: Remove gradle caches run: rm -rf ~/.gradle/caches/ shell: bash # - 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 wrapper permissions working-directory: ./android/ run: chmod +x ./gradlew # Create APK Debug - name: Build apk debug project (APK) - ${{ env.main_project_module }} module working-directory: ./android/ run: ./gradlew assembleDebug # Create APK Release - name: Build apk release project (APK) - ${{ env.main_project_module }} module working-directory: ./android/ run: ./gradlew assemble # Run Tests Build - name: Run gradle tests working-directory: ./android/ run: ./gradlew test # Run Build Project - name: Build gradle project working-directory: ./android/ run: ./gradlew build # Create Bundle AAB Release # Noted for main module build [main_project_module]:bundleRelease - name: Build app bundle release (AAB) - ${{ env.main_project_module }} module working-directory: ./android/ run: ./gradlew ${{ env.main_project_module }}:bundleRelease # Upload Artifact Build # Noted For Output [main_project_module]/build/outputs/apk/debug/ - name: Upload APK Debug - ${{ env.repository_name }} uses: actions/upload-artifact@v3 with: name: ${{ env.date_today }} - ${{ env.playstore_name }} - ${{ env.repository_name }} - APK(s) debug generated path: ${{ env.main_project_module }}/build/outputs/apk/debug/ # Noted For Output [main_project_module]/build/outputs/apk/release/ - name: Upload APK Release - ${{ env.repository_name }} uses: actions/upload-artifact@v3 with: name: ${{ env.date_today }} - ${{ env.playstore_name }} - ${{ env.repository_name }} - APK(s) release generated path: ${{ env.main_project_module }}/build/outputs/apk/release/ # Noted For Output [main_project_module]/build/outputs/bundle/release/ - name: Upload AAB (App Bundle) Release - ${{ env.repository_name }} uses: actions/upload-artifact@v3 with: name: ${{ env.date_today }} - ${{ env.playstore_name }} - ${{ env.repository_name }} - App bundle(s) AAB release generated path: ${{ env.main_project_module }}/build/outputs/bundle/release/