saltproc icon indicating copy to clipboard operation
saltproc copied to clipboard

Feature: CI overhaul

Open yardasol opened this issue 3 years ago • 3 comments

Background and motivation The current CI workflow is fine for now, but in the future if we want to do anything like automated deployments of online documentation to the saltproc website or run OpenMC integration tests, we will need to heavily edit how our workflow structure and implementation

Description of idea I've identified the following areas that we could improve and add to our CI/CD workflow:

  • [ ] Matrix testing of multiple python versions, operating systems
  • [x] Conda environment setup and caching
  • [x] Automated building and deployment of docs
  • [ ] flake8 linting
  • [ ] OpenMC integration testing

Implementation details I have identified the following resources that would be useful in completing the itemized goals:

Potential snags This requires some pretty decent working knowledge of using GitHub actions, which could be a barrier to doing this quickly as its still a relativley new tool.

yardasol avatar Oct 30 '21 01:10 yardasol

Doing this with mamba/conda is kinda messy. I want to try to do this with pip.

Some helpfil links

yardasol avatar Jan 10 '22 22:01 yardasol

Were you working on a particular item in this list that got messy with mamba and/or conda? What happened?

munkm avatar Jan 10 '22 22:01 munkm

It has to do with the way I want to implement workflows. I want different workflows for

  • Installing the dependencies and building saltproc (runs on push to a PR; only need to do this once every week, unless there's an update in a package we want)
  • Testing saltproc (runs on push to a PR)
  • building and deploying the docs (runs on PR merge into master)

I only want to have to install dependencies once, so that I can use them to build saltproc quickly for doing the other two workflows. This means we should cache the dependencies. It seems there are few different ways to do caching with conda, and they all require more configuration of the workflow file. For simplicity (and my sanity) I want to use pip to abstract out the details of caching with conda, and if I want to come back to it later once things are working the way I want them to.

It's possible I'm thinking about this all wrong though.

yardasol avatar Jan 10 '22 22:01 yardasol

I think this can be marked as completed. I completed most of the features described in this issue in PR #95. I do not think it is reasonable to try to run OpenMC integration tests here. I do think that flake8 linting and matrix testing with multiple versions of python would be useful, so I'll make separate issues for each of those (#206 and #207)

yardasol avatar May 28 '24 16:05 yardasol