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

Github actions CI #515

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Github actions CI #515

wants to merge 3 commits into from

Conversation

mtzguido
Copy link
Member

@mtzguido mtzguido commented Jan 8, 2025

This changes the CI to be completely cloud hosted and not rely on state in the runner machine. I think all features are retained and the .docker directory can be blasted away. Except for Slack messages, I didn't port that chunk as it will not work over multiple jobs, and it's probably better if we find something canned instead of retaining the old code. (Plus maybe move to Zulip?)

It does use a base container hosted in Dockerhub, at least for now. It'd be nicer to keep a container description in the repo and build on-demand.

Note that soon the buildmachine will stop building F* images, so the old workflow will start going through the 'standalone' path and be slower.

Example run: https://github.com/mtzguido/karamel/actions/runs/12663210092

Avoids a warning, which is treated as an error on some Sphinx versions.
This changes the CI to be completely cloud hosted and independent of the
runner machine. I think all features are retained and the .docker
directory can be blasted away.

Note that soon the buildmachine will stop building F* images, so the old
workflow will go through the 'standalone' path and be slower.
@msprotz
Copy link
Contributor

msprotz commented Jan 10, 2025

It does use a base container hosted in Dockerhub, at least for now. It'd be nicer to keep a container description in the repo and build on-demand.

Who is in charge of regenerating the base container? Is this something official that the F* team commits to maintaining? Should we switch other projects like HACL* to it?

@mtzguido
Copy link
Member Author

It does use a base container hosted in Dockerhub, at least for now. It'd be nicer to keep a container description in the repo and build on-demand.

Who is in charge of regenerating the base container? Is this something official that the F* team commits to maintaining? Should we switch other projects like HACL* to it?

Currently I'm not regenerating it at all (it's described in .docker/dev-base.Dockerfile in F*). It was written in support of check-world, and contains basically all dependencies of all the projects in it. Unsure if we should give it official status... I would try instead to phase this thing out.

I think the right thing to do is just set the environment up with specific actions instead of rolling our own container, and write a setup-fstar action. I can give that a try and replace this PR. It would also make it really easy to do a build (maybe just minimal) on several OCaml versions, if that's of interest.

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