tdesktop/.github/workflows/win.yml

160 lines
4.6 KiB
YAML
Raw Normal View History

name: Windows.
on:
push:
paths-ignore:
- 'docs/**'
- '**.md'
- 'changelog.txt'
- 'LEGAL'
- 'LICENSE'
- '.github/**'
- '!.github/workflows/win.yml'
- 'lib/xdg/**'
- 'snap/**'
- 'Telegram/build/docker/**'
- 'Telegram/Resources/uwp/**'
- 'Telegram/SourceFiles/platform/linux/**'
- 'Telegram/SourceFiles/platform/mac/**'
- 'Telegram/Telegram/**'
- 'Telegram/configure.sh'
- 'Telegram/Telegram.plist'
pull_request:
paths-ignore:
- 'docs/**'
- '**.md'
- 'changelog.txt'
- 'LEGAL'
- 'LICENSE'
- '.github/**'
- '!.github/workflows/win.yml'
- 'lib/xdg/**'
- 'snap/**'
- 'Telegram/build/docker/**'
- 'Telegram/Resources/uwp/**'
- 'Telegram/SourceFiles/platform/linux/**'
- 'Telegram/SourceFiles/platform/mac/**'
- 'Telegram/Telegram/**'
- 'Telegram/configure.sh'
- 'Telegram/Telegram.plist'
jobs:
windows:
name: Windows
runs-on: windows-2022
strategy:
matrix:
arch: [Win32, x64]
env:
UPLOAD_ARTIFACT: "false"
ONLY_CACHE: "false"
2021-09-10 13:19:07 +00:00
PREPARE_PATH: "Telegram/build/prepare/prepare.py"
2020-02-24 13:51:53 +00:00
2020-10-25 01:46:27 +00:00
defaults:
run:
shell: cmd
steps:
- name: Prepare directories.
run: |
mkdir %userprofile%\TBuild Libraries
mklink /d %userprofile%\TBuild\Libraries %GITHUB_WORKSPACE%\Libraries
echo TBUILD=%userprofile%\TBuild>>%GITHUB_ENV%
- name: Get repository name.
shell: bash
2020-10-25 01:46:27 +00:00
run: echo "REPO_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
- uses: ilammy/msvc-dev-cmd@v1.10.0
name: Native Tools Command Prompt.
2021-08-11 02:52:44 +00:00
with:
arch: ${{ matrix.arch }}
2020-10-25 01:46:27 +00:00
- name: Clone.
uses: LebedevRI/checkout@issue197
2020-10-25 01:46:27 +00:00
with:
submodules: recursive
path: ${{ env.TBUILD }}\${{ env.REPO_NAME }}
2022-08-27 22:49:18 +00:00
- name: Python installs.
run: pip3 install --upgrade pywin32 six
- name: Set up environment paths.
shell: bash
run: |
echo "CACHE_KEY=$(sha256sum $TBUILD/$REPO_NAME/$PREPARE_PATH | awk '{ print $1 }')" >> $GITHUB_ENV
echo "Configurate git for cherry-picks."
git config --global user.email "you@example.com"
git config --global user.name "Sample"
- name: NuGet sources.
2020-10-07 02:21:20 +00:00
run: |
nuget sources Disable -Name "Microsoft Visual Studio Offline Packages"
nuget sources Add -Source https://api.nuget.org/v3/index.json & exit 0
2020-10-07 02:21:20 +00:00
- name: Libraries cache.
id: cache-libs
2020-06-30 08:37:15 +00:00
uses: actions/cache@v2
with:
path: Libraries
key: ${{ runner.OS }}-${{ matrix.arch }}-libs-${{ env.CACHE_KEY }}
restore-keys: ${{ runner.OS }}-${{ matrix.arch }}-libs-
- name: Libraries.
env:
GYP_MSVS_OVERRIDE_PATH: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\'
GYP_MSVS_VERSION: 2022
run: '%TBUILD%\%REPO_NAME%\Telegram\build\prepare\win.bat skip-release silent'
2020-08-14 06:45:41 +00:00
- name: Read defines.
shell: bash
run: |
DEFINE=""
if [ -n "${{ matrix.defines }}" ]; then
DEFINE="-D ${{ matrix.defines }}=ON"
echo Define from matrix: $DEFINE
echo "ARTIFACT_NAME=Telegram_${{ matrix.arch }}_${{ matrix.defines }}" >> $GITHUB_ENV
else
echo "ARTIFACT_NAME=Telegram_${{ matrix.arch }}" >> $GITHUB_ENV
fi
2020-10-25 01:46:27 +00:00
echo "TDESKTOP_BUILD_DEFINE=$DEFINE" >> $GITHUB_ENV
2021-06-01 17:22:10 +00:00
- name: Free up some disk space.
run: |
del /S Libraries\*.pdb
del /S Libraries\*.pch
del /S Libraries\*.obj
2021-06-01 17:22:10 +00:00
- name: Telegram Desktop build.
if: env.ONLY_CACHE == 'false'
run: |
C:
cd %TBUILD%\%REPO_NAME%\Telegram
call configure.bat ^
${{ matrix.arch }} ^
-D TDESKTOP_API_TEST=ON ^
-D DESKTOP_APP_DISABLE_CRASH_REPORTS=OFF ^
2021-03-17 09:45:19 +00:00
-D DESKTOP_APP_NO_PDB=ON ^
%TDESKTOP_BUILD_DEFINE% ^
-DCMAKE_SYSTEM_VERSION=%SDK%
cd ..\out
msbuild -m Telegram.sln /p:Configuration=Debug,Platform=${{ matrix.arch }},DebugSymbols=false,DebugType=none
- name: Move artifact.
if: env.UPLOAD_ARTIFACT == 'true'
run: |
mkdir artifact
move %TBUILD%\%REPO_NAME%\out\Debug\Telegram.exe artifact/
- uses: actions/upload-artifact@master
name: Upload artifact.
if: env.UPLOAD_ARTIFACT == 'true'
with:
name: ${{ env.ARTIFACT_NAME }}
path: artifact\