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: - 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\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 -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 -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' - task: PublishBuildArtifacts@1 displayName: 'Publish artifacts' inputs: pathtoPublish: 'build_x64' artifactName: 'x64_Debug' parallel: true condition: failed() - job: windowsx64relwithdebinfo displayName: 'Build Windows x64 RelWithDebInfo' pool: name: Azure-MessagingStore-WinBuildPoolVS2022 demands: - Cmd - msbuild - cmake - 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 -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 -G "Visual Studio 17 2022" -A x64' - task: VSBuild@1 displayName: 'Build solution build_x64\*.sln' inputs: solution: 'build_x64\*.sln' platform: x64 msbuildArgs: '/t:restore /t:build' configuration: RelWithDebInfo maximumCpuCount: true - task: CmdLine@1 displayName: 'Run ctest' inputs: filename: ctest arguments: '-C "RelWithDebInfo" -V --output-on-failure' workingFolder: 'build_x64' - task: PublishBuildArtifacts@1 displayName: 'Publish artifacts' inputs: pathtoPublish: 'build_x64' artifactName: 'x64_RelWithDebInfo' parallel: true condition: failed() - job: windowsx86debug displayName: 'Build Windows x86 Debug' pool: name: Azure-MessagingStore-WinBuildPoolVS2022 demands: - 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\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 -Drun_e2e_tests:bool=ON -G "Visual Studio 17 2022" -A Win32' inputs: workingDirectory: 'build_x86' cmakeArgs: '.. -Drun_reals_check:bool=ON -Drun_unittests:bool=ON -Drun_int_tests:bool=ON -Drun_e2e_tests:bool=ON -G "Visual Studio 17 2022" -A Win32' - task: VSBuild@1 displayName: 'Build solution build_x86\*.sln' inputs: solution: 'build_x86\*.sln' platform: Win32 msbuildArgs: '/t:restore /t:build' configuration: Debug maximumCpuCount: true - task: CmdLine@1 displayName: 'Run ctest' inputs: filename: ctest arguments: '-C "Debug" -V --output-on-failure' workingFolder: 'build_x86' - task: PublishBuildArtifacts@1 displayName: 'Publish artifacts' inputs: pathtoPublish: 'build_x86' artifactName: 'x86_Debug' parallel: true condition: failed() - job: linuxubuntu displayName: 'Build Linux Ubuntu' pool: name: Azure-MessagingStore-LinuxBuildMachinePool demands: - linux steps: - bash: | pushd $(Build.Repository.LocalPath) git submodule update --init git submodule foreach --recursive "git clean -xdff" git clean -xdff popd workingDirectory: '$(Build.Repository.LocalPath)' displayName: 'git submodule update and clean' - task: Bash@3 displayName: 'Build and run tests' inputs: targetType: filePath filePath: './build/linux/build_linux.sh' arguments: '$(Build.Repository.LocalPath)' workingDirectory: '$(Build.Repository.LocalPath)' # 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 (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.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' # # - 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:") -ne $null) { throw "include check failed" } - job: Traceability pool: name: Azure-MessagingStore-WinBuildPoolVS2022 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\Common7\Tools\VsDevCmd.bat"' modifyEnvironment: true - task: NuGetCommand@2 displayName: 'NuGet restore' inputs: restoreSolution: deps/c-build-tools/traceabilitytool/traceabilitytool.sln - task: CMake@1 displayName: 'CMake .. -Ax64' inputs: workingDirectory: 'build' cmakeArgs: '.. -Ax64' - task: VSBuild@1 displayName: 'Build traceabilitytool only' inputs: solution: 'build\c_logging.sln' platform: x64 configuration: RelWithDebInfo msbuildArgs: '/t:restore /t:build /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 deps' modifyEnvironment: false workingFolder: '$(Build.SourcesDirectory)' - job: includecheck_linux pool: name: Azure-MessagingStore-LinuxBuildMachinePool demands: - linux steps: - bash: | pushd $(Build.Repository.LocalPath) git submodule update --init git submodule foreach --recursive "git clean -xdff" git clean -xdff popd workingDirectory: '$(Build.Repository.LocalPath)' displayName: 'git submodule update and clean' - task: Bash@3 displayName: 'Build with iwyu' inputs: targetType: filePath filePath: './build/linux/build_linux_iwyu.sh' arguments: '$(Build.Repository.LocalPath)' workingDirectory: '$(Build.Repository.LocalPath)'