name: $(BuildID)_$(BuildDefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r) resources: - repo: self clean: true jobs: - job: windowsx64debug displayName: 'Build Windows x64 Debug' pool: name: Azure-MessagingStore-WinBuildPoolVS2022 demands: - Build - Cmd - msbuild - visualstudio steps: - task: BatchScript@1 displayName: 'Git submodule update' inputs: filename: 'C:\Program Files\Git\bin\git.exe' arguments: 'submodule update --init --force' - task: BatchScript@1 displayName: 'Git submodule clean' inputs: filename: 'C:\Program Files\Git\bin\git.exe' arguments: 'submodule foreach --recursive "git clean -xdff"' - task: BatchScript@1 displayName: 'Git clean' inputs: filename: 'C:\Program Files\Git\bin\git.exe' arguments: 'clean -xdff' - task: BatchScript@1 displayName: 'Setup VS Vars' inputs: filename: '"c:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"' modifyEnvironment: true - task: CMake@1 displayName: 'CMake .. -Drun_reals_check:bool=ON -Drun_unittests:bool=ON -Drun_int_tests:bool=ON -Duse_cppunittest:bool=OFF -Dabort_on_fail:bool=ON -Duse_vld:bool=ON -G "Visual Studio 17 2022" -A x64' inputs: workingDirectory: 'build_x64' cmakeArgs: '.. -Drun_reals_check:bool=ON -Drun_unittests:bool=ON -Drun_int_tests:bool=ON -Duse_cppunittest:bool=OFF -Dabort_on_fail:bool=ON -Duse_vld:bool=ON -G "Visual Studio 17 2022" -A x64' - task: VSBuild@1 displayName: 'Build solution build_x64\*.sln' inputs: solution: 'build_x64\*.sln' msbuildArgs: '/t:restore /t:build' platform: x64 configuration: Debug maximumCpuCount: true - task: CmdLine@1 displayName: 'Run ctest' inputs: filename: ctest arguments: '-C "Debug" -V --output-on-failure' workingFolder: 'build_x64' - job: windowsx64relwithdebinfo displayName: 'Build Windows x64 RelWithDebInfo' pool: name: Azure-MessagingStore-WinBuildPoolVS2022 demands: - Build - Cmd - msbuild - visualstudio - vstest steps: - task: BatchScript@1 displayName: 'Git submodule update' inputs: filename: 'C:\Program Files\Git\bin\git.exe' arguments: 'submodule update --init --force' - task: BatchScript@1 displayName: 'Git submodule clean' inputs: filename: 'C:\Program Files\Git\bin\git.exe' arguments: 'submodule foreach --recursive "git clean -xdff"' - task: BatchScript@1 displayName: 'Git clean' inputs: filename: 'C:\Program Files\Git\bin\git.exe' arguments: 'clean -xdff' - task: BatchScript@1 displayName: 'Setup VS Vars' inputs: filename: '"c:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"' modifyEnvironment: true - task: CMake@1 displayName: 'CMake .. -Drun_reals_check:bool=ON -Drun_unittests:bool=ON -Drun_int_tests:bool=ON -Duse_cppunittest:bool=ON -Dabort_on_fail:bool=ON -G "Visual Studio 17 2022" -A x64' inputs: workingDirectory: 'build_x64' cmakeArgs: '.. -Drun_reals_check:bool=ON -Drun_unittests:bool=ON -Drun_int_tests:bool=ON -Duse_cppunittest:bool=ON -Dabort_on_fail:bool=ON -G "Visual Studio 17 2022" -A x64' - task: VSBuild@1 displayName: 'Build solution build_x64\*.sln' inputs: solution: 'build_x64\*.sln' msbuildArgs: '/t:restore /t:build' configuration: RelWithDebInfo maximumCpuCount: true - task: VSTest@2 displayName: 'VsTest - testAssemblies' inputs: testAssemblyVer2: | **\*_ut_*.dll **\*_int_*.dll **\*_perf_*.dll runTestsInIsolation: true - job: Traceability pool: name: Azure-MessagingStore-WinBuildPoolVS2022 demands: - Build - Cmd - msbuild - visualstudio steps: - task: BatchScript@1 displayName: 'Git submodule update' inputs: filename: 'C:\Program Files\Git\bin\git.exe' arguments: 'submodule update --init --force deps/c-build-tools' - task: BatchScript@1 displayName: 'Git submodule clean' inputs: filename: 'C:\Program Files\Git\bin\git.exe' arguments: 'submodule foreach --recursive "git clean -xdff"' - task: BatchScript@1 displayName: 'Git clean' inputs: filename: 'C:\Program Files\Git\bin\git.exe' arguments: 'clean -xdff' - task: BatchScript@1 displayName: 'Setup VS Vars' inputs: filename: '"c:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat"' modifyEnvironment: true - task: CMake@1 displayName: CMake inputs: workingDirectory: 'build' cmakeArgs: '.. -A x64' - task: VSBuild@1 displayName: 'Build traceabilitytool only' inputs: solution: 'build\sf_c_util.sln' platform: x64 configuration: RelWithDebInfo msbuildArgs: '/t:restore /t:traceabilitytool' clean: true maximumCpuCount: true - task: BatchScript@1 displayName: 'Run traceability tool' inputs: filename: 'build/deps/c-build-tools/traceabilitytool/RelWithDebInfo/traceabilitytool.exe' arguments: '-i $(Build.SourcesDirectory) -buildcheck -e $(Build.SourcesDirectory)\deps' modifyEnvironment: false workingFolder: '$(Build.SourcesDirectory)' # Will be re-enabled at a later time #- job: includecheck # pool: # name: Azure-MessagingStore # demands: # - Build # - Cmd # - msbuild # - cmake # - visualstudio # # steps: # - task: BatchScript@1 # displayName: 'Git submodule update' # inputs: # filename: 'C:\Program Files\Git\bin\git.exe' # arguments: 'submodule update --init --force' # # - task: BatchScript@1 # displayName: 'Git submodule clean' # inputs: # filename: 'C:\Program Files\Git\bin\git.exe' # arguments: 'submodule foreach --recursive "git clean -xdff"' # # - task: BatchScript@1 # displayName: 'Git clean' # inputs: # filename: 'C:\Program Files\Git\bin\git.exe' # arguments: 'clean -xdff' # # - task: BatchScript@1 # displayName: 'Setup VS Vars' # inputs: # filename: '"c:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"' # modifyEnvironment: true # # - task: CMake@1 # displayName: 'Running cmake' # inputs: # workingDirectory: 'build_ninja' # cmakeArgs: '.. -GNinja -DCMAKE_C_INCLUDE_WHAT_YOU_USE:UNINITIALIZED=include-what-you-use;-Xiwyu;--mapping_file=../deps/c-build-tools/iwyu/rules.imp;--driver-mode=cl -DCMAKE_CXX_INCLUDE_WHAT_YOU_USE:UNINITIALIZED=include-what-you-use;-Xiwyu;--mapping_file=../deps/c-build-tools/iwyu/rules.imp;--driver-mode=cl -Drun_unittests:bool=ON -Drun_int_tests:bool=ON -Drun_perf_tests:bool=ON -Duse_cppunittest:bool=ON' # # - task: PowerShell@2 # displayName: 'Build solution and check includes' # inputs: # workingDirectory: 'build_ninja' # targetType: 'inline' # script: | # cmake --build . | tee build.log # if ((Select-String -Path "./build.log" -Pattern "Warning: include-what-you-use") -ne $null) { throw "include check failed" }