name: Linux. on: push: paths-ignore: - 'docs/**' - '**.md' - '!docs/building-linux.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' - '!docs/building-linux.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: CentOS 7 runs-on: ubuntu-latest container: image: docker.pkg.github.com/telegramdesktop/tdesktop/centos_env credentials: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} defaults: run: shell: scl enable devtoolset-9 -- bash --noprofile --norc -eo pipefail {0} strategy: matrix: defines: - "" - "DESKTOP_APP_DISABLE_DBUS_INTEGRATION" - "DESKTOP_APP_DISABLE_X11_INTEGRATION" - "DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION" env: UPLOAD_ARTIFACT: "false" steps: - name: Get repository name. run: echo "REPO_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV - name: Clone. uses: actions/checkout@v2 with: submodules: recursive path: ${{ env.REPO_NAME }} - name: First set up. run: | gcc --version ln -s $LibrariesPath Libraries - name: Telegram Desktop build. run: | cd $REPO_NAME/Telegram DEFINE="" if [ -n "${{ matrix.defines }}" ]; then DEFINE="-D ${{ matrix.defines }}=ON" if [ "${{ matrix.defines }}" == "DESKTOP_APP_DISABLE_DBUS_INTEGRATION" ]; then DEFINE="$DEFINE -D DESKTOP_APP_DISABLE_WEBKITGTK=ON" fi echo Define from matrix: $DEFINE echo "ARTIFACT_NAME=Telegram_${{ matrix.defines }}" >> $GITHUB_ENV else echo "ARTIFACT_NAME=Telegram" >> $GITHUB_ENV fi ./configure.sh \ -D CMAKE_C_FLAGS="-Werror" \ -D CMAKE_CXX_FLAGS="-Werror" \ -D CMAKE_EXE_LINKER_FLAGS="-s" \ -D TDESKTOP_API_TEST=ON \ -D DESKTOP_APP_USE_PACKAGED=OFF \ -D DESKTOP_APP_DISABLE_CRASH_REPORTS=OFF \ $DEFINE cd ../out/Debug make -j$(nproc) - name: Check. run: | filePath="$REPO_NAME/out/Debug/bin/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/bin mkdir artifact mv Telegram artifact/ - uses: actions/upload-artifact@master if: env.UPLOAD_ARTIFACT == 'true' name: Upload artifact. with: name: ${{ env.ARTIFACT_NAME }} path: ${{ env.REPO_NAME }}/out/Debug/bin/artifact/