Roadmap for pyansys/actions: looking for a common CI/CD strategy #141
Replies: 6 comments 5 replies
-
Pinging @pyansys/pyansys-core for visibility/feedback |
Beta Was this translation helpful? Give feedback.
-
I am becoming quite an advocate of |
Beta Was this translation helpful? Give feedback.
-
I would say that for the doc to be deployed we need to be sure that the tests are passing. Otherwise we are deploying content for wrong source code introducing known issues and defects. |
Beta Was this translation helpful? Give feedback.
-
PyGeometry pipelines are more complex than that... and there is always a reason. The key concept is setting up dependent stages in such a way that the workflow is easy to follow and that the dependencies make sense:
Path A
Path B
Final Path
MiscI hope I made myself clear. One of the key concepts here, as I already mentioned are "dependencies". Dependent jobs allow to control the workflow and avoid running useless stages. For example, if the code style checks fail (which only take seconds to run) the workflow stops. For public repos it might not be an issue, but for private/internal repos, whatever time we spent running our workflows on GitHub runners, we are charged for it. So we should try to avoid useless resource consumption. Even if it's only for environmental reasons, it's more than enough to set up dependencies on your workflow... |
Beta Was this translation helpful? Give feedback.
-
If it difficult to impose an action on all repos, less to impose a whole CICD workflow. It is going to be difficult. We can enforce "stages" (doc style, tests, etc) and their APIs ("doc dev deploy" will expect a zipped file named |
Beta Was this translation helpful? Give feedback.
-
I probably wasn't clear with my message. I wasn't trying to impose PyGeometry's stages on the rest of the projects. I was explaining the reasons behind having a dependent-like workflow, and what the stages should look like. I understand that every project will have its own "pecularities". But in general, they should look alike. However, I do think that setting up dependencies is a "must" in terms of billable time... It's the only way to control costs. |
Beta Was this translation helpful? Give feedback.
-
📝 Background
As pyansys/actions get adopted by projects, more features are requested. For example:
Projects may be different but they operate over some common points: server installation, testing, documentation, and artifacts publishing.
⚙️ A common strategy for our CI/CD pipelines
With all previous information, I would like to start the discussion about a common strategy for our CI/CD pipelines. By strategy I mean:
Should we encourage the usage of a single workflow YML file or multiple ones?
How should this workflow file be named? Examples:
ci_cd.yml
,ci.yml
,main.yml
...How do we structure our CI/CD pipelines? Example:
How many servers should we test against to? Which is the optimal way of testing this? Cartessian product of
n_servers
*n_python_versions
? Too much CI/CD consumption?📌 Mission
All previous questions define the roadmap of pyansys/actions. The transition to the agreed roadmap needs to be smooth and solid.
Projects that are not compliant with pyansys/actions should not be able to use the latest features.
Beta Was this translation helpful? Give feedback.
All reactions