Skip to content

Commit 1a2b017

Browse files
committed
COMP: Consolidate Linux Azure CI to a single LegacyRemoved+Cxx20 lane
Three jobs in AzurePipelinesLinux.yml previously covered overlapping ground: - Linux: default ubuntu-22.04 / C++17 / no-Python (strict subset of AzurePipelinesLinuxPython) - LinuxLegacyRemoved: ubuntu-22.04 / ITK_LEGACY_REMOVE=ON - LinuxCxx20: ubuntu-24.04 / CMAKE_CXX_STANDARD=20 Drop the Linux job entirely (covered by LinuxPython) and merge the two remaining lanes into a single LinuxLegacyRemovedCxx20 job on ubuntu-24.04 carrying both ITK_LEGACY_REMOVE=ON and CMAKE_CXX_STANDARD=20. The two axes are orthogonal (legacy-API surface vs language-conformance) and rarely need bisected isolation in CI. Part of issue #6163 (CI matrix consolidation).
1 parent 1a304cd commit 1a2b017

1 file changed

Lines changed: 9 additions & 218 deletions

File tree

Testing/ContinuousIntegration/AzurePipelinesLinux.yml

Lines changed: 9 additions & 218 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@ variables:
3434
CCACHE_NOHASHDIR: 'true'
3535
CCACHE_SLOPPINESS: pch_defines,time_macros
3636
jobs:
37-
- job: Linux
37+
- job: LinuxLegacyRemovedCxx20
3838
timeoutInMinutes: 0
3939
cancelTimeoutInMinutes: 300
4040
pool:
41-
vmImage: ubuntu-22.04
41+
vmImage: ubuntu-24.04
4242
steps:
4343
- checkout: self
4444
clean: true
@@ -80,9 +80,9 @@ jobs:
8080

8181
- task: Cache@2
8282
inputs:
83-
key: '"ccache-v4" | "$(Agent.OS)" | "Linux" | "$(Build.SourceVersion)"'
83+
key: '"ccache-v4" | "$(Agent.OS)" | "LinuxLegacyRemovedCxx20" | "$(Build.SourceVersion)"'
8484
restoreKeys: |
85-
"ccache-v4" | "$(Agent.OS)" | "Linux"
85+
"ccache-v4" | "$(Agent.OS)" | "LinuxLegacyRemovedCxx20"
8686
path: $(CCACHE_DIR)
8787
displayName: 'Restore ccache'
8888

