ITK
ITK copied to clipboard
Document How to Contribute Hosted GitHub Runners for ITK CI Testing
Description
ITK’s continuous integration (CI) relies on GitHub-hosted runners and Azure Pipeline runners for automated building and testing. However, as the platform landscape evolves, the community may need to contribute additional hosted runners—especially for architectures or OS versions or configurations not available through GitHub’s default pool.
Currently, there is no centralized ITK documentation guiding contributors on how to:
- Set up and register self-hosted runners for ITK or ITK external modules
- Offer runners for specific platforms (e.g., legacy Intel macOS, ARM64 macOS, specialized Linux environments)
- Integrate contributed runners into ITK’s CI workflows
This lack of guidance may limit community participation and reduce the diversity and reliability of ITK’s cross-platform testing.
Proposed Action
Add a new section to the ITK contributing guide that covers:
- What is a self-hosted runner? Briefly describe the concept and benefits (e.g., custom hardware, legacy support, increased capacity)^3.
- Requirements and Security Outline minimum requirements and security considerations for hosting a runner^3.
- Step-by-step Setup Instructions
- How to add a self-hosted runner to a repository or organization^6
- How to configure the runner for common ITK workflows (e.g., CMake, Python, Docker support if needed)
- How to keep the runner updated and secure
- Integration with ITK CI
- How to notify maintainers and request integration of the runner into ITK’s CI matrix
- How to test and monitor contributed runners
- How to decommission a runner if needed
- Best Practices and Troubleshooting
- Tips for reliability, maintenance, and troubleshooting
- Example use cases: supporting legacy macOS/Intel, ARM64, or resource-intensive builds
- References
Motivation
- Enable the community to fill CI coverage gaps when GitHub-hosted runners are unavailable or insufficient.
- Support legacy platforms and specialized environments (e.g., Intel macOS, Apple Silicon, GPU builds).
- Improve the resilience and scalability of ITK’s CI infrastructure.
- Lower the barrier for module developers to ensure robust, cross-platform support^5.
Related Resources
- GitHub Docs: About self-hosted runners
- GitHub Docs: Adding self-hosted runners
- ITKRemoteModuleBuildTestPackageAction documentation^5
- ITK Contributing Guide
Request for Feedback
- What additional information or templates would help contributors set up and maintain runners?
- Should we recommend a preferred communication channel for offering runners (e.g., issue, pull request, discourse)?
- Are there security or maintenance policies the community should adopt for contributed runners?
CC @seanm