Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: CI overhaul #81

Closed
2 of 5 tasks
yardasol opened this issue Oct 30, 2021 · 4 comments
Closed
2 of 5 tasks

Feature: CI overhaul #81

yardasol opened this issue Oct 30, 2021 · 4 comments

Comments

@yardasol
Copy link
Contributor

yardasol commented Oct 30, 2021

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
  • Conda environment setup and caching
  • 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
Copy link
Contributor Author

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

Some helpfil links

@munkm
Copy link
Member

munkm commented Jan 10, 2022

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

@yardasol
Copy link
Contributor Author

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
Copy link
Contributor Author

yardasol commented May 28, 2024

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)

@github-project-automation github-project-automation bot moved this to completed in Meta Aug 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment