libtgvoip has options to disbale some backends, but they never were exposed via tdesktop's cmake Since libtgvoip autoconf build system doesn't work anymore, it's worth to have these options in tdesktop's cmake.
138 lines
3.7 KiB
YAML
138 lines
3.7 KiB
YAML
name: Linux.
|
|
|
|
on:
|
|
push:
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
- '**.md'
|
|
- '!docs/building-cmake.md'
|
|
- 'changelog.txt'
|
|
- 'LEGAL'
|
|
- 'LICENSE'
|
|
- '.github/**'
|
|
- '!.github/workflows/linux.yml'
|
|
- 'snap/**'
|
|
- 'Telegram/build/**'
|
|
- 'Telegram/Patches/**'
|
|
- '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-cmake.md'
|
|
- 'changelog.txt'
|
|
- 'LEGAL'
|
|
- 'LICENSE'
|
|
- '.github/**'
|
|
- '!.github/workflows/linux.yml'
|
|
- 'snap/**'
|
|
- 'Telegram/build/**'
|
|
- 'Telegram/Patches/**'
|
|
- '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-8 -- bash --noprofile --norc -eo pipefail {0}
|
|
|
|
strategy:
|
|
matrix:
|
|
defines:
|
|
- ""
|
|
- "DESKTOP_APP_DISABLE_DBUS_INTEGRATION"
|
|
- "DESKTOP_APP_DISABLE_X11_INTEGRATION"
|
|
- "DESKTOP_APP_DISABLE_WAYLAND_INTEGRATION"
|
|
- "DESKTOP_APP_DISABLE_GTK_INTEGRATION"
|
|
- "LIBTGVOIP_DISABLE_ALSA"
|
|
- "LIBTGVOIP_DISABLE_PULSEAUDIO"
|
|
|
|
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"
|
|
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/
|