Skip to content

Commit

Permalink
DOC: Add external module continuous integration discussion
Browse files Browse the repository at this point in the history
Add discussion to reference the ITKRemoteModuleBuildTestPackageAction
GitHub project for reusable CI workflows for ITK external modules.
  • Loading branch information
tbirdso committed Nov 8, 2023
1 parent 7610780 commit b05ba5e
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 0 deletions.
1 change: 1 addition & 0 deletions Documentation/docs/contributing/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,7 @@ ITK Git Cheatsheet <https://github.com/InsightSoftwareConsortium/ITK/blob/master
updating_third_party.md
data.md
upload_binary_data.md
module_workflows.md
```

[ITK Git Cheatsheet]: ./GitCheatSheet.pdf
Expand Down
41 changes: 41 additions & 0 deletions Documentation/docs/contributing/module_workflows.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# ITK External Module Continuous Integration

The Insight Software Consortium [ITKRemoteModuleBuildTestPackageAction](https://github.com/InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/blob/main/README.md) 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:

```yml
name: Build, test, package

on: [push,pull_request]

jobs:
cxx-build-workflow:
uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/[email protected]
with:
itk-cmake-options: '-DITK_BUILD_DEFAULT_MODULES:BOOL=OFF -DITKGroup_Core:BOOL=ON'

python-build-workflow:
uses: InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/.github/workflows/[email protected]
with:
test-notebooks: true
secrets:
pypi_password: ${{ secrets.pypi_password }}
```
## Further Reading
For more information visit README documentation at the [ITKRemoteModuleBuildTestPackageAction](https://github.com/InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/blob/main/README.md#itkremotemodulebuildtestpackageaction) project.

0 comments on commit b05ba5e

Please sign in to comment.