linphone-desktop/.gitlab-ci-files/job-windows-desktop.yml
2020-02-18 00:20:48 +01:00

162 lines
4.8 KiB
YAML

#################################################
# BUILD
#################################################
#################################################
# VS2015
#################################################
#Wedo not need vs2015 anymore
#job-windows-vs2015:
#
# extends: .job-prepare
# stage: build
# tags: [ "windows" ]
# except:
# refs:
# - feature/peioMergeCi
#
# except:
# variables:
# - $DEPLOY_RUN_ANDROID
# - $DEPLOY_RUN_IOS
# variables:
# CMAKE_OPTIONS: -DENABLE_LIME_X3DH=NO
#
# script:
# - mkdir build-desktop
# - cd build-desktop
# - cmake .. -G "Visual Studio 14 2015" -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=Release %DEFAULT_CMAKE_OPTIONS% %CMAKE_OPTIONS%
# - cmake --build . --target sdk --config Release -- /maxcpucount
#job-windows-vs2015-novideo:
#
# only:
# - schedules
# except:
# variables:
# - $DEPLOY_RUN_ANDROID
# - $FAST_LINUX_TESTS
# variables:
# CMAKE_OPTIONS: -DENABLE_VIDEO=NO
# extends: job-windows-vs2015
.job-windows-vs2017:
extends: .job-prepare
stage: build
tags: [ "windows" ]
variables:
CMAKE_OPTIONS: -DENABLE_LIME_X3DH=NO -DENABLE_UNIT_TESTS=ON
script:
- SET Qt5_DIR=C:\Qt\5.12.6\msvc2017\lib\cmake
- IF EXIST build-desktop RMDIR /S /Q build-desktop
- mkdir build-desktop
- cd build-desktop
- mkdir OUTPUT
#SDK Building
#we launch the msvc-cl wrapper located in python scripts folder
#this wrapper relays only needed calls to the real compiler
#cache stats display
- C:\PROGRA~1\Python37\Scripts\cl -s
- cmake .. -G "Visual Studio 15 2017" -DLINPHONESDK_PLATFORM=Desktop -DENABLE_CSHARP_WRAPPER=YES -DCMAKE_BUILD_TYPE=Release %DEFAULT_WINDOWS_CMAKE_OPTIONS% %CMAKE_OPTIONS%
- cmake --build . --target ALL_BUILD --config Release %LBC_NODEBUG_OPTIONS% -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false
# Minizip install to OUTPUT folder
- cmake ..
- cmake --build . --target minizip
- cmake --build . --target install --config Release %LBC_NODEBUG_OPTIONS% -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false
# Update CMake installation
- cmake .. -G "Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=Release %DEFAULT_WINDOWS_CMAKE_OPTIONS% %CMAKE_OPTIONS%
- cmake --build . --target linphone-qt --config Release -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false
- cmake --build . --target install --config Release -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false
- C:\PROGRA~1\Python37\Scripts\cl -s
artifacts:
paths:
- build-desktop\OUTPUT
expire_in: 2 days
.job-windows-vs2017-scheduled:
extends: .job-windows-vs2017
only:
variables:
- $NIGHTLY_MASTER
- $NIGHTLY_RELEASE
- $PACKAGE_RUN_WINDOWS
before_script:
#cache disabled on scheduled builds since we dot not need the fastest build
- set "CLCACHE_DISABLE=1"
job-windows-vs2017:
extends: .job-windows-vs2017
except:
refs:
- schedules
job-windows-vs2017-scheduled:
extends: .job-windows-vs2017-scheduled
job-windows-vs2017-novideo:
extends: .job-windows-vs2017-scheduled
variables:
CMAKE_OPTIONS: -DENABLE_LIME_X3DH=NO -DENABLE_VIDEO=NO
#################################################
# PACKAGE
#################################################
#Remove . when packaging process is ready to use
.job-windows-vs2017-package:
stage: package
tags: [ "windows" ]
dependencies:
- job-windows-vs2017-scheduled
only:
variables:
- $NIGHTLY_MASTER
- $PACKAGE_RUN_WINDOWS
script:
- cd build-desktop/OUTPUT
- IF EXIST deploy RMDIR /S /Q deploy
- mkdir deploy
- copy bin\linphone.exe deploy /Y
- xcopy ..\..\linphone-sdk\build-sdk\linphone-sdk\desktop\bin\*.dll deploy /C /Y
- xcopy ..\..\submodules\externals\minizip\build-minizip\OUTPUT\bin\*.dll deploy /C /Y
- call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat"
- cd build-desktop
- chdir > chdir_sdk.temp
- set /p OUTPUT_SDK_BUILD=<chdir_sdk.temp
- cd ..\cmake\Windows\wrapper\
- chdir > chdir_wrapper.temp
- set /p OUTPUT_WRAPPER_BUILD=<chdir_wrapper.temp
- msbuild -t:restore CsWrapper.csproj
- msbuild CsWrapper.csproj /p:MDILCompile=true /p:Platform="x86" /t:build /p:Configuration=Release /p:OutputSdkBuild=%OUTPUT_SDK_BUILD%
- cd ..\nuget
- git describe > describe.temp
- set /p DESCRIBE=<describe.temp
- msbuild NuGetLinphoneSDK.vcxproj /p:VersionNumber=%DESCRIBE% /p:OutputSdkBuild=%OUTPUT_SDK_BUILD% /p:OutputWrapperBuild=%OUTPUT_WRAPPER_BUILD%
after_script:
- mkdir "%CI_PROJECT_DIR%/results/windows-nugget"
- dir
- cd cmake/Windows/nuget/
- copy /B *.nupkg "%CI_PROJECT_DIR%/results/windows-nugget"
artifacts:
paths:
- results/*
when: always
expire_in: 1 week