ITK External Module Continuous Integration¶
The Insight Software Consortium ITKRemoteModuleBuildTestPackageAction project provides reusable GitHub Actions workflows to support ITK module development.
Reusable ITK workflows provide the following features across Linux, macOS, and Windows platforms:
Automated C++ build validation
Automated C++ testing
Unit testing
Style enforcement
Automated Python build validation
Automated Python Jupyter Notebook testing
Automated Python packaging and uploads
ITK reusable workflows support most ITK external modules and provide CI boilerplate to minimize the development effort required of collaborators.
Example Usage¶
It is easy to add ITK reusable workflow integration to an external module. In a file workflow.yml
in the .github/workflows
directory of your project, add the following specification:
name: Build, test, package
on: [push,pull_request]
jobs:
cxx-build-workflow:
uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/build-test-cxx.yml@v5.3.0
with:
itk-cmake-options: '-DITK_BUILD_DEFAULT_MODULES:BOOL=OFF -DITKGroup_Core:BOOL=ON'
python-build-workflow:
uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/build-test-package-python.yml@v5.3.0
with:
test-notebooks: true
secrets:
pypi_password: ${{ secrets.pypi_password }}
Further Reading¶
For more information visit README documentation at the ITKRemoteModuleBuildTestPackageAction project.