Skip to content

ci(pantheios): consolidate ci-cell into single build-and-test job - #41

Open
synesissoftware wants to merge 8 commits into
devfrom
ci-refac
Open

synesissoftware wants to merge 8 commits into
devfrom
ci-refac

Conversation

@synesissoftware

Copy link
Copy Markdown
Owner

Consolidate the five separate ci-cell jobs into a single build-and-test job per matrix cell:

  • eliminate artifact upload and download steps;
  • run unit tests, component tests, examples, and scratch tests sequentially within the same job directly after build;
  • eliminate 24 redundant runner provisions and MSYS2 reinstallations across the matrix.

Consolidate the five separate ci-cell jobs into a single build-and-test
job per matrix cell:
- eliminate artifact upload and download steps;
- run unit tests, component tests, examples, and scratch tests sequentially
  within the same job directly after build;
- eliminate 24 redundant runner provisions and MSYS2 reinstallations
  across the matrix.
Replace bespoke inlined dependency cloning and building scripts across
ci.yml and ci-cell.yml with the canonical local composite action:
- add .github/actions/install-sis-deps/action.yml copied from xTests;
- wire install-sis-deps into ci-cell.yml for STLSoft, shwild, xTests, b64;
- wire install-sis-deps into ci.yml install-smoke for STLSoft and b64;
- reference prefix as ${{ env.SIS_DEPS }} and standardise mingw toolchain;
- track selective CMake test build target refactoring in TODO.md.
Exercise Pantheios without the optional b64 dependency:
- add optional no-b64 input to ci-cell.yml and omit b64 from dependencies;
- pass -DNO_B64=ON to CMake configure when no-b64 is enabled;
- add linux-gcc-no-b64 matrix cell to exercise the test suite without b64;
- add no-b64 cell to install-smoke to verify standalone package
  consumption.
Exercise alternative STLSoft discovery routes without package config:
- add stlsoft-routes job in ci.yml covering environment and variable matrix
  permutations;
- clone STLSoft source tree directly without installing to a CMake prefix
  or providing CMAKE_PREFIX_PATH;
- verify configure output confirms the intended discovery route was
  selected;
- build Pantheios in standalone mode (-DBUILD_TESTING=OFF, -DNO_B64=ON,
  -DBUILD_EXAMPLES=ON) and execute examples via run_all_examples.sh;
- install to prefix and assert pantheios-config.cmake find_dependency()
  guard is empty/inactive for STLSoft;
- configure, build, and execute install-smoke consumer against the install
  prefix without SIS_DEPS to verify standalone consumption.
Exercise Pantheios across all optional dependency permutations:
- add --no-shwild flag to prepare_cmake.sh to forward -DNO_SHWILD to CMake;
- guard shwild package lookup in CMakeLists.txt behind if(NOT NO_SHWILD)
  and define PANTHEIOS_NO_SHWILD when omitted;
- add optional no-shwild input to ci-cell.yml and omit shwild from
  install-sis-deps dependencies;
- pass -DNO_SHWILD=ON and -DCMAKE_DISABLE_FIND_PACKAGE_shwild=TRUE to CMake
  in ci-cell.yml when no-shwild is enabled;
- add linux-gcc-no-shwild and linux-gcc-no-b64-no-shwild cells to ci.yml
  matrix to verify all optional dependency permutations;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants