Skip to content

Conversation

@jdegenstein
Copy link

I noticed that the Azure "runs" seemed slow, so I decided to experiment with porting these "runs" to GitHub Actions. In the process of getting this working I noted that GitHub runners tend to execute somewhere around 36% faster. Absent any restrictions on runtime limits maybe this wouldn't be worth it -- but I noticed that some prior jobs simply failed because they exceeded said limits. Furthermore, being able to run additional jobs in a given day may make it easier to maintain CadQuery/OCP.

There are other benefits as well, such as direct integration of these workflows into this GitHub repository and it can possibly simplify access control and management of secrets as well. GitHub Actions also has a robust ecosystem of re-usable first and 3rd party actions that make it easier to add additional functionality to the workflows.

In the end, I was able to get all of the major steps working on GitHub actions. Creating the following artifacts:

OCP_src_*
OCP_*
OCP_src_stubs_*

Other notable details:

  1. I attempted to maintain close parity in build / environment setups -- for instance, making use of micromamba.
  2. Dropped connection with CadQuery/conda-packages repository due to differences in the way GitHub Actions works vs. Azure. This may be possible to restore, but I didn't investigate deeply (yet).
  3. I have included a step to publish to conda, but was not able to fully test that step yet.
  4. Currently caching is enabled for OCP_src_* generation, but this can be easily disabled if desired. This helped make debugging later steps in the workflow faster.
  5. I kept -j 1 on the Windows compilation step to more closely reflect the workflow on Azure.
  6. OCP_src_stubs may contain additional files than it should, but I haven't checked closely. Would be easy to correct.
  7. I have attempted to keep this current with CadQuery/OCP master branch, including some of the recent changes to pybind11-stubgen and CadQuery fork.

Example jdegenstein/OCP GitHub Actions run with all artifacts attached:
https://github.com/jdegenstein/OCP/actions/runs/20280362367

@adam-urbanczyk
Copy link
Member

Thanks, it does look faster! I will try to take a look after the release is finished though - I don't want to enter another rabbit hole right now.

@jdegenstein
Copy link
Author

Sounds good, let me know if you want me to update this PR with any further changes that might occur.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants