-
Notifications
You must be signed in to change notification settings - Fork 21
Windows #90
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
Windows #90
Conversation
43b043b to
d34095b
Compare
e60fbf0 to
d18cc8d
Compare
6c24817 to
09c6cdb
Compare
aa7b7b3 to
d45fb3b
Compare
fbdc2aa to
8f43838
Compare
|
All the prerequisites for this are now merged. |
26a3e05 to
752ceee
Compare
|
CI is failing. Probably the Dockerfile needs updating. |
|
Winget Pr merged into dockerfile |
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.
Thanks, this is looking very good!
I rebased it on master to get the new diff test. There are two changes to the Linux builds that are probably accidental. I'm not qualified to say whether the Windows builds work.
Things to do before merging:
- Undo the changes to the Linux builds.
- @MisterDA mentioned that ocaml-dockerfile should be updated to remove the
[TMP]bit in the last commit).
src/pipeline.ml
Outdated
| cmd "bash" @@ | ||
| maybe_install_secondary_compiler run os_family switch @@ | ||
| entrypoint_exec (Option.to_list personality @ opam_exec) @@ | ||
| match os_family with `Linux | `Cygwin -> cmd "bash" | `Windows -> cmd_exec ["cmd.exe"] @@ |
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.
| match os_family with `Linux | `Cygwin -> cmd "bash" | `Windows -> cmd_exec ["cmd.exe"] @@ | |
| (match os_family with `Linux | `Cygwin -> cmd "bash" | `Windows -> cmd_exec ["cmd.exe"]) @@ |
Otherwise it's doing something different ;-)
| RUN opam install -y opam-depext | ||
| RUN opam pin add -k version ocaml-base-compiler 4.02.3 |
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.
Was this change to the order of the commands intentional?
If the docker build uses `--squash`, it'll stop with: ``` error squashing image: error registering layer: re-exec error: exit status 1: output: hcsshim::ImportLayer - failed failed in Win32: The system cannot find the path specified. (0x3) ```
Error was:
base_images: internal error, uncaught exception:
Unix.Unix_error(Unix.EINVAL, "select", "")
|
Deployed live, but some of the builds failed. https://base-images.ocamllabs.io/job/2021-07-08/165647-ocluster-build-fde59f: https://base-images.ocamllabs.io/job/2021-07-08/165647-ocluster-build-65fbee: https://base-images.ocamllabs.io/job/2021-07-08/165647-ocluster-build-dfdae0: |
|
After clicking the rebuild buttons a few times, everything is now passing. |
This pull request:
Building Windows Docker images requires OCluster workers running on Windows (see OCluster PR 128) are used. The current pipeline doesn't create multiarch images for different OS (i.e., an image containing Linux and Windows images). It doesn't change the current Linux tags in any way.
It uses three new distros: windows-mingw, windows-msvc, and cygwin, corresponding to the three OCaml Windows ports. Cygwin is currently disabled until newer versions of OCaml (4.12.1 ?) and Opam (2.1 ?) are made available.
The pushed Windows tags have the current scheme, where
<distro>is one ofwindows-mingworwindows-msvc:<distro>-<win_version>-opam;<distro>-<win_version>-ocaml-<ocaml_version>;<distro>-<win_version>-><distro>-<win_version>-ocaml-<ocaml_version_latest>;<distro>-ocaml-<ocaml_version>, a multiarch image containing all<distro>-<win_version>-ocaml-<ocaml_version>for eachwin_version.<distro>, a multiarch image containing all<distro>-<win_version>for each<win_version>.The
<win_version>corresponds to themcr.microsoft.com/windows:<win_version>base image.Some possible set of tags that aren't in this PR is:
<distro>-opam, a multiarch image containing all<distro>-<win_version>-opamfor allwin_version, but as opam images are intermediary, we don't have to bother with it.A image is generated for each version of Windows 10 (LTSC and Semi Annual releases only). Images for earlier versions of Windows 10 are not available. As Microsoft doesn't provide a "latest" tags for its images, we won't either provide an image based on the "latest" version of Windows.
Depends on :
Might depend on (but not sure as I haven't changed the API used):