1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
#
# Copyright(c) 2021 ZettaScale Technology and others
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License v. 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
# v. 1.0 which is available at
# http://www.eclipse.org/org/documents/edl-v10.php.
#
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
#
trigger: [ '*' ]
pr: [ '*' ]
variables:
cyclonedds_uri: '<CycloneDDS><Domain><Internal><EnableExpensiveChecks>rhc,whc</EnableExpensiveChecks><LivelinessMonitoring>true</LivelinessMonitoring></Internal><Tracing><Verbosity>config</Verbosity><OutputFile>stderr</OutputFile></Tracing></Domain></CycloneDDS>'
jobs:
- job: BuildAndTest
pool:
vmImage: $(image)
strategy:
matrix:
'Ubuntu 20.04 LTS with GCC 10 (Debug, x86_64)':
image: ubuntu-20.04
analyzer: on
# not enabling "undefined" because of some false positives
sanitizer: address
cc: gcc-10
coverage: on
'Ubuntu 20.04 LTS with GCC 10 (Debug, x86_64, Iceoryx)':
image: ubuntu-20.04
#analyzer: on # disabled for now because of warnings
sanitizer: address,undefined
iceoryx: on
cc: gcc-10
coverage: on
'Ubuntu 20.04 LTS with GCC 10 (Release, x86_64)':
image: ubuntu-20.04
build_type: Release
sanitizer: undefined
cc: gcc-10
'Ubuntu 20.04 LTS with GCC 10 (Debug, x86_64, security only)':
image: ubuntu-20.04
sanitizer: address,undefined
ssl: off
lifespan: off
deadline: off
type_discovery: off
topic_discovery: off
idlc_testing: off # temporary dislabled because of passing -t option to idlc in this test for recursive types
cc: gcc-10
'Ubuntu 22.04 LTS with GCC 10 (Debug, x86_64, no tests)':
image: ubuntu-22.04
cc: gcc-10
testing: off
idlc_xtests: off
'Ubuntu 22.04 LTS with Clang 12 (Debug, x86_64)':
image: ubuntu-22.04
analyzer: on
sanitizer: address,undefined
cc: clang-10
'Ubuntu 20.04 LTS with Clang 10 (Debug, x86_64, no security)':
image: ubuntu-20.04
sanitizer: address,undefined
security: off
cc: clang-10
'Ubuntu 20.04 LTS with Clang 10 (Release, x86_64, no topic discovery)':
image: ubuntu-20.04
build_type: Release
sanitizer: undefined
topic_discovery: off
idlc_testing: off # temporary dislabled because of passing -t option to idlc in this test for recursive types
cc: clang-10
'macOS 11 with Clang 12 (Debug, x86_64)':
image: macOS-11
sanitizer: address,undefined
cc: clang
'macOS 11 with Clang 12 (Release, x86_64)':
image: macOS-11
build_type: Release
sanitizer: undefined
cc: clang
'macOS 11 with Clang 13 (Release, x86_64)':
image: macOS-11
build_type: Release
sanitizer: undefined
cc: clang
coverage: on
'macOS 12 with gcc 12 (Debug, analyzer, x86_64)':
image: macOS-12
sanitizer: undefined
deadline_update_skip: on
cc: gcc-12
analyzer: on
# 32-bit Windows: without SSL/security because Chocolateley only provides 64-bit OpenSSL
'Windows 2019 with Visual Studio 2019 (Visual Studio 2017, Debug, x86, no security)':
arch: x86
image: windows-2019
ssl: off
security: off
idlc_xtests: off
generator: 'Visual Studio 16 2019'
toolset: v141
'Windows 2019 with Visual Studio 2019 (Debug, x86_64)':
image: windows-2019
idlc_testing: off
generator: 'Visual Studio 16 2019'
'Windows 2019 with Visual Studio 2019 (Release, x86_64)':
image: windows-2019
build_type: Release
idlc_testing: off
generator: 'Visual Studio 16 2019'
#'Windows 2019 with GCC 10 (Debug, x86_64)':
# image: windows-2019
# build_type: Debug
# idlc_testing: off
# generator: 'MinGW Makefiles'
# cc: 'C:/msys64/mingw64/bin/gcc.exe'
# cxx: 'C:/msys64/mingw64/bin/g++.exe'
steps:
- template: /.azure/templates/build-test.yml
- job: CoverageAndTestsReport
dependsOn: BuildAndTest
condition: succeededOrFailed() # Always run, even when failed tests, because they should be reported in the dasboard of course!
pool:
vmImage: ubuntu-20.04
steps:
- bash: |
mkdir coverage
- task: DownloadPipelineArtifact@2
inputs:
path: coverage
displayName: Download Coverage
- task: UsePythonVersion@0
- bash: |
python -m pip install gcovr==5.0 --user --upgrade
ls coverage
gcovr -a coverage/**/*.json --xml-pretty --output coverage.xml
displayName: Combine coverage reports
- task: PublishCodeCoverageResults@1
displayName: Publish Cobertura Coverage Report
inputs:
codeCoverageTool: Cobertura
summaryFileLocation: coverage.xml
|