name: Build APK and Upload Artifacts on: push: branches: - master jobs: build-apk: runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v3 - name: Set up Java and Android SDK run: | sudo apt-get update -qq && sudo apt-get install -qq -y openjdk-17-jdk wget unzip wget https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O android-commandlinetools.zip mkdir -p $HOME/Android/Sdk/cmdline-tools unzip android-commandlinetools.zip -d $HOME/Android/Sdk/cmdline-tools mv $HOME/Android/Sdk/cmdline-tools/cmdline-tools $HOME/Android/Sdk/cmdline-tools/tools mkdir -p $HOME/Android/Sdk/licenses yes | $HOME/Android/Sdk/cmdline-tools/tools/bin/sdkmanager --licenses || true $HOME/Android/Sdk/cmdline-tools/tools/bin/sdkmanager "platforms;android-30" "build-tools;30.0.3" "platforms;android-34" "build-tools;34.0.0" # Définir la variable d'environnement ANDROID_HOME export ANDROID_HOME=$HOME/Android/Sdk echo "ANDROID_HOME=$ANDROID_HOME" >> $GITHUB_ENV - name: Set up Gradle run: | sed -i 's/\r$//' gradlew chmod +x ./gradlew ./gradlew dependencies - name: Create or update local.properties run: | echo "sdk.dir=$ANDROID_HOME" > local.properties - name: Build APK run: | ./gradlew assembleDebug # ou assembleRelease pour un APK de production - name: Verify APK existence and non-zero size run: | APK_FILE="app/build/outputs/apk/debug/app-debug.apk" if [ ! -f "$APK_FILE" ]; then echo "Erreur : L'APK n'a pas été généré !" exit 1 fi APK_SIZE=$(stat -c %s "$APK_FILE") if [ "$APK_SIZE" -eq 0 ]; then echo "Erreur : L'APK est vide !" exit 1 fi echo "APK est prêt à être uploadé. Taille : $APK_SIZE octets" - name: Upload APK artifact uses: actions/upload-artifact@v3 with: name: app-debug-apk path: app/build/outputs/apk/debug/app-debug.apk