-
Notifications
You must be signed in to change notification settings - Fork 80
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
Prefer an alcotest extension mechanism for CIs #395
Comments
The following are my personal views on the subject. In the FOSS ecosystem of OCaml, I haven't seen other CIs than GitHub Actions, ocaml-ci, opam-repo-ci (checking submissions to opam-repository), opam-health-check (periodic checks of the opam-repository), Gitlab CI, App Veyor. With a quick search, I've found only GitHub Actions offering some integration by parsing the logs, namely Workflow commands for GitHub Actions. Nothing related for Gitlab CI, and Jenkins seems not to have a dedicated syntax for reports, but rather is able to parse the (standardized and not) output of various tools. It seems that AppVeyor users can upload tests in the jUnit format to a predefined endpoint. IMO, the most simple CI integration would be to display the test errors and retain build logs (people might want to extract them, or ssh into the CI…). That's given by the Some (most?) CI systems define the To address your first points:
I think extensions are an overkill. Besides, how would Alcotest as-is detect the correct extension to install? If the burden falls on the user, that's also a problem for zero-config CIs. (oh, my bad, I'll look at the extensions in bechamel). IMO, if you're feeling uneasy about all this, we can keep detecting the … Months later I now recall that I went this way because it was much, much simpler than adding a printer for a normalized test format, such as jUnit or (better) Test Anything Protocol (tap) that can be easily consumed by CIs or CI plugins. You could say I was targeting the poor man's CI integration. |
Thank you for all this explanation (with a very good overview). What bothers me most is the specificity of all these CIs that we have to maintain in Alcotest. This means that someone (you?) has to look after and maintain the details over the long term. This maintainance is also in full knowledge of what is happening in In short, these aren't very interesting questions and they add extra work: something that neither you nor I have time to do. The idea of extensions doesn't seem so bad to me if you think carefully about its integration: it will inevitably require the user to add a dependency for the CI but that's not a big deal. As far as zero-configs CI is concerned, it's not so "zero-config" if you have to modify Alcotest to get a nice output ;) . Finally, the CI environment variable seems to me to be the best compromise. EDIT: Don't consider your initial PR to be blocked by this issue, as there can be several tempolarities in Alcotest management. |
At present, alcotest recognises CIs because the maintainers want it to and adds a non-exhaustive, fixed list of CIs to be recognised. This poses several problems:
It is certainly more ambitious but perhaps more interesting to decouple CI support from the alcotest core. We could imagine a bechamel-style extension mechanism in order to:
The text was updated successfully, but these errors were encountered: