argumentcomputer / argumentcomputer/sphinx
Running Docker tests in CI
- Dominant language
- Rust
- Stars
- 80
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
In #99 we bring in tooling for testing of recursion under docker, without making it default. This issue is about what it would take to make it default:
The default behavior is the activation of the `native` feature in `gnark-ffi/Cargo.toml`, which forces those recursion tests to run on the local machine (rather than in Docker).
The Docker behavior not only is non-default, but doesn't work.
- the Docker file is [in the root directory](https://github.com/lurk-lab/sphinx/blob/bb00d3e1441d769edc8f7a8f717885502e177233/Dockerfile.gnark-ffi)
- the image retrieval behavior is to use an environment variable (`SPHINX_GNARK_IMAGE`) to retrieve the Docker image, and default to an upstream-controlled registry if that variable is unset:
https://github.com/lurk-lab/sphinx/blob/bb00d3e1441d769edc8f7a8f717885502e177233/recursion/gnark-ffi/src/ffi/docker.rs
We would like to have the following outcomes (only required once #99 is merged, of course):
- when a PR that *does not* modify the Dockerfile is tested, those tests should occur by retrieving the image from a Lurk-Lab registry,
- when a PR *does* modify the Dockerfile is tested, those tests should rebuild the Docker image from file before running, tag it, and then use the environment variable to select that image (by tag) for running tests,
- when a PR that modifies the Dockerfile is merged, it should trigger a re-publishing of the Docker image in a Lurk Lab registry ( #99 adds a workflow to that effect: https://github.com/lurk-lab/sphinx/blob/bb00d3e1441d769edc8f7a8f717885502e177233/.github/workflows/docker-publish-gnark.yml ),
Contributor guide
Assessment
This issue has not been assessed yet.