name: Linux. on: push: paths-ignore: - 'docs/**' - '**.md' - 'changelog.txt' - 'LEGAL' - 'LICENSE' - '.github/**' - '!.github/workflows/linux.yml' - 'snap/**' - 'Telegram/build/**' - 'Telegram/Resources/uwp/**' - 'Telegram/Resources/winrc/**' - 'Telegram/SourceFiles/platform/win/**' - 'Telegram/SourceFiles/platform/mac/**' - 'Telegram/Telegram/**' - 'Telegram/configure.bat' - 'Telegram/Telegram.plist' pull_request: paths-ignore: - 'docs/**' - '**.md' - 'changelog.txt' - 'LEGAL' - 'LICENSE' - '.github/**' - '!.github/workflows/linux.yml' - 'snap/**' - 'Telegram/build/**' - 'Telegram/Resources/uwp/**' - 'Telegram/Resources/winrc/**' - 'Telegram/SourceFiles/platform/win/**' - 'Telegram/SourceFiles/platform/mac/**' - 'Telegram/Telegram/**' - 'Telegram/configure.bat' - 'Telegram/Telegram.plist' jobs: linux: name: Rocky Linux 8 runs-on: ubuntu-latest strategy: matrix: defines: - "" - "DESKTOP_APP_DISABLE_X11_INTEGRATION" env: UPLOAD_ARTIFACT: "true" steps: - name: Get repository name. run: echo "REPO_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV - name: Clone. uses: actions/checkout@v4 with: submodules: recursive path: ${{ env.REPO_NAME }} - name: First set up. run: | echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u $ --password-stdin docker pull ghcr.io/$GITHUB_REPOSITORY/centos_env docker tag ghcr.io/$GITHUB_REPOSITORY/centos_env tdesktop:centos_env - name: Telegram Desktop build. run: | cd $REPO_NAME DEFINE="" if [ -n "${{ matrix.defines }}" ]; then DEFINE="-D ${{ matrix.defines }}=ON" echo Define from matrix: $DEFINE echo "ARTIFACT_NAME=Telegram_${{ matrix.defines }}" >> $GITHUB_ENV else echo "ARTIFACT_NAME=Telegram" >> $GITHUB_ENV fi docker run --rm \ -v $PWD:/usr/src/tdesktop \ -e CONFIG=Debug \ tdesktop:centos_env \ /usr/src/tdesktop/Telegram/build/docker/centos_env/build.sh \ -D CMAKE_C_FLAGS_DEBUG="" \ -D CMAKE_CXX_FLAGS_DEBUG="" \ -D CMAKE_C_FLAGS="-Werror" \ -D CMAKE_CXX_FLAGS="-Werror" \ -D CMAKE_EXE_LINKER_FLAGS="-s" \ -D TDESKTOP_API_TEST=ON \ -D DESKTOP_APP_DISABLE_AUTOUPDATE=OFF \ -D DESKTOP_APP_DISABLE_CRASH_REPORTS=OFF \ $DEFINE - name: Check. run: | filePath="$REPO_NAME/out/Debug/Telegram" if test -f "$filePath"; then echo "Build successfully done! :)" size=$(stat -c %s "$filePath") echo "File size of ${filePath}: ${size} Bytes." else echo "Build error, output file does not exist." exit 1 fi - name: Move artifact. if: env.UPLOAD_ARTIFACT == 'true' run: | cd $REPO_NAME/out/Debug sudo mkdir artifact sudo mv {Telegram,Updater} artifact/ - uses: actions/upload-artifact@v4 if: env.UPLOAD_ARTIFACT == 'true' name: Upload artifact. with: name: ${{ env.ARTIFACT_NAME }} path: ${{ env.REPO_NAME }}/out/Debug/artifact/