InsightSoftwareConsortium / ITKRemoteModuleBuildTestPackageAction

A composite GitHub Action to build, test, and package, ITK remote modules
Apache License 2.0
3 stars 6 forks source link

ENH: Add ITK C++ and Python CI Reusable Workflows #3

Closed tbirdso closed 2 years ago

tbirdso commented 2 years ago

Migrate ITK C++ and Python Github CI procedures into reusable workflows that can be called and run by ITK external modules.

Partially addresses https://github.com/InsightSoftwareConsortium/ITKModuleTemplate/issues/131.

Caveats:

  1. Reusable workflows are only designed and tested for simple remote modules with no extra build steps.
  2. Passing custom CMake arguments to a remote module build is feasible but untested. Custom CMake arguments should be considered not supported for this first iteration.
  3. Remote modules depending on other remote modules or libraries are not currently supported. Modules with extra dependencies are responsible for implementing their own CI pipelines. The workflows here have been forked from ITKModuleTemplate and can in turn be forked as a starting point for a custom pipeline in a remote module repository.
tbirdso commented 2 years ago

Observed passing CI on ITKSplitComponents: https://github.com/InsightSoftwareConsortium/ITKSplitComponents/actions/runs/3207298168/jobs/5242405654

Changes have been squashed. Ready for review.

EDIT: It appears I introduced a yml error somewhere during my squash... will continue to investigate.

EDIT2: Fixed and squashed a missing steps: line mistakenly removed with testing comments. Pipeline is now parsed correctly again.

tbirdso commented 2 years ago

Thanks @dzenanz . Note that development tests in ITKSplitComponents using these workflows are passing: https://github.com/InsightSoftwareConsortium/ITKSplitComponents/pull/63

tbirdso commented 2 years ago

Going ahead and merging so that reusable workflows can be tagged and referenced in remote module CI. Additional feedback can be added as discussions here or in the issue tracker.