diff --git a/src/lib/common/platform.ml b/src/lib/common/platform.ml index 1303554..7ac0b97 100644 --- a/src/lib/common/platform.ml +++ b/src/lib/common/platform.ml @@ -1,10 +1,14 @@ -type ocaml_version = V4_14 | V5_3 +type ocaml_version = V4_14 | V5_3 | V5_4 -let pp_ocaml f = function V4_14 -> Fmt.pf f "4.14" | V5_3 -> Fmt.pf f "5.3" +let pp_ocaml f = function + | V4_14 -> Fmt.pf f "4.14" + | V5_3 -> Fmt.pf f "5.3" + | V5_4 -> Fmt.pf f "5.4" let pp_exact_ocaml f = function | V4_14 -> Fmt.pf f "4.14.2" | V5_3 -> Fmt.pf f "5.3.0" + | V5_4 -> Fmt.pf f "5.4.0" type os = Debian | Ubuntu | Fedora @@ -54,12 +58,18 @@ let platform_v53_amd64 = let platform_v53_arm64 = { system = { ocaml = V5_3; os = Debian }; arch = Arm64 } +let platform_v54_amd64 = + { system = { ocaml = V5_4; os = Debian }; arch = Amd64 } + +let platform_v54_arm64 = + { system = { ocaml = V5_4; os = Debian }; arch = Arm64 } + let platform_host = Bos.Cmd.(v "uname" % "-m") |> Bos.OS.Cmd.run_out |> Bos.OS.Cmd.out_string |> Result.to_option |> Option.map (function - | ("aarch64" | "arm64"), _ -> platform_v414_arm64 - | _ -> platform_v414_amd64) - |> Option.value ~default:platform_v414_amd64 + | ("aarch64" | "arm64"), _ -> platform_v53_arm64 + | _ -> platform_v53_amd64) + |> Option.value ~default:platform_v53_amd64 diff --git a/src/pipelines/PR.ml b/src/pipelines/PR.ml index adc88fd..7db539e 100644 --- a/src/pipelines/PR.ml +++ b/src/pipelines/PR.ml @@ -410,6 +410,8 @@ module Run = struct platform_v414_arm64; platform_v53_amd64; platform_v53_arm64; + platform_v54_amd64; + platform_v54_arm64; ] |> List.map (fun platform -> perform_test ~metadata ~platform commit) diff --git a/src/pipelines/skeleton.ml b/src/pipelines/skeleton.ml index 357ee1d..3019989 100644 --- a/src/pipelines/skeleton.ml +++ b/src/pipelines/skeleton.ml @@ -3,10 +3,15 @@ open Common type 'a build_mode = Mirage_4 of { overlay : 'a option } -let targets = [ "unix"; "hvt"; "xen" ] (* "virtio"; "spt"; "muen" ]*) +let targets = [ "unix"; "hvt"; "xen"; "unikraft-qemu" ] +(* "virtio"; "spt"; "muen" ]*) + +let is_unikraft_available_on (platform : Platform.t) = + match platform.system.ocaml with V5_3 | V5_4 -> true | _ -> false let is_available_on (platform : Platform.t) = function | "unix" | "hvt" -> true + | "unikraft-qemu" -> is_unikraft_available_on platform | "xen" when platform.arch = Amd64 -> true | _ -> false