Repository navigation
[Release] 12.10.5. #887
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: Fork Client | |
| on: | |
| push: | |
| branches: | |
| - '**' | |
| jobs: | |
| linux: | |
| name: Build | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| id-token: write | |
| attestations: write | |
| steps: | |
| - uses: actions/checkout@v3.1.0 | |
| with: | |
| submodules: true | |
| - name: Free up some disk space. | |
| uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be | |
| with: | |
| tool-cache: false | |
| android: false | |
| - uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - uses: nttld/setup-ndk@v1.4.2 | |
| id: setup-ndk-r27c | |
| with: | |
| ndk-version: r27c | |
| link-to-sdk: true | |
| - name: Install NDK for the JNI build (ndkVersion). | |
| run: yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" "ndk;27.2.12479018" | |
| - name: Prepare additional build number. | |
| env: | |
| ADDITIONAL_BUILD: ${{ secrets.ADDITIONAL_BUILD_NUMBER }} | |
| run: | | |
| result=$((ADDITIONAL_BUILD / 10000)) | |
| echo "ADDITIONAL_BUILD_NUMBER = $result should be between 0 and 10!" | |
| echo "ADDITIONAL_BUILD_NUMBER=$result" >> $GITHUB_ENV | |
| echo "USER_REPO=$GITHUB_REPOSITORY" >> $GITHUB_ENV | |
| echo "CHECK_UPDATES=1" >> $GITHUB_ENV | |
| - name: Build. | |
| run: | | |
| ### | |
| vars=gradle.properties | |
| echo "DUMMY_CONST=0" >> $vars | |
| echo "org.gradle.workers.max=1" >> $vars | |
| echo "APP_ID=${{ secrets.APP_ID }}" >> $vars | |
| echo "APP_HASH=${{ secrets.APP_HASH }}" >> $vars | |
| echo "RELEASE_KEY_PASSWORD=${{ secrets.ALIAS_PASS }}" >> $vars | |
| echo "RELEASE_KEY_ALIAS=${{ secrets.ALIAS_NAME }}" >> $vars | |
| echo "RELEASE_STORE_PASSWORD=${{ secrets.KEYSTORE_PASS }}" >> $vars | |
| echo "RELEASE_KEYSTORE_FILE=$PWD/TMessagesProj/config/release.keystore" >> $vars | |
| echo "ADDITIONAL_BUILD_NUMBER=$ADDITIONAL_BUILD_NUMBER" >> $vars | |
| echo "USER_REPO=$USER_REPO" >> $vars | |
| echo "CHECK_UPDATES=1" >> $vars | |
| echo "USER_ID_OWNER=${{ secrets.USER_ID_OWNER }}" >> $vars | |
| echo "UPDATE_CHANNEL_USERNAME=${{ secrets.UPDATE_CHANNEL_USERNAME }}" >> $vars | |
| echo "LASTFM_API_KEY=${{ secrets.LASTFM_API_KEY }}" >> $vars | |
| echo "LASTFM_API_SECRET=${{ secrets.LASTFM_API_SECRET }}" >> $vars | |
| ### | |
| echo $ADDITIONAL_BUILD_NUMBER | |
| sudo apt update | |
| sudo apt -y install ninja-build meson nasm gperf pkg-config unzip pip | |
| rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android | |
| ./gradlew :TMessagesProj_App:assembleAfatRelease | |
| #grep BUILD_VERSION_STRING TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java | cut -d'"' -f 2 > ver.txt | |
| grep VERSION_NAME TMessagesProj/build/generated/source/buildConfig/release/org/telegram/messenger/BuildConfig.java | cut -d'"' -f 2 > ver.txt | |
| mkdir -p artifact | |
| mv TMessagesProj_App/build/outputs/apk/afat/release/app.apk app.apk | |
| cp app.apk "artifact/ForkClient $(cat ver.txt).apk" | |
| mkdir -p tag_asset | |
| cp app.apk "tag_asset/ForkClient_$(cat ver.txt).apk" | |
| # Upload to channel. | |
| if [[ "${{ contains(github.event.head_commit.message, '[Release]') }}" == "true" ]]; then | |
| FORK_UPLOAD_MODE=release | |
| elif [[ "${{ contains(github.event.head_commit.message, '[Optional]') }}" == "true" ]]; then | |
| FORK_UPLOAD_MODE=optional | |
| else | |
| FORK_UPLOAD_MODE= | |
| fi | |
| if [[ -n "$FORK_UPLOAD_MODE" ]]; then | |
| set +x | |
| pip install requests tgcrypto-pyrofork Kurigram | |
| cp app.apk "ForkClient $(cat ver.txt).apk" | |
| echo "${{ secrets.BASE64_ZIP }}" | base64 --decode > output.zip | |
| unzip -j output.zip -d . | |
| ls | |
| FORK_UPLOAD_MODE=$FORK_UPLOAD_MODE python3 upload.py | |
| set -x | |
| else | |
| echo "Skipping channel upload (no [Release] or [Optional] marker in commit message)." | |
| fi | |
| ### | |
| echo "NEW_TAG_TEXT=$(cat ver.txt)" >> $GITHUB_ENV | |
| tempVer=$(cat ver.txt) | |
| tempVer=${tempVer::-2} | |
| echo "NEW_OFFICIAL_TAG_TEXT=$tempVer" >> $GITHUB_ENV | |
| - name: Attest build provenance | |
| if: ${{ contains(github.event.head_commit.message, '[Release]') }} | |
| uses: actions/attest-build-provenance@v2 | |
| with: | |
| subject-path: 'artifact/*.apk' | |
| - uses: actions/upload-artifact@master | |
| name: Upload artifact | |
| if: ${{ contains(github.event.head_commit.message, '[Release]') }} | |
| with: | |
| name: ForkClient | |
| path: artifact/ | |
| release: | |
| name: Create Release. | |
| needs: linux | |
| if: ${{ contains(github.event.head_commit.message, '[Release]') }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v3.1.0 | |
| - name: Download artifact | |
| uses: actions/download-artifact@v4.3.0 | |
| with: | |
| name: ForkClient | |
| path: asset | |
| - name: Get version info | |
| run: | | |
| find asset -name "*.apk" | head -1 | sed 's/.*ForkClient //;s/\.apk//' > version.txt | |
| echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV | |
| echo "OFFICIAL_VERSION=$(cat version.txt | sed 's/..$//')" >> $GITHUB_ENV | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v0.1.15 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }} | |
| with: | |
| draft: true | |
| files: asset/* | |
| tag_name: ${{ env.VERSION }} | |
| name: "ForkClient ${{ env.VERSION }}" | |
| body: "— Updated to ${{ env.OFFICIAL_VERSION }} build of the official Telegram." |