name: Build and Send APK to Telegram on: push: branches: - main workflow_dispatch: jobs: build-and-send: runs-on: ubuntu-latest env: TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up JDK 21 uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: '21' - name: Install jq run: sudo apt-get update && sudo apt-get install -y jq - name: Set up Android SDK uses: android-actions/setup-android@v3 - name: Accept Android SDK licenses run: yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses || yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses || true - name: Grant execute permission for gradlew run: chmod +x ./gradlew - name: Build Debug APK run: ./gradlew assembleDebug - name: Build Release APK run: ./gradlew assembleRelease - name: Build Bcore AAR run: ./gradlew :Bcore:assembleRelease - name: Build Bcore Debug AAR run: ./gradlew :Bcore:assembleDebug - name: Find Bcore AAR path id: aar_path run: | AAR=$(find ./Bcore/build/outputs/aar -name "*.aar" | head -n 1) echo "aar_path=$AAR" >> $GITHUB_OUTPUT - name: Find Bcore AAR paths id: aar_paths run: | DEBUG_AAR=$(find ./Bcore/build/outputs/aar -name "*debug.aar" | head -n 1) RELEASE_AAR=$(find ./Bcore/build/outputs/aar -name "*release.aar" | head -n 1) echo "debug_aar_path=$DEBUG_AAR" >> $GITHUB_OUTPUT echo "release_aar_path=$RELEASE_AAR" >> $GITHUB_OUTPUT - name: Send Bcore Debug AAR to Telegram and Pin env: TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} run: | COMMIT_MSG=$(git log -1 --pretty=%B) RESPONSE=$(curl -s -F document=@"${{ steps.aar_paths.outputs.debug_aar_path }}" \ -F chat_id="$TELEGRAM_CHAT_ID" \ -F caption="[Bcore DEBUG AAR] $COMMIT_MSG" \ https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendDocument) MESSAGE_ID=$(echo $RESPONSE | jq '.result.message_id') curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/pinChatMessage" \ -d chat_id="$TELEGRAM_CHAT_ID" \ -d message_id="$MESSAGE_ID" - name: Send Bcore Release AAR to Telegram and Pin env: TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} run: | COMMIT_MSG=$(git log -1 --pretty=%B) RESPONSE=$(curl -s -F document=@"${{ steps.aar_paths.outputs.release_aar_path }}" \ -F chat_id="$TELEGRAM_CHAT_ID" \ -F caption="[Bcore RELEASE AAR] $COMMIT_MSG" \ https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendDocument) MESSAGE_ID=$(echo $RESPONSE | jq '.result.message_id') curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/pinChatMessage" \ -d chat_id="$TELEGRAM_CHAT_ID" \ -d message_id="$MESSAGE_ID" - name: Find APK paths id: apk_paths run: | DEBUG_APK=$(find ./app/build/outputs/apk/debug -name "*.apk" | head -n 1) RELEASE_APK=$(find ./app/build/outputs/apk/release -name "*.apk" | head -n 1) echo "debug_apk_path=$DEBUG_APK" >> $GITHUB_OUTPUT echo "release_apk_path=$RELEASE_APK" >> $GITHUB_OUTPUT - name: Send ALL Debug APKs to Telegram and Pin env: TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} run: | COMMIT_MSG=$(git log -1 --pretty=%B) for APK in ./app/build/outputs/apk/debug/*.apk; do RESPONSE=$(curl -s -F document=@"$APK" \ -F chat_id="$TELEGRAM_CHAT_ID" \ -F caption="[DEBUG] $(basename $APK) $COMMIT_MSG" \ https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendDocument) MESSAGE_ID=$(echo $RESPONSE | jq '.result.message_id') curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/pinChatMessage" \ -d chat_id="$TELEGRAM_CHAT_ID" \ -d message_id="$MESSAGE_ID" done - name: Send ALL Release APKs to Telegram and Pin env: TELEGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }} TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} run: | COMMIT_MSG=$(git log -1 --pretty=%B) for APK in ./app/build/outputs/apk/release/*.apk; do RESPONSE=$(curl -s -F document=@"$APK" \ -F chat_id="$TELEGRAM_CHAT_ID" \ -F caption="[RELEASE] $(basename $APK) $COMMIT_MSG" \ https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendDocument) MESSAGE_ID=$(echo $RESPONSE | jq '.result.message_id') curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/pinChatMessage" \ -d chat_id="$TELEGRAM_CHAT_ID" \ -d message_id="$MESSAGE_ID" done