Skip to content

Commit 9ace9da

Browse files
authored
Merge pull request #68 from thewtex/azure-pipelines
ENH: Add Azure Pipelines configuration
2 parents a4defea + cfb62f0 commit 9ace9da

File tree

2 files changed

+195
-3
lines changed

2 files changed

+195
-3
lines changed

azure-pipelines.yml

Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
variables:
2+
ITKGitTag: v5.0rc01
3+
CMakeBuildType: Release
4+
5+
trigger:
6+
batch: true
7+
branches:
8+
include:
9+
- master
10+
11+
jobs:
12+
13+
- job: 'Test'
14+
displayName: "Build and test"
15+
timeoutInMinutes: 0
16+
cancelTimeoutInMinutes: 300
17+
18+
strategy:
19+
matrix:
20+
Linux:
21+
imageName: 'ubuntu-16.04'
22+
cCompiler: gcc
23+
cxxCompiler: g++
24+
compilerInitialization: ''
25+
macOS:
26+
imageName: 'macos-10.13'
27+
cCompiler: clang
28+
cxxCompiler: clang++
29+
compilerInitialization: ''
30+
Windows:
31+
imageName: 'vs2017-win2016'
32+
cCompiler: cl.exe
33+
cxxCompiler: cl.exe
34+
compilerInitialization: 'call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat"'
35+
36+
pool:
37+
vmImage: $(imageName)
38+
39+
steps:
40+
- bash: |
41+
set -x
42+
if [ -n "$(System.PullRequest.SourceCommitId)" ]; then
43+
git checkout $(System.PullRequest.SourceCommitId)
44+
fi
45+
displayName: 'Checkout pull request HEAD'
46+
47+
- task: UsePythonVersion@0
48+
inputs:
49+
versionSpec: '3.7'
50+
architecture: 'x64'
51+
52+
- script: |
53+
python -m pip install --upgrade pip
54+
python -m pip install --upgrade setuptools
55+
python -m pip install scikit-ci-addons
56+
python -m pip install ninja
57+
displayName: 'Install build dependencies'
58+
59+
- script: |
60+
git clone --depth 5 --branch $(ITKGitTag) https://github.com/InsightSoftwareConsortium/ITK.git
61+
workingDirectory: $(Agent.BuildDirectory)
62+
displayName: 'Download ITK'
63+
64+
- script: |
65+
mkdir ITK-build
66+
cd ITK-build
67+
$(compilerInitialization)
68+
cmake -DCMAKE_C_COMPILER:FILEPATH="$(cCompiler)" -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_CXX_COMPILER="$(cxxCompiler)" -DCMAKE_BUILD_TYPE:STRING=$(CMakeBuildType) -DBUILD_TESTING:BOOL=OFF -GNinja ../ITK
69+
ninja
70+
workingDirectory: $(Agent.BuildDirectory)
71+
displayName: 'Build ITK'
72+
73+
- script: |
74+
curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITK/dashboard/itk_common.cmake -O
75+
displayName: 'Fetch CTest driver script'
76+
77+
- bash: |
78+
cat > dashboard.cmake << EOF
79+
set(CTEST_SITE "Azure.\$ENV{AGENT_MACHINENAME}")
80+
file(TO_CMAKE_PATH "\$ENV{AGENT_BUILDDIRECTORY}" CTEST_DASHBOARD_ROOT)
81+
file(TO_CMAKE_PATH "\$ENV{BUILD_SOURCESDIRECTORY}" CTEST_SOURCE_DIRECTORY)
82+
file(TO_CMAKE_PATH "\$ENV{AGENT_BUILDDIRECTORY}/build" CTEST_BINARY_DIRECTORY)
83+
set(dashboard_source_name "$(Build.Repository.Name)")
84+
if(DEFINED ENV{SYSTEM_PULLREQUEST_SOURCEBRANCH})
85+
set(branch "-\$ENV{SYSTEM_PULLREQUEST_SOURCEBRANCH}")
86+
set(dashboard_model "Experimental")
87+
elseif(ENV{BUILD_SOURCEBRANCHNAME} STREQUAL "master")
88+
set(branch "-master")
89+
set(dashboard_model "Continuous")
90+
else()
91+
set(branch "-\$ENV{BUILD_SOURCEBRANCHNAME}")
92+
set(dashboard_model "Experimental")
93+
endif()
94+
if(DEFINED ENV{SYSTEM_PULLREQUEST_PULLREQUESTNUMBER})
95+
set(pr "-PR\$ENV{SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}")
96+
else()
97+
set(pr "")
98+
endif()
99+
set(CTEST_BUILD_NAME "$(Build.Repository.Name)-$(Agent.OS)-Build$(Build.BuildId)\${pr}\${branch}")
100+
set(CTEST_UPDATE_VERSION_ONLY 1)
101+
set(CTEST_TEST_ARGS \${CTEST_TEST_ARGS} PARALLEL_LEVEL \${PARALLEL_LEVEL})
102+
set(CTEST_BUILD_CONFIGURATION "Release")
103+
set(CTEST_CMAKE_GENERATOR "Ninja")
104+
set(CTEST_CUSTOM_WARNING_EXCEPTION
105+
\${CTEST_CUSTOM_WARNING_EXCEPTION}
106+
# macOS Azure Pipelines
107+
"ld: warning: text-based stub file"
108+
)
109+
set(dashboard_no_clean 1)
110+
set(ENV{CC} $(cCompiler))
111+
set(ENV{CXX} $(cxxCompiler))
112+
set(dashboard_cache "
113+
ITK_DIR:PATH=\${CTEST_DASHBOARD_ROOT}/ITK-build
114+
BUILD_TESTING:BOOL=ON
115+
")
116+
string(TIMESTAMP build_date "%Y-%m-%d")
117+
message("CDash Build Identifier: \${build_date} \${CTEST_BUILD_NAME}")
118+
message("CTEST_SITE = \${CTEST_SITE}")
119+
include(\${CTEST_SCRIPT_DIRECTORY}/itk_common.cmake)
120+
EOF
121+
cat dashboard.cmake
122+
displayName: 'Configure module CTest script'
123+
124+
- script: |
125+
$(compilerInitialization)
126+
ctest -j 2 -V -S dashboard.cmake
127+
displayName: 'Build and test module'
128+
129+
- bash: |
130+
cat > dashboard.cmake << EOF
131+
set(CTEST_SITE "Azure.\$ENV{AGENT_MACHINENAME}")
132+
file(TO_CMAKE_PATH "\$ENV{AGENT_BUILDDIRECTORY}" CTEST_DASHBOARD_ROOT)
133+
file(TO_CMAKE_PATH "\$ENV{BUILD_SOURCESDIRECTORY}/examples" CTEST_SOURCE_DIRECTORY)
134+
file(TO_CMAKE_PATH "\$ENV{AGENT_BUILDDIRECTORY}/ITKBenchmarks-build" CTEST_BINARY_DIRECTORY)
135+
set(dashboard_source_name "$(Build.Repository.Name)")
136+
if(DEFINED ENV{SYSTEM_PULLREQUEST_SOURCEBRANCH})
137+
set(branch "-\$ENV{SYSTEM_PULLREQUEST_SOURCEBRANCH}")
138+
set(dashboard_model "Experimental")
139+
elseif(ENV{BUILD_SOURCEBRANCHNAME} STREQUAL "master")
140+
set(branch "-master")
141+
set(dashboard_model "Continuous")
142+
else()
143+
set(branch "-\$ENV{BUILD_SOURCEBRANCHNAME}")
144+
set(dashboard_model "Experimental")
145+
endif()
146+
if(DEFINED ENV{SYSTEM_PULLREQUEST_PULLREQUESTNUMBER})
147+
set(pr "-PR\$ENV{SYSTEM_PULLREQUEST_PULLREQUESTNUMBER}")
148+
else()
149+
set(pr "")
150+
endif()
151+
set(CTEST_BUILD_NAME "$(Build.Repository.Name)-Benchmarks-$(Agent.OS)-Build$(Build.BuildId)\${pr}\${branch}")
152+
set(CTEST_UPDATE_VERSION_ONLY 1)
153+
set(CTEST_TEST_ARGS \${CTEST_TEST_ARGS} PARALLEL_LEVEL \${PARALLEL_LEVEL})
154+
set(CTEST_BUILD_CONFIGURATION "Release")
155+
set(CTEST_CMAKE_GENERATOR "Ninja")
156+
set(CTEST_CUSTOM_WARNING_EXCEPTION
157+
\${CTEST_CUSTOM_WARNING_EXCEPTION}
158+
# macOS Azure Pipelines
159+
"ld: warning: text-based stub file"
160+
)
161+
set(dashboard_no_clean 1)
162+
set(ENV{CC} $(cCompiler))
163+
set(ENV{CXX} $(cxxCompiler))
164+
set(dashboard_cache "
165+
ITK_DIR:PATH=\${CTEST_DASHBOARD_ROOT}/ITK-build
166+
BUILD_TESTING:BOOL=ON
167+
")
168+
string(TIMESTAMP build_date "%Y-%m-%d")
169+
message("CDash Build Identifier: \${build_date} \${CTEST_BUILD_NAME}")
170+
message("CTEST_SITE = \${CTEST_SITE}")
171+
include(\${CTEST_SCRIPT_DIRECTORY}/itk_common.cmake)
172+
EOF
173+
cat dashboard.cmake
174+
displayName: 'Configure benchmarks CTest script'
175+
176+
- script: |
177+
$(compilerInitialization)
178+
ctest -j 2 -V -S dashboard.cmake
179+
displayName: 'Build and test benchmarks'
180+
181+
- script: |
182+
sudo pip3 install --upgrade pip
183+
sudo pip3 install --upgrade setuptools
184+
sudo pip3 install scikit-ci-addons
185+
ci_addons ctest_junit_formatter $(Agent.BuildDirectory)/build > $(Agent.BuildDirectory)/JUnitTestResults.xml
186+
condition: succeededOrFailed()
187+
displayName: 'Format CTest output in JUnit format'
188+
189+
- task: PublishTestResults@2
190+
inputs:
191+
testResultsFiles: "$(Agent.BuildDirectory)/JUnitTestResults.xml"
192+
testRunTitle: 'CTest $(Agent.OS)'
193+
condition: succeededOrFailed()
194+
displayName: 'Publish test results'

src/CMakeLists.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,4 @@ set( PerformanceBenchmarking_SRCS
6464
PerformanceBenchmarkingUtilities.cxx
6565
${CMAKE_BINARY_DIR}/PerformanceBenchmarkingInformation.h)
6666

67-
add_library( PerformanceBenchmarking ${ITK_LIBRARY_BUILD_TYPE} ${PerformanceBenchmarking_SRCS})
68-
itk_module_link_dependencies()
69-
itk_module_target(PerformanceBenchmarking)
67+
itk_module_add_library(PerformanceBenchmarking ${PerformanceBenchmarking_SRCS})

0 commit comments

Comments
 (0)