|
6 | 6 | [helper.main :as main]
|
7 | 7 | [lread.status-line :as status]))
|
8 | 8 |
|
9 |
| -(defn- test-def [os id platform browser] |
| 9 | +(defn- test-def [{:keys [os id platform browser jdk-version]}] |
10 | 10 | {:os os
|
| 11 | + :jdk-version jdk-version |
11 | 12 | :cmd (->> ["bb" (str "test:" platform)
|
12 | 13 | "--suites" id
|
13 | 14 | (when browser (str "--browsers " browser))
|
14 | 15 | (when (= "ubuntu" os) "--launch-virtual-display")]
|
15 | 16 | (remove nil?)
|
16 | 17 | (string/join " "))
|
17 |
| - :desc (->> [id os browser platform] |
| 18 | + :desc (->> [id os browser (if (= "jvm" platform) |
| 19 | + (str "jdk" jdk-version) |
| 20 | + platform)] |
18 | 21 | (remove nil?)
|
19 | 22 | (string/join " "))})
|
20 | 23 |
|
| 24 | +(defn- test-doc [{:keys [os jdk-version]}] |
| 25 | + {:os os |
| 26 | + :jdk-version jdk-version |
| 27 | + :cmd (if (= "ubuntu" os) |
| 28 | + "bb test-doc --launch-virtual-display" |
| 29 | + "bb test-doc") |
| 30 | + :desc (str "test-doc " os " jdk" jdk-version)} ) |
| 31 | + |
21 | 32 | (defn- github-actions-matrix []
|
22 | 33 | (let [oses ["macos" "ubuntu" "windows"]
|
23 | 34 | ide-browsers ["chrome" "firefox"]
|
24 | 35 | api-browsers ["chrome" "firefox" "edge" "safari"]
|
25 |
| - platforms ["jvm" "bb"]] |
| 36 | + platforms ["jvm" "bb"] |
| 37 | + jdk-versions ["8" "11" "17" "21"] |
| 38 | + default-opts {:jdk-version "21"}] |
26 | 39 | (->> (concat
|
27 | 40 | (for [os oses
|
28 | 41 | platform platforms]
|
29 |
| - (test-def os "unit" platform nil)) |
| 42 | + (test-def (merge default-opts {:os os :id "unit" :platform platform}))) |
30 | 43 | (for [os oses
|
31 | 44 | platform platforms
|
32 | 45 | browser ide-browsers]
|
33 |
| - (test-def os "ide" platform browser)) |
| 46 | + (test-def (merge default-opts {:os os :id "ide" :platform platform :browser browser}))) |
34 | 47 | (for [os oses
|
35 | 48 | platform platforms
|
36 | 49 | browser api-browsers
|
37 | 50 | :when (not (or (and (= "ubuntu" os) (some #{browser} ["edge" "safari"]))
|
38 | 51 | (and (= "windows" os) (= "safari" browser))))]
|
39 |
| - (test-def os "api" platform browser)) |
| 52 | + (test-def (merge default-opts {:os os :id "api" :platform platform :browser browser}))) |
| 53 | + ;; for jdk coverage we don't need to run across all oses and browsers |
| 54 | + (for [id ["unit" "ide" "api"] |
| 55 | + jdk-version jdk-versions |
| 56 | + :when (not= jdk-version (:jdk-version default-opts))] |
| 57 | + (test-def {:jdk-version jdk-version :os "ubuntu" :id id :platform "jvm" :browser "firefox"})) |
40 | 58 | (for [os oses]
|
41 |
| - {:os os |
42 |
| - :cmd (if (= "ubuntu" os) |
43 |
| - "bb test-doc --launch-virtual-display" |
44 |
| - "bb test-doc") |
45 |
| - :desc (str "test-doc " os)})) |
46 |
| - (sort-by :desc) |
47 |
| - (into [{:os "ubuntu" :cmd "bb lint" :desc "lint"}])))) |
| 59 | + (test-doc (merge default-opts {:os os}))) |
| 60 | + (for [jdk-version jdk-versions |
| 61 | + :when (not= jdk-version (:jdk-version default-opts))] |
| 62 | + (test-doc {:jdk-version jdk-version :os "ubuntu"}))) |
| 63 | + (sort-by (juxt #(parse-long (:jdk-version %)) :desc)) |
| 64 | + (into [(merge default-opts {:os "ubuntu" :cmd "bb lint" :desc "lint"})])))) |
48 | 65 |
|
49 | 66 | (def valid-formats ["json" "table"])
|
50 | 67 | (def cli-spec {:help {:desc "This usage help"}
|
|
74 | 91 | (status/line :detail
|
75 | 92 | (if (= "json" (:format opts))
|
76 | 93 | (json/generate-string matrix)
|
77 |
| - (doric/table [:os :cmd :desc] matrix))))))) |
| 94 | + (doric/table [:os :jdk-version :cmd :desc] matrix))))))) |
78 | 95 |
|
79 | 96 | (main/when-invoked-as-script
|
80 | 97 | (apply -main *command-line-args*))
|
0 commit comments