forked from thewtex/ITKPhaseSymmetry
-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #43 from thewtex/all-repos_autofix_ci-itk-5.4.0-se…
…cret-syntax ENH: Upgrade CI for ITK 5.4.0
- Loading branch information
Showing
3 changed files
with
118 additions
and
327 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,278 +1,15 @@ | ||
|
||
name: Build, test, package | ||
|
||
on: [push,pull_request] | ||
|
||
jobs: | ||
build-test-cxx: | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
max-parallel: 3 | ||
matrix: | ||
os: [ubuntu-18.04, windows-2019, macos-10.15] | ||
include: | ||
- os: ubuntu-18.04 | ||
c-compiler: "gcc" | ||
cxx-compiler: "g++" | ||
itk-git-tag: "d6acfd26bfcdec606d605beb1301bddfb17c05a6" | ||
cmake-build-type: "MinSizeRel" | ||
- os: windows-2019 | ||
c-compiler: "cl.exe" | ||
cxx-compiler: "cl.exe" | ||
itk-git-tag: "d6acfd26bfcdec606d605beb1301bddfb17c05a6" | ||
cmake-build-type: "Release" | ||
- os: macos-10.15 | ||
c-compiler: "clang" | ||
cxx-compiler: "clang++" | ||
itk-git-tag: "d6acfd26bfcdec606d605beb1301bddfb17c05a6" | ||
cmake-build-type: "MinSizeRel" | ||
|
||
steps: | ||
- uses: actions/checkout@v1 | ||
|
||
- name: Set up Python 3.7 | ||
uses: actions/setup-python@v1 | ||
with: | ||
python-version: 3.7 | ||
|
||
- name: Install build dependencies | ||
run: | | ||
python -m pip install --upgrade pip | ||
python -m pip install ninja | ||
- name: Get specific version of CMake, Ninja | ||
uses: lukka/[email protected] | ||
|
||
- name: Download ITK | ||
run: | | ||
cd .. | ||
git clone https://github.com/InsightSoftwareConsortium/ITK.git | ||
cd ITK | ||
git checkout ${{ matrix.itk-git-tag }} | ||
- name: Build ITK | ||
if: matrix.os != 'windows-2019' | ||
run: | | ||
cd .. | ||
mkdir ITK-build | ||
cd ITK-build | ||
cmake -DCMAKE_C_COMPILER:FILEPATH="${{ matrix.c-compiler }}" -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_CXX_COMPILER="${{ matrix.cxx-compiler }}" -DCMAKE_BUILD_TYPE:STRING=${{ matrix.cmake-build-type }} -DBUILD_TESTING:BOOL=OFF -GNinja ../ITK | ||
ninja | ||
- name: Build ITK | ||
if: matrix.os == 'windows-2019' | ||
run: | | ||
cd .. | ||
mkdir ITK-build | ||
cd ITK-build | ||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | ||
cmake -DCMAKE_C_COMPILER:FILEPATH="${{ matrix.c-compiler }}" -DBUILD_SHARED_LIBS:BOOL=OFF -DCMAKE_CXX_COMPILER="${{ matrix.cxx-compiler }}" -DCMAKE_BUILD_TYPE:STRING=${{ matrix.cmake-build-type }} -DBUILD_TESTING:BOOL=OFF -GNinja ../ITK | ||
ninja | ||
shell: cmd | ||
|
||
- name: Fetch CTest driver script | ||
run: | | ||
curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITK/dashboard/itk_common.cmake -O | ||
- name: Configure CTest script | ||
shell: bash | ||
run: | | ||
operating_system="${{ matrix.os }}" | ||
cat > dashboard.cmake << EOF | ||
set(CTEST_SITE "GitHubActions") | ||
file(TO_CMAKE_PATH "\$ENV{GITHUB_WORKSPACE}/.." CTEST_DASHBOARD_ROOT) | ||
file(TO_CMAKE_PATH "\$ENV{GITHUB_WORKSPACE}/" CTEST_SOURCE_DIRECTORY) | ||
file(TO_CMAKE_PATH "\$ENV{GITHUB_WORKSPACE}/../build" CTEST_BINARY_DIRECTORY) | ||
set(dashboard_source_name "${GITHUB_REPOSITORY}") | ||
if(ENV{GITHUB_REF} MATCHES "master") | ||
set(branch "-master") | ||
set(dashboard_model "Continuous") | ||
else() | ||
set(branch "-${GITHUB_REF}") | ||
set(dashboard_model "Experimental") | ||
endif() | ||
set(CTEST_BUILD_NAME "${GITHUB_REPOSITORY}-${operating_system}-\${branch}") | ||
set(CTEST_UPDATE_VERSION_ONLY 1) | ||
set(CTEST_TEST_ARGS \${CTEST_TEST_ARGS} PARALLEL_LEVEL \${PARALLEL_LEVEL}) | ||
set(CTEST_BUILD_CONFIGURATION "Release") | ||
set(CTEST_CMAKE_GENERATOR "Ninja") | ||
set(CTEST_CUSTOM_WARNING_EXCEPTION | ||
\${CTEST_CUSTOM_WARNING_EXCEPTION} | ||
# macOS Azure VM Warning | ||
"ld: warning: text-based stub file" | ||
) | ||
set(dashboard_no_clean 1) | ||
set(ENV{CC} ${{ matrix.c-compiler }}) | ||
set(ENV{CXX} ${{ matrix.cxx-compiler }}) | ||
if(WIN32) | ||
set(ENV{PATH} "\${CTEST_DASHBOARD_ROOT}/ITK-build/bin;\$ENV{PATH}") | ||
endif() | ||
set(dashboard_cache " | ||
ITK_DIR:PATH=\${CTEST_DASHBOARD_ROOT}/ITK-build | ||
BUILD_TESTING:BOOL=ON | ||
") | ||
string(TIMESTAMP build_date "%Y-%m-%d") | ||
message("CDash Build Identifier: \${build_date} \${CTEST_BUILD_NAME}") | ||
message("CTEST_SITE = \${CTEST_SITE}") | ||
include(\${CTEST_SCRIPT_DIRECTORY}/itk_common.cmake) | ||
EOF | ||
cat dashboard.cmake | ||
- name: Build and test | ||
if: matrix.os != 'windows-2019' | ||
run: | | ||
ctest --output-on-failure -j 2 -V -S dashboard.cmake | ||
- name: Build and test | ||
if: matrix.os == 'windows-2019' | ||
run: | | ||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | ||
ctest --output-on-failure -j 2 -V -S dashboard.cmake | ||
shell: cmd | ||
|
||
build-linux-python-packages: | ||
runs-on: ubuntu-18.04 | ||
strategy: | ||
max-parallel: 2 | ||
matrix: | ||
python-version: [37, 38, 39, 310] | ||
include: | ||
- itk-python-git-tag: "v5.3rc04" | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: 'Free up disk space' | ||
run: | | ||
# Workaround for https://github.com/actions/virtual-environments/issues/709 | ||
df -h | ||
sudo apt-get clean | ||
sudo rm -rf "/usr/local/share/boost" | ||
sudo rm -rf "$AGENT_TOOLSDIRECTORY" | ||
df -h | ||
- name: 'Fetch build script' | ||
run: | | ||
curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/dockcross-manylinux-download-cache-and-build-module-wheels.sh -O | ||
chmod u+x dockcross-manylinux-download-cache-and-build-module-wheels.sh | ||
- name: 'Build 🐍 Python 📦 package' | ||
run: | | ||
export ITK_PACKAGE_VERSION=${{ matrix.itk-python-git-tag }} | ||
./dockcross-manylinux-download-cache-and-build-module-wheels.sh cp${{ matrix.python-version }} | ||
- name: Publish Python package as GitHub Artifact | ||
uses: actions/upload-artifact@v1 | ||
with: | ||
name: LinuxWheel${{ matrix.python-version }} | ||
path: dist | ||
|
||
build-macos-python-packages: | ||
runs-on: macos-10.15 | ||
strategy: | ||
max-parallel: 2 | ||
matrix: | ||
include: | ||
- itk-python-git-tag: "v5.3rc04" | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: 'Specific XCode version' | ||
run: | | ||
sudo xcode-select -s "/Applications/Xcode_11.7.app" | ||
- name: Get specific version of CMake, Ninja | ||
uses: lukka/[email protected] | ||
|
||
- name: 'Fetch build script' | ||
run: | | ||
curl -L https://raw.githubusercontent.com/InsightSoftwareConsortium/ITKPythonPackage/master/scripts/macpython-download-cache-and-build-module-wheels.sh -O | ||
chmod u+x macpython-download-cache-and-build-module-wheels.sh | ||
- name: 'Build 🐍 Python 📦 package' | ||
run: | | ||
export ITK_PACKAGE_VERSION=${{ matrix.itk-python-git-tag }} | ||
export MACOSX_DEPLOYMENT_TARGET=10.9 | ||
./macpython-download-cache-and-build-module-wheels.sh | ||
- name: Publish Python package as GitHub Artifact | ||
uses: actions/upload-artifact@v1 | ||
with: | ||
name: MacOSWheels | ||
path: dist | ||
|
||
build-windows-python-packages: | ||
runs-on: windows-2019 | ||
strategy: | ||
max-parallel: 2 | ||
matrix: | ||
python-version-minor: [7, 8, 9, 10] | ||
include: | ||
- itk-python-git-tag: "v5.3rc04" | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
with: | ||
path: "im" | ||
|
||
- name: 'Install Python' | ||
run: | | ||
$pythonArch = "64" | ||
$pythonVersion = "3.${{ matrix.python-version-minor }}" | ||
iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/scikit-build/scikit-ci-addons/master/windows/install-python.ps1')) | ||
- name: 'Fetch build dependencies' | ||
shell: bash | ||
run: | | ||
mv im ../../ | ||
cd ../../im | ||
curl -L "https://github.com/InsightSoftwareConsortium/ITKPythonBuilds/releases/download/${{ matrix.itk-python-git-tag }}/ITKPythonBuilds-windows.zip" -o "ITKPythonBuilds-windows.zip" | ||
7z x ITKPythonBuilds-windows.zip -o/c/P -aoa -r | ||
curl -L "https://data.kitware.com/api/v1/file/5c0ad59d8d777f2179dd3e9c/download" -o "doxygen-1.8.11.windows.bin.zip" | ||
7z x doxygen-1.8.11.windows.bin.zip -o/c/P/doxygen -aoa -r | ||
curl -L "https://data.kitware.com/api/v1/file/5bbf87ba8d777f06b91f27d6/download/grep-win.zip" -o "grep-win.zip" | ||
7z x grep-win.zip -o/c/P/grep -aoa -r | ||
- name: 'Build 🐍 Python 📦 package' | ||
shell: cmd | ||
run: | | ||
cd ../../im | ||
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" | ||
set PATH=C:\P\grep;%PATH% | ||
set CC=cl.exe | ||
set CXX=cl.exe | ||
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" | ||
- name: Publish Python package as GitHub Artifact | ||
uses: actions/upload-artifact@v1 | ||
with: | ||
name: WindowsWheel3.${{ matrix.python-version-minor }} | ||
path: ../../im/dist | ||
|
||
publish-python-packages-to-pypi: | ||
needs: | ||
- build-linux-python-packages | ||
- build-macos-python-packages | ||
- build-windows-python-packages | ||
runs-on: ubuntu-18.04 | ||
|
||
steps: | ||
- name: Download Python Packages | ||
uses: actions/download-artifact@v2 | ||
|
||
- name: Prepare packages for upload | ||
run: | | ||
ls -R | ||
for d in */; do | ||
mv ${d}/*.whl . | ||
done | ||
mkdir dist | ||
mv *.whl dist/ | ||
ls dist | ||
- name: Publish 🐍 Python 📦 package to PyPI | ||
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') | ||
uses: pypa/gh-action-pypi-publish@master | ||
with: | ||
user: __token__ | ||
password: ${{ secrets.pypi_password }} | ||
cxx-build-workflow: | ||
uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/[email protected] | ||
|
||
python-build-workflow: | ||
uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/[email protected] | ||
with: | ||
test-notebooks: false | ||
secrets: | ||
pypi_password: ${{ secrets.pypi_password }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
[build-system] | ||
requires = ["scikit-build-core"] | ||
build-backend = "scikit_build_core.build" | ||
|
||
[project] | ||
name = "itk-phasesymmetry" | ||
version = "1.0.5" | ||
description = "itk-phasesymmetry provides multi-scale steerable filters " | ||
readme = "README.rst" | ||
license = {file = "LICENSE"} | ||
authors = [ | ||
{ name = "Charles Hatt", email = "[email protected]" }, | ||
] | ||
keywords = [ | ||
"itk", | ||
] | ||
classifiers = [ | ||
"Development Status :: 4 - Beta", | ||
"Intended Audience :: Developers", | ||
"Intended Audience :: Education", | ||
"Intended Audience :: Healthcare Industry", | ||
"Intended Audience :: Science/Research", | ||
"License :: OSI Approved :: Apache Software License", | ||
"Operating System :: Android", | ||
"Operating System :: MacOS", | ||
"Operating System :: Microsoft :: Windows", | ||
"Operating System :: POSIX", | ||
"Operating System :: Unix", | ||
"Programming Language :: C++", | ||
"Programming Language :: Python", | ||
"Topic :: Scientific/Engineering", | ||
"Topic :: Scientific/Engineering :: Information Analysis", | ||
"Topic :: Scientific/Engineering :: Medical Science Apps.", | ||
"Topic :: Software Development :: Libraries", | ||
] | ||
requires-python = ">=3.8" | ||
dependencies = [ | ||
"itk == 5.4.*", | ||
] | ||
|
||
[project.urls] | ||
Download = "https://github.com/KitwareMedical/ITKPhaseSymmetry" | ||
Homepage = "https://github.com/KitwareMedical/ITKPhaseSymmetry" | ||
|
||
[tool.scikit-build] | ||
# The versions of CMake to allow. If CMake is not present on the system or does | ||
# not pass this specifier, it will be downloaded via PyPI if possible. An empty | ||
# string will disable this check. | ||
cmake.version = ">=3.16.3" | ||
|
||
# A list of args to pass to CMake when configuring the project. Setting this in | ||
# config or envvar will override toml. See also ``cmake.define``. | ||
cmake.args = [] | ||
|
||
# A table of defines to pass to CMake when configuring the project. Additive. | ||
cmake.define = {} | ||
|
||
# Verbose printout when building. | ||
cmake.verbose = true | ||
|
||
# The build type to use when building the project. Valid options are: "Debug", | ||
# "Release", "RelWithDebInfo", "MinSizeRel", "", etc. | ||
cmake.build-type = "Release" | ||
|
||
# The source directory to use when building the project. Currently only affects | ||
# the native builder (not the setuptools plugin). | ||
cmake.source-dir = "." | ||
|
||
# The versions of Ninja to allow. If Ninja is not present on the system or does | ||
# not pass this specifier, it will be downloaded via PyPI if possible. An empty | ||
# string will disable this check. | ||
ninja.version = ">=1.11" | ||
|
||
# The logging level to display, "DEBUG", "INFO", "WARNING", and "ERROR" are | ||
# possible options. | ||
logging.level = "INFO" | ||
|
||
# Files to include in the SDist even if they are skipped by default. Supports | ||
# gitignore syntax. | ||
sdist.include = [] | ||
|
||
# Files to exclude from the SDist even if they are included by default. Supports | ||
# gitignore syntax. | ||
sdist.exclude = [] | ||
|
||
# A list of license files to include in the wheel. Supports glob patterns. | ||
wheel.license-files = ["LICEN[CS]E*",] | ||
|
||
# Target the platlib or the purelib. If not set, the default is to target the | ||
# platlib if wheel.cmake is true, and the purelib otherwise. | ||
wheel.platlib = "false" | ||
|
||
# If CMake is less than this value, backport a copy of FindPython. Set to 0 | ||
# disable this, or the empty string. | ||
backport.find-python = "3.26.1" | ||
|
||
# Select the editable mode to use. Can be "redirect" (default) or "inplace". | ||
editable.mode = "redirect" | ||
|
||
# Rebuild the project when the package is imported. The build-directory must be | ||
# set. | ||
editable.rebuild = false | ||
|
||
# If set, this will provide a method for scikit-build-core backward compatibility. | ||
minimum-version = "0.8.2" | ||
|
||
# The build directory. Defaults to a temporary directory, but can be set. | ||
build-dir = "build/{wheel_tag}" |
Oops, something went wrong.