diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 000000000..f5d4f1b06 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,159 @@ + +trigger: +- master + +pool: + vmImage: 'windows-2019' + +steps: +- script: | + git clone --recursive https://github.com/kotatogram/kotatogram-desktop.git tdesktop + displayName: 'Clone repo' + +- script: | + echo ::set-env name=VS::call ^ + "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + echo ::set-env name=SWITCH_PY::call venv-2\Scripts\activate + echo ::add-path::C:\Perl64\bin + echo ::add-path::%CD%\Libraries\gyp + displayName: 'Setting up the environment' + +- script: | + choco install -y nasm yasm jom ninja activeperl cmake msys2 + mkdir Libraries + displayName: Install tools +- script: | + py -2 -m pip install virtualenv + py -2 -m virtualenv venv-2 + displayName: Replace Python 3 with Python 2 +- script: | + cd Libraries + git clone --branch 0.9.1 https://github.com/ericniebler/range-v3 range-v3 + displayName: Range-v3 +- script: | + cd Libraries + %VS% + git clone https://github.com/telegramdesktop/lzma.git + cd lzma + cd C\Util\LzmaLib + msbuild LzmaLib.sln /property:Configuration=Debug + msbuild LzmaLib.sln /property:Configuration=Release + displayName: LZMA +- script: | + %VS% && cd Libraries + git clone https://github.com/openssl/openssl.git + cd openssl + git checkout OpenSSL_1_0_1-stable + call perl Configure no-shared --prefix="C:\Program Files (x86)\OpenSSL" ^ + --openssldir="C:\Program Files (x86)\Common Files\SSL" VC-WIN32 + call ms\do_ms < nul + call nmake -f ms\nt.mak < nul + call perl Configure no-shared --prefix="C:\Program Files (x86)\OpenSSL" ^ + --openssldir="C:\Program Files (x86)\Common Files\SSL" debug-VC-WIN32 + call ms\do_ms < nul + call nmake -f ms\nt.mak < nul + displayName: OpenSSL +- script: | + %VS% && cd Libraries + git clone https://github.com/telegramdesktop/zlib.git + cd zlib + git checkout tdesktop + cd contrib\vstudio\vc14 + msbuild zlibstat.vcxproj /property:Configuration=Debug + msbuild zlibstat.vcxproj /property:Configuration=ReleaseWithoutAsm + displayName: Zlib +- script: | + %VS% && cd Libraries + git clone https://github.com/telegramdesktop/openal-soft.git + cd openal-soft + git checkout fix_capture + cd build + cmake -G "Visual Studio 16 2019" -A Win32 -D LIBTYPE:STRING=STATIC -D FORCE_STATIC_VCRT:STRING=ON .. + msbuild OpenAL.vcxproj /property:Configuration=Debug + msbuild OpenAL.vcxproj /property:Configuration=Release + displayName: OpenAL Soft +- script: | + %VS% + %SWITCH_PY% + cd Libraries + git clone https://github.com/telegramdesktop/gyp.git + cd gyp + git checkout tdesktop + displayName: GYP +- script: | + %VS% + %SWITCH_PY% + cd Libraries + git clone https://github.com/google/breakpad + cd breakpad + git checkout a1dbcdcb43 + dir ..\..\tdesktop\Telegram\Patches\ + git apply ..\..\tdesktop\Telegram\Patches\breakpad.diff + cd src + git clone https://github.com/google/googletest testing + cd client\windows + call gyp --no-circular-check breakpad_client.gyp --format=ninja + cd ..\.. + ninja -C out/Debug common crash_generation_client exception_handler + ninja -C out/Release common crash_generation_client exception_handler + cd tools\windows\dump_syms + call gyp dump_syms.gyp + msbuild dump_syms.vcxproj /property:Configuration=Release + displayName: Breakpad +- script: | + %VS% && cd Libraries + git clone https://github.com/telegramdesktop/opus.git + cd opus + git checkout tdesktop + cd win32\VS2015 + msbuild opus.sln /property:Configuration=Debug /property:Platform="Win32" + msbuild opus.sln /property:Configuration=Release /property:Platform="Win32" + displayName: Opus +- script: | + %VS% && cd Libraries + git clone https://github.com/FFmpeg/FFmpeg.git ffmpeg + cd ffmpeg + git checkout release/3.4 + set CHERE_INVOKING=enabled_from_arguments + set MSYS2_PATH_TYPE=inherit + call c:\tools\msys64\usr\bin\bash --login ../../tdesktop/Telegram/Patches/build_ffmpeg_win.sh + displayName: FFmpeg +- script: | + %VS% && cd Libraries + git clone git://code.qt.io/qt/qt5.git qt5_6_2 + cd qt5_6_2 + perl init-repository --module-subset=qtbase,qtimageformats + git checkout v5.6.2 + cd qtimageformats + git checkout v5.6.2 + cd ..\qtbase + git checkout v5.6.2 + git apply ../../../tdesktop/Telegram/Patches/qtbase_5_6_2.diff + cd .. + configure -debug-and-release -force-debug-info -opensource -confirm-license ^ + -static -I "%cd%\..\openssl\inc32" -no-opengl -openssl-linked ^ + OPENSSL_LIBS_DEBUG="%cd%\..\openssl\out32.dbg\ssleay32.lib %cd%\..\openssl\out32.dbg\libeay32.lib" ^ + OPENSSL_LIBS_RELEASE="%cd%\..\openssl\out32\ssleay32.lib %cd%\..\openssl\out32\libeay32.lib" ^ + -mp -nomake examples -nomake tests -platform win32-msvc2015 + displayName: Configure Qt 5.6.2 +- script: | + %VS% && cd Libraries + cd qt5_6_2 + jom -j4 + jom -j4 install + displayName: Build Qt 5.6.2 +- script: | + %VS% + %SWITCH_PY% + cd tdesktop\Telegram + call gyp\refresh.bat --api-id %API_ID% --api-hash %API_HASH% + msbuild Telegram.sln /nologo /p:Configuration=Release,Platform=Win32 + env: + GYP_MSVS_OVERRIDE_PATH: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\ + GYP_MSVS_VERSION: 2019 + TDESKTOP_BUILD_DEFINES: TDESKTOP_DISABLE_CRASH_REPORTS + displayName: Build Kotatogram +- publish: tdesktop\Telegram\out\Release\Telegram + artifact: Kotatogram +- publish: tdesktop\Telegram\out\Release\Updater + artifact: Updater \ No newline at end of file