Enhance CI pipeline
I noticed that this project doesn't seem to have automated tests in CI, so I took the liberty...
This MR implements an enhanced CI pipeline for this project include security scanning (SAST), matrix testing using conda
, and docs builds and publishing.
The test jobs are configured to inject coverage collection into the python executions and upload reports. The extra python_coverage
job overcomes a weakness in the gitlab CI coverage reporting whereby coverage percentages from multiple jobs are (mean) averaged to get the overall number, which is not correct - the correct thing is to merge the reports properly.
I rely heavily on upstream templates and extra features to add on bells and whistles to this pipeline, so I am happy to explain any and all parts of this so that the project maintainers can understand and maintain this CI configuration without needing me in the future. Or, I'm happy to simplify the pipeline so that it may be easier to maintain.