@@ -97,116 +97,13 @@ jobs:
9797
cat > dashboard.cmake << EOF
9898
set(CTEST_BUILD_CONFIGURATION "MinSizeRel")
9999
set(CTEST_CMAKE_GENERATOR "Ninja")
100-
set(dashboard_cache "
101-
BUILD_SHARED_LIBS:BOOL=OFF
102-
BUILD_EXAMPLES:BOOL=OFF
103-
ITK_WRAP_PYTHON:BOOL=OFF
104-
CMAKE_C_COMPILER_LAUNCHER:STRING=ccache
105-
CMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache
106-
ITK_COMPUTER_MEMORY_SIZE:STRING=4.5
107-
")
108-
set(CTEST_TEST_ARGS EXCLUDE_LABEL BigIO) # Disabled to conserve disk space
109-
include(\$ENV{AGENT_BUILDDIRECTORY}/ITK-dashboard/azure_dashboard.cmake)
110-
EOF
111-
cat dashboard.cmake
112-
workingDirectory: $(Agent.BuildDirectory)/ITK-dashboard
113-
displayName: 'Configure CTest script'
114-
115-
- bash: |
116-
set -x
117-
118-
c++ --version
119-
cmake --version
120-
121-
ctest -S $(Agent.BuildDirectory)/ITK-dashboard/dashboard.cmake -V -j 2
122-
displayName: 'Build and test'
123-
env:
124-
CTEST_OUTPUT_ON_FAILURE: 1
125-
CCACHE_MAXSIZE: 2.4G
126-
127-
- bash: ccache --show-stats
128-
condition: always()
129-
displayName: 'ccache stats'
130-
131-
- bash: python3 $(Build.SourcesDirectory)/Testing/ContinuousIntegration/report_build_diagnostics.py $(Build.SourcesDirectory)-build
132-
condition: succeededOrFailed()
133-
displayName: 'Report build warnings and errors'
134-
135-
- script: |
136-
ci_addons ctest_junit_formatter $(Build.SourcesDirectory)-build > $(Agent.BuildDirectory)/JUnitTestResults.xml
137-
condition: succeededOrFailed()
138-
displayName: 'Format CTest output in JUnit format'
139-
140-
- task: PublishTestResults@2
141-
inputs:
142-
testResultsFiles: "$(Agent.BuildDirectory)/JUnitTestResults.xml"
143-
testRunTitle: 'CTest $(Agent.OS)'
144-
condition: succeededOrFailed()
145-
displayName: 'Publish test results'
146-
147-
- job: LinuxLegacyRemoved
148-
timeoutInMinutes: 0
149-
cancelTimeoutInMinutes: 300
150-
pool:
151-
vmImage: ubuntu-22.04
152-
steps:
153-
- checkout: self
154-
clean: true
155-
fetchDepth: 5
156-
- bash: |
157-
set -x
158-
if [ -n "$(System.PullRequest.SourceCommitId)" ]; then
159-
git checkout $(System.PullRequest.SourceCommitId)
160-
fi
161-
displayName: 'Checkout pull request HEAD'
162-
163-
- bash: |
164-
set -x
165-
sudo pip3 install ninja
166-
sudo apt-get update
167-
sudo apt-get install -y python3-venv ccache locales
168-
sudo locale-gen de_DE.UTF-8
169-
sudo python3 -m pip install lxml scikit-ci-addons
170-
displayName: 'Install dependencies'
171-
172-
- bash: |
173-
set -x
174-
git clone -b dashboard --single-branch https://github.com/InsightSoftwareConsortium/ITK.git ITK-dashboard
175-
workingDirectory: $(Agent.BuildDirectory)
176-
displayName: 'Download dashboard script'
177-
178-
- task: Cache@2
179-
inputs:
180-
key: '"externaldata" | "v1" | **/*.cid'
181-
restoreKeys: |
182-
"externaldata" | "v1"
183-
path: $(ExternalData_OBJECT_STORES)
184-
displayName: 'Restore ExternalData object store'
185-
186-
- task: Cache@2
187-
inputs:
188-
key: '"ccache-v4" | "$(Agent.OS)" | "LinuxLegacyRemoved" | "$(Build.SourceVersion)"'
189-
restoreKeys: |
190-
"ccache-v4" | "$(Agent.OS)" | "LinuxLegacyRemoved"
191-
path: $(CCACHE_DIR)
192-
displayName: 'Restore ccache'
193-
194-
- bash: |
195-
set -x
196-
ccache --zero-stats
197-
ccache --evict-older-than 7d
198-
ccache --show-config
199-
displayName: 'ccache config and maintenance'
200-
201-
- bash: |
202-
cat > dashboard.cmake << EOF
203-
set(CTEST_BUILD_CONFIGURATION "MinSizeRel")
204-
set(CTEST_CMAKE_GENERATOR "Ninja")
205-
set(BUILD_NAME_SUFFIX "LegacyRemoved")
100+
set(BUILD_NAME_SUFFIX "LegacyRemovedCxx20")
206101
set(dashboard_cache "
207102
ITK_LEGACY_REMOVE:BOOL=ON
103+
CMAKE_CXX_STANDARD:STRING=20
104+
CMAKE_CXX_STANDARD_REQUIRED:BOOL=ON
208105
BUILD_SHARED_LIBS:BOOL=OFF
209-
BUILD_EXAMPLES:BOOL=OFF
106+
BUILD_EXAMPLES:BOOL=ON
210107
ITK_WRAP_PYTHON:BOOL=OFF
211108
CMAKE_C_COMPILER_LAUNCHER:STRING=ccache
212109
CMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache
@@ -247,112 +144,6 @@ jobs:
247144
- task: PublishTestResults@2
248145
inputs:
249146
testResultsFiles: "$(Agent.BuildDirectory)/JUnitTestResults.xml"
250-
testRunTitle: 'CTest $(Agent.OS) LegacyRemoved'
147+
testRunTitle: 'CTest $(Agent.OS) LegacyRemovedCxx20'
251148
condition: succeededOrFailed()
252149
displayName: 'Publish test results'
253-
254-
- job: LinuxCxx20
255-
timeoutInMinutes: 0
256-
cancelTimeoutInMinutes: 300
257-
pool:
258-
vmImage: ubuntu-24.04
259-
steps:
260-
- checkout: self
261-
clean: true
262-
fetchDepth: 5
263-
- bash: |
264-
set -x
265-
if [ -n "$(System.PullRequest.SourceCommitId)" ]; then
266-
git checkout $(System.PullRequest.SourceCommitId)
267-
fi
268-
displayName: "Checkout pull request HEAD"
269-
- task: UsePythonVersion@0
270-
inputs:
271-
versionSpec: "3.10"
272-
architecture: "x64"
273-
- bash: |
274-
set -x
275-
sudo pip3 install ninja
276-
sudo apt-get update
277-
sudo apt-get install -y python3-venv ccache locales
278-
sudo locale-gen de_DE.UTF-8
279-
sudo python3 -m pip install lxml scikit-ci-addons
280-
displayName: "Install dependencies"
281-
- bash: |
282-
set -x
283-
git clone -b dashboard --single-branch https://github.com/InsightSoftwareConsortium/ITK.git ITK-dashboard
284-
workingDirectory: $(Agent.BuildDirectory)
285-
displayName: "Download dashboard script"
286-
287-
- task: Cache@2
288-
inputs:
289-
key: '"externaldata" | "v1" | **/*.cid'
290-
restoreKeys: |
291-
"externaldata" | "v1"
292-
path: $(ExternalData_OBJECT_STORES)
293-
displayName: 'Restore ExternalData object store'
294-
295-
- task: Cache@2
296-
inputs:
297-
key: '"ccache-v4" | "$(Agent.OS)" | "LinuxCxx20" | "$(Build.SourceVersion)"'
298-
restoreKeys: |
299-
"ccache-v4" | "$(Agent.OS)" | "LinuxCxx20"
300-
path: $(CCACHE_DIR)
301-
displayName: 'Restore ccache'
302-
303-
- bash: |
304-
set -x
305-
ccache --zero-stats
306-
ccache --evict-older-than 7d
307-
ccache --show-config
308-
displayName: 'ccache config and maintenance'
309-
310-
- bash: |
311-
cat > dashboard.cmake << EOF
312-
set(CTEST_BUILD_CONFIGURATION "MinSizeRel")
313-
set(CTEST_CMAKE_GENERATOR "Ninja")
314-
set(BUILD_NAME_SUFFIX "Cxx20")
315-
set(dashboard_cache "
316-
CMAKE_CXX_STANDARD:STRING=20
317-
CMAKE_CXX_STANDARD_REQUIRED:BOOL=ON
318-
BUILD_SHARED_LIBS:BOOL=OFF
319-
BUILD_EXAMPLES:BOOL=OFF
320-
ITK_WRAP_PYTHON:BOOL=OFF
321-
CMAKE_C_COMPILER_LAUNCHER:STRING=ccache
322-
CMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache
323-
ITK_COMPUTER_MEMORY_SIZE:STRING=4.5
324-
")
325-
set(CTEST_TEST_ARGS EXCLUDE_LABEL BigIO) # Disabled to conserve disk space
326-
include(\$ENV{AGENT_BUILDDIRECTORY}/ITK-dashboard/azure_dashboard.cmake)
327-
EOF
328-
cat dashboard.cmake
329-
workingDirectory: $(Agent.BuildDirectory)/ITK-dashboard
330-
displayName: "Configure CTest script"
331-
- bash: |
332-
set -x
333-
c++ --version
334-
cmake --version
335-
ctest -S $(Agent.BuildDirectory)/ITK-dashboard/dashboard.cmake -V -j 2
336-
displayName: "Build and test"
337-
env:
338-
CTEST_OUTPUT_ON_FAILURE: 1
339-
CCACHE_MAXSIZE: 2.4G
340-
341-
- bash: ccache --show-stats
342-
condition: always()
343-
displayName: 'ccache stats'
344-
345-
- bash: python3 $(Build.SourcesDirectory)/Testing/ContinuousIntegration/report_build_diagnostics.py $(Build.SourcesDirectory)-build
346-
condition: succeededOrFailed()
347-
displayName: 'Report build warnings and errors'
348-
349-
- script: |
350-
ci_addons ctest_junit_formatter $(Build.SourcesDirectory)-build > $(Agent.BuildDirectory)/JUnitTestResults.xml
351-
condition: succeededOrFailed()
352-
displayName: "Format CTest output in JUnit format"
353-
- task: PublishTestResults@2
354-
inputs:
355-
testResultsFiles: "$(Agent.BuildDirectory)/JUnitTestResults.xml"
356-
testRunTitle: "CTest $(Agent.OS) Cxx20"
357-
condition: succeededOrFailed()
358-
displayName: "Publish test results"

0 commit comments

Comments
 (0)