@@ -2,277 +2,11 @@ name: Build, test, package
22
33on : [push,pull_request]
44
5- env :
6- itk-git-tag : " v5.3rc04"
7- itk-wheel-tag : " v5.3rc04.post2"
8-
95jobs :
10- build-test-cxx :
11- runs-on : ${{ matrix.os }}
12- strategy :
13- max-parallel : 3
14- matrix :
15- os : [ubuntu-18.04, windows-2019, macos-10.15]
16- include :
17- - os : ubuntu-18.04
18- c-compiler : " gcc"
19- cxx-compiler : " g++"
20- itk-git-tag : " v5.3rc04"
21- cmake-build-type : " MinSizeRel"
22- - os : windows-2019
23- c-compiler : " cl.exe"
24- cxx-compiler : " cl.exe"
25- itk-git-tag : " v5.3rc04"
26- cmake-build-type : " Release"
27- - os : macos-10.15
28- c-compiler : " clang"
29- cxx-compiler : " clang++"
30- itk-git-tag : " v5.3rc04"
31- cmake-build-type : " MinSizeRel"
32-
33- steps :
34- - uses : actions/checkout@v2
35-
36- - name : Set up Python 3.8
37- uses : actions/setup-python@v2
38- with :
39- python-version : 3.8
40-
41- - name : Install build dependencies
42- run : |
43- python -m pip install --upgrade pip
44- python -m pip install ninja
45-
46- - name : Get specific version of CMake, Ninja
47- 48-
49- - name : Download ITK
50- run : |
51- cd ..
52- git clone https://github.com/InsightSoftwareConsortium/ITK.git
53- cd ITK
54- git checkout ${{ env.itk-git-tag }}
55-
56- - name : Build ITK
57- if : matrix.os != 'windows-2019'
58- run : |
59- cd ..
60- mkdir ITK-build
61- cd ITK-build
62- cmake -DCMAKE_C_COMPILER:FILEPATH="${{ matrix.c-compiler }}" -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_CXX_COMPILER="${{ matrix.cxx-compiler }}" -DCMAKE_BUILD_TYPE:STRING=${{ matrix.cmake-build-type }} -DBUILD_TESTING:BOOL=OFF -GNinja ../ITK
63- ninja
64-
65- - name : Build ITK
66- if : matrix.os == 'windows-2019'
67- run : |
68- cd ..
69- mkdir ITK-build
70- cd ITK-build
71- call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
72- cmake -DCMAKE_C_COMPILER:FILEPATH="${{ matrix.c-compiler }}" -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_CXX_COMPILER="${{ matrix.cxx-compiler }}" -DCMAKE_BUILD_TYPE:STRING=${{ matrix.cmake-build-type }} -DBUILD_TESTING:BOOL=OFF -GNinja ../ITK
73- ninja
74- shell : cmd
75-
76- - name : Fetch CTest driver script
77- run : |
78- curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITK/dashboard/itk_common.cmake -O
79-
80- - name : Configure CTest script
81- shell : bash
82- run : |
83- operating_system="${{ matrix.os }}"
84- cat > dashboard.cmake << EOF
85- set(CTEST_SITE "GitHubActions")
86- file(TO_CMAKE_PATH "\$ENV{GITHUB_WORKSPACE}/.." CTEST_DASHBOARD_ROOT)
87- file(TO_CMAKE_PATH "\$ENV{GITHUB_WORKSPACE}/" CTEST_SOURCE_DIRECTORY)
88- file(TO_CMAKE_PATH "\$ENV{GITHUB_WORKSPACE}/../build" CTEST_BINARY_DIRECTORY)
89- set(dashboard_source_name "${GITHUB_REPOSITORY}")
90- if(ENV{GITHUB_REF} MATCHES "master")
91- set(branch "-master")
92- set(dashboard_model "Continuous")
93- else()
94- set(branch "-${GITHUB_REF}")
95- set(dashboard_model "Experimental")
96- endif()
97- set(CTEST_BUILD_NAME "${GITHUB_REPOSITORY}-${operating_system}-\${branch}")
98- set(CTEST_UPDATE_VERSION_ONLY 1)
99- set(CTEST_TEST_ARGS \${CTEST_TEST_ARGS} PARALLEL_LEVEL \${PARALLEL_LEVEL})
100- set(CTEST_BUILD_CONFIGURATION "Release")
101- set(CTEST_CMAKE_GENERATOR "Ninja")
102- set(CTEST_CUSTOM_WARNING_EXCEPTION
103- \${CTEST_CUSTOM_WARNING_EXCEPTION}
104- # macOS Azure VM Warning
105- "ld: warning: text-based stub file"
106- )
107- set(dashboard_no_clean 1)
108- set(ENV{CC} ${{ matrix.c-compiler }})
109- set(ENV{CXX} ${{ matrix.cxx-compiler }})
110- if(WIN32)
111- set(ENV{PATH} "\${CTEST_DASHBOARD_ROOT}/ITK-build/bin;\$ENV{PATH}")
112- endif()
113- set(dashboard_cache "
114- ITK_DIR:PATH=\${CTEST_DASHBOARD_ROOT}/ITK-build
115- BUILD_TESTING:BOOL=ON
116- ")
117- string(TIMESTAMP build_date "%Y-%m-%d")
118- message("CDash Build Identifier: \${build_date} \${CTEST_BUILD_NAME}")
119- message("CTEST_SITE = \${CTEST_SITE}")
120- include(\${CTEST_SCRIPT_DIRECTORY}/itk_common.cmake)
121- EOF
122- cat dashboard.cmake
123-
124- - name : Build and test
125- if : matrix.os != 'windows-2019'
126- run : |
127- ctest --output-on-failure -j 2 -V -S dashboard.cmake
128-
129- - name : Build and test
130- if : matrix.os == 'windows-2019'
131- run : |
132- call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
133- ctest --output-on-failure -j 2 -V -S dashboard.cmake
134- shell : cmd
135-
136- build-linux-python-packages :
137- runs-on : ubuntu-20.04
138- strategy :
139- max-parallel : 2
140- matrix :
141- python-version : [37, 38, 39, 310]
142-
143- steps :
144- - uses : actions/checkout@v2
145-
146- - name : ' Free up disk space'
147- run : |
148- # Workaround for https://github.com/actions/virtual-environments/issues/709
149- df -h
150- sudo apt-get clean
151- sudo rm -rf "/usr/local/share/boost"
152- sudo rm -rf "$AGENT_TOOLSDIRECTORY"
153- df -h
154-
155- - name : ' Fetch build script'
156- run : |
157- curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/dockcross-manylinux-download-cache-and-build-module-wheels.sh -O
158- chmod u+x dockcross-manylinux-download-cache-and-build-module-wheels.sh
159-
160- - name : ' Build 🐍 Python 📦 package'
161- run : |
162- export ITK_PACKAGE_VERSION=${{ env.itk-wheel-tag }}
163- ./dockcross-manylinux-download-cache-and-build-module-wheels.sh cp${{ matrix.python-version }}
164-
165- - name : Publish Python package as GitHub Artifact
166- uses : actions/upload-artifact@v1
167- with :
168- name : LinuxWheel${{ matrix.python-version }}
169- path : dist
170-
171- build-macos-python-packages :
172- runs-on : macos-10.15
173- strategy :
174- max-parallel : 2
175-
176- steps :
177- - uses : actions/checkout@v2
178-
179- - name : ' Specific XCode version'
180- run : |
181- sudo xcode-select -s "/Applications/Xcode_11.7.app"
182-
183- - name : Get specific version of CMake, Ninja
184- 185-
186- - name : ' Fetch build script'
187- run : |
188- curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/macpython-download-cache-and-build-module-wheels.sh -O
189- chmod u+x macpython-download-cache-and-build-module-wheels.sh
190-
191- - name : ' Build 🐍 Python 📦 package'
192- run : |
193- export ITK_PACKAGE_VERSION=${{ env.itk-wheel-tag }}
194- export MACOSX_DEPLOYMENT_TARGET=10.9
195- ./macpython-download-cache-and-build-module-wheels.sh
196-
197- - name : Publish Python package as GitHub Artifact
198- uses : actions/upload-artifact@v1
199- with :
200- name : MacOSWheels
201- path : dist
202-
203- build-windows-python-packages :
204- runs-on : windows-2019
205- strategy :
206- max-parallel : 2
207- matrix :
208- python-version-minor : [7, 8, 9, 10]
209-
210- steps :
211- - name : Get specific version of CMake, Ninja
212- 213-
214- - uses : actions/checkout@v2
215- with :
216- path : " im"
217-
218- - name : ' Install Python'
219- run : |
220- $pythonArch = "64"
221- $pythonVersion = "3.${{ matrix.python-version-minor }}"
222- iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/scikit-build/scikit-ci-addons/master/windows/install-python.ps1'))
223-
224- - name : ' Fetch build dependencies'
225- shell : bash
226- run : |
227- mv im ../../
228- cd ../../im
229- curl -L "https://github.com/InsightSoftwareConsortium/ITKPythonBuilds/releases/download/${{ env.itk-wheel-tag }}/ITKPythonBuilds-windows.zip" -o "ITKPythonBuilds-windows.zip"
230- 7z x ITKPythonBuilds-windows.zip -o/c/P -aoa -r
231- curl -L "https://data.kitware.com/api/v1/file/5c0ad59d8d777f2179dd3e9c/download" -o "doxygen-1.8.11.windows.bin.zip"
232- 7z x doxygen-1.8.11.windows.bin.zip -o/c/P/doxygen -aoa -r
233- curl -L "https://data.kitware.com/api/v1/file/5bbf87ba8d777f06b91f27d6/download/grep-win.zip" -o "grep-win.zip"
234- 7z x grep-win.zip -o/c/P/grep -aoa -r
235-
236- - name : ' Build 🐍 Python 📦 package'
237- shell : cmd
238- run : |
239- cd ../../im
240- call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
241- set PATH=C:\P\grep;%PATH%
242- set CC=cl.exe
243- set CXX=cl.exe
244- C:\Python3${{ matrix.python-version-minor }}-x64\python.exe C:\P\IPP\scripts\windows_build_module_wheels.py --py-envs "3${{ matrix.python-version-minor }}-x64" --no-cleanup
245-
246- - name : Publish Python package as GitHub Artifact
247- uses : actions/upload-artifact@v1
248- with :
249- name : WindowsWheel3.${{ matrix.python-version-minor }}
250- path : ../../im/dist
251-
252- publish-python-packages-to-pypi :
253- needs :
254- - build-linux-python-packages
255- - build-macos-python-packages
256- - build-windows-python-packages
257- runs-on : ubuntu-18.04
258-
259- steps :
260- - name : Download Python Packages
261- uses : actions/download-artifact@v2
262-
263- - name : Prepare packages for upload
264- run : |
265- ls -R
266- for d in */; do
267- mv ${d}/*.whl .
268- done
269- mkdir dist
270- mv *.whl dist/
271- ls dist
6+ cxx-build-workflow :
7+ uses :
InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/[email protected] 2728
273- - name : Publish 🐍 Python 📦 package to PyPI
274- if : github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
275- uses : pypa/gh-action-pypi-publish@master
276- with :
277- user : __token__
278- password : ${{ secrets.pypi_password }}
9+ python-build-workflow :
10+ uses :
InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/[email protected] 11+ secrets :
12+ pypi_password : ${{ secrets.pypi_password }}
0 commit comments