Some checks failed
Generated APK AAB (Upload - Create Artifact To Github Action) / build (push) Has been cancelled
144 lines
5.4 KiB
YAML
144 lines
5.4 KiB
YAML
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
|
|
cp tools/build-tools/aapt $ANDROID_HOME/build-tools/aapt
|
|
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|<display-name>Android .*<\/display-name>|<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/
|