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.