Skip to content

Commit

Permalink
Merge pull request InsightSoftwareConsortium#4299 from tbirdso/migrat…
Browse files Browse the repository at this point in the history
…e-ci-docs

DOC: Add external module continuous integration discussion
  • Loading branch information
thewtex authored Nov 8, 2023
2 parents f73cd98 + b05ba5e commit e446eff
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 e446eff

Please sign in to comment.