-
Notifications
You must be signed in to change notification settings - Fork 409
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
Add CI for MSVC using dkml-workflows #6540
Conversation
b2bad8c
to
9697085
Compare
Would it be possible to remove the stuff that doesn't pertain to msvc? |
Is "the stuff" talking about the gh-darwin/gh-linux folders? Sure, we can remove files that were generated during dune promote with a Makefile rule. Is that fine? |
Yes, that is what I meant. Removing them in a makefile rule is fine |
da627ea
to
6658c94
Compare
Done. And I'd like to see how long the MSVC builds take now that they've had a chance to cache some parts. |
@nojb can you review please? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have to confess that I find the amount of generated code a bit scary, but the results are good: the CI jobs (one for 32-bit and one for 64-bit) each take ~10m to complete once the cache is full.
The generated code itself is hard to review, but here are some general questions:
- What is the version of MSVC targeted?
- What is the workflow to update the generated files?
make update-dkml
? - What is the required environment to execute the
desktop-ci-*
targets in the mainMakefile
?
For the record, could we enumerate somewhere which files are generated and which files are supposed to be maintained by hand? In particular, build-test.sh
is hand-written, right?
I am approving based on the general idea that this is an strict improvement on the present situation (no MSVC testing at all).
NOTE: Everything below is now in a FAQ in a README in the PR.
There is no "target" per se. The CI machine (or your developer machine) is queried for all MSVC versions, and any versions that I know to be compatible with OCaml are used. The precise definition is The compatible versions today are: Visual Studio 2019 with a) Windows 10 SDK (10.0.18362.0) and b) MSVC v142 - VS 2019 C++ x64/x86 build tools (v14.25) or (v14.26). Machine.psm1 has notes why other MSVC 2019 versions are not compatible with OCaml; very much beyond the scope of this PR though! More importantly, just running it will show the user what is on their system and what Visual Studio components they are missing (if any).
Yes. Obviously assuming there is an update available from
Same as first answer.
To make it easy I'll put a README.md in I'll add in that README a link to https://github.com/diskuv/dkml-workflows#readme (setup-dkml) which a) describes what is hand-generated and what goes into it, and b) includes auto-tested examples and c) implicitly defines a place for bug reports. |
Implements ocaml#6535 Signed-off-by: Jonah Beckford <[email protected]>
Signed-off-by: jonahbeckford <[email protected]>
Co-authored-by: Antonio Nuno Monteiro <[email protected]> Signed-off-by: jonahbeckford <[email protected]>
Signed-off-by: Jonah Beckford <[email protected]>
Signed-off-by: Jonah Beckford <[email protected]>
6658c94
to
363d8d9
Compare
Thanks, that's good enough for me! I sync'ed your PR with |
Signed-off-by: Jonah Beckford <[email protected]> Co-authored-by: Antonio Nuno Monteiro <[email protected]> Co-authored-by: Nicolás Ojeda Bär <[email protected]>
* main: (54 commits) doc: how we write `to_dyn` and `equal` (ocaml#6621) test(cache): test output of man pages test: dune utop for (subdir ..) (ocaml#6629) refactor: improve style of utop rules (ocaml#6628) test: depend on utop (ocaml#6627) refactor(stdune): Add Appendable_list.cons (ocaml#6624) doc: tighten wording in README.md test: add a repro case for ocaml#6607 (ocaml#6612) doc: cleanup status badges in README.md (ocaml#6618) doc(README): rewrap paragraphs and cleanup links coq: more resilient config query fix: link time code gen (ocaml#6606) fix(melange): run melc ppx with merlin (ocaml#6476) feature(melange): add compile_flags (ocaml#6569) refactor: move `modules: Modules.t` from `Dune_package.Lib` to `Lib_info` (ocaml#6605) Set CLICOLOR_FORCE=0 (ocaml#6608) fix: declare deps for ccomp detection (ocaml#6610) refactor: assume Cmdliner.Arg.conv is abstract (ocaml#6609) refactor: gen_rules pattern matching (ocaml#6604) Add CI for MSVC using dkml-workflows (ocaml#6540) ...
Signed-off-by: Jonah Beckford <[email protected]> Co-authored-by: Antonio Nuno Monteiro <[email protected]> Co-authored-by: Nicolás Ojeda Bär <[email protected]>
Signed-off-by: Jonah Beckford <[email protected]> Co-authored-by: Antonio Nuno Monteiro <[email protected]> Co-authored-by: Nicolás Ojeda Bär <[email protected]> Signed-off-by: Etienne Millon <[email protected]>
Signed-off-by: Jonah Beckford <[email protected]> Co-authored-by: Antonio Nuno Monteiro <[email protected]> Co-authored-by: Nicolás Ojeda Bär <[email protected]> Signed-off-by: Etienne Millon <[email protected]> Signed-off-by: Jonah Beckford <[email protected]> Signed-off-by: Etienne Millon <[email protected]> Co-authored-by: jonahbeckford <[email protected]> Co-authored-by: Antonio Nuno Monteiro <[email protected]> Co-authored-by: Nicolás Ojeda Bär <[email protected]>
Implements #6535