chore: add back support for legacy TLS handshake #778
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Debug build | |
| on: | |
| push: | |
| branches: | |
| - dev | |
| paths-ignore: | |
| - '**.md' | |
| - '.github/**' | |
| - '!.github/workflows/debug.yml' | |
| jobs: | |
| ffmpeg: | |
| name: Native Build (FFmpeg) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Fetch Status | |
| run: | | |
| sed -i 's/\/\///g' settings.gradle | |
| git submodule status TMessagesProj/jni/ffmpeg > ffmpeg_status | |
| git submodule status TMessagesProj/jni/libvpx > libvpx_status | |
| - name: FFmpeg Cache | |
| id: cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| TMessagesProj/jni/ffmpeg/build | |
| TMessagesProj/jni/libvpx/build | |
| key: ${{ hashFiles('ffmpeg_status', 'libvpx_status', 'TMessagesProj/jni/*ffmpeg*.sh', 'TMessagesProj/jni/*libvpx*.sh', 'TMessagesProj/jni/patches/ffmpeg/*') }} | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| with: | |
| python-version: '3.12' | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v3 | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: Setup Android SDK Tools | |
| uses: android-actions/setup-android@v3 | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| - name: Install NDK | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: | | |
| echo "y" | sdkmanager --install "ndk;21.4.7075529" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null | |
| echo "sdk.dir=${ANDROID_HOME}" > local.properties | |
| echo "ndk.dir=${ANDROID_HOME}/ndk/21.4.7075529" >> local.properties | |
| - name: Native Build | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: | | |
| ./run init action ffmpeg | |
| ./run init libs libvpx | |
| ./run init libs ffmpeg | |
| boringssl: | |
| name: Native Build (BoringSSL) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Fetch Status | |
| run: | | |
| sed -i 's/\/\///g' settings.gradle | |
| git submodule status TMessagesProj/jni/boringssl > boringssl_status | |
| - name: BoringSSL Cache | |
| id: cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| TMessagesProj/jni/boringssl/build | |
| key: ${{ hashFiles('boringssl_status') }} | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v3 | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: Setup Android SDK Tools | |
| uses: android-actions/setup-android@v3 | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| - name: Install NDK | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: | | |
| echo "y" | sdkmanager --install "ndk;21.4.7075529" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null | |
| echo "sdk.dir=${ANDROID_HOME}" > local.properties | |
| echo "ndk.dir=${ANDROID_HOME}/ndk/21.4.7075529" >> local.properties | |
| - name: Native Build | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: | | |
| ./run init action boringssl | |
| ./run init libs boringssl | |
| native: | |
| name: Native Build (Telegram) | |
| runs-on: ubuntu-latest | |
| needs: | |
| - ffmpeg | |
| - boringssl | |
| strategy: | |
| matrix: | |
| flavor: | |
| - armeabi-v7a | |
| - arm64-v8a | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Fetch Status | |
| run: | | |
| sed -i 's/\/\///g' settings.gradle | |
| git submodule status TMessagesProj/jni/ffmpeg > ffmpeg_status | |
| git submodule status TMessagesProj/jni/libvpx > libvpx_status | |
| git submodule status TMessagesProj/jni/boringssl > boringssl_status | |
| - name: Native Cache | |
| id: cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| TMessagesProj/src/main/libs | |
| key: ${{ hashFiles('TMessagesProj/jni/**', 'ffmpeg_status', 'boringssl_status') }}-${{ matrix.flavor }} | |
| - name: Checkout Library | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: | | |
| git submodule update --init 'TMessagesProj/jni/*' | |
| - name: FFmpeg Cache | |
| uses: actions/cache@v4 | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| with: | |
| path: | | |
| TMessagesProj/jni/ffmpeg/build | |
| TMessagesProj/jni/libvpx/build | |
| key: ${{ hashFiles('ffmpeg_status', 'libvpx_status', 'TMessagesProj/jni/*ffmpeg*.sh', 'TMessagesProj/jni/*libvpx*.sh', 'TMessagesProj/jni/patches/ffmpeg/*') }} | |
| - name: BoringSSL Cache | |
| uses: actions/cache@v4 | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| with: | |
| path: | | |
| TMessagesProj/jni/boringssl/build | |
| key: ${{ hashFiles('boringssl_status') }} | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v3 | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: Setup Android SDK Tools | |
| uses: android-actions/setup-android@v3 | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| - name: Install NDK | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: | | |
| echo "y" | sdkmanager --install "ndk;21.4.7075529" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null | |
| echo "sdk.dir=${ANDROID_HOME}" > local.properties | |
| echo "ndk.dir=${ANDROID_HOME}/ndk/21.4.7075529" >> local.properties | |
| - name: Fix BoringSSL | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: | | |
| cd TMessagesProj/jni | |
| ./patch_boringssl.sh | |
| - name: Native Build | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: | | |
| export NATIVE_TARGET="${{ matrix.flavor }}" | |
| ./run libs native | |
| build: | |
| name: Gradle Build | |
| runs-on: ubuntu-latest | |
| needs: | |
| - native | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v3 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| - name: Setup Android SDK Tools | |
| uses: android-actions/setup-android@v3 | |
| - name: Install NDK | |
| run: | | |
| echo "y" | sdkmanager --install "ndk;21.4.7075529" --sdk_root=${ANDROID_SDK_ROOT} &> /dev/null | |
| echo "sdk.dir=${ANDROID_HOME}" > local.properties | |
| echo "ndk.dir=${ANDROID_HOME}/ndk/21.4.7075529" >> local.properties | |
| - name: Fetch Status | |
| run: | | |
| sed -i 's/\/\///g' settings.gradle | |
| git submodule status TMessagesProj/jni/ffmpeg > ffmpeg_status | |
| git submodule status TMessagesProj/jni/boringssl > boringssl_status | |
| - name: Native Cache (armeabi-v7a) | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| TMessagesProj/src/main/libs | |
| key: ${{ hashFiles('TMessagesProj/jni/**', 'ffmpeg_status', 'boringssl_status') }}-armeabi-v7a | |
| - name: Native Cache (arm64-v8a) | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| TMessagesProj/src/main/libs | |
| key: ${{ hashFiles('TMessagesProj/jni/**', 'ffmpeg_status', 'boringssl_status') }}-arm64-v8a | |
| - name: Configure Gradle | |
| run: | | |
| sed -i "s/2000000000000/$(date +%s%3N)/g" gradle.properties | |
| echo "sdk.dir=${ANDROID_HOME}" >> local.properties | |
| - name: Gradle cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.gradle | |
| key: gradle-${{ hashFiles('**/*.gradle') }} | |
| - name: Debug Build | |
| run: | | |
| export LOCAL_PROPERTIES="${{ secrets.LOCAL_PROPERTIES }}" | |
| ./gradlew TMessagesProj:assembleRelease | |
| APK=$(find TMessagesProj/build/outputs/apk -name '*arm64-v8a*.apk') | |
| APK=$(dirname $APK) | |
| echo "APK=$APK" >> $GITHUB_ENV | |
| - name: Upload gradle.properties | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: gradle-properties | |
| path: gradle.properties | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: Release | |
| path: ${{ env.APK }} | |
| upload: | |
| name: Upload debug | |
| if: github.event.inputs.upload != 'y' | |
| runs-on: ubuntu-latest | |
| needs: | |
| - build | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Remove gradle.properties | |
| run: | | |
| rm -f gradle.properties | |
| - name: Download gradle.properties | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: gradle-properties | |
| path: . | |
| - name: Donwload Artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: 3.12 | |
| - name: Send to Telegram | |
| run: | | |
| # send release via telegram bot api | |
| export mini64=$(find artifacts -name "*arm64-v8a.apk") | |
| export mini32=$(find artifacts -name "*armeabi-v7a.apk") | |
| echo $mini64 | |
| echo $mini32 | |
| python -m pip install -r bin/scripts/requirements.txt | |
| git log -1 --pretty=format:"%s%n%n%b" > artifacts/caption.txt | |
| python bin/scripts/upload.py ${{ secrets.HELPER_BOT_TOKEN }} ${{ secrets.HELPER_BOT_TARGET }} test |