17
17
import org .openqa .selenium .WebDriver
18
18
import org .openqa .selenium .chrome .{ChromeDriver , ChromeOptions }
19
19
import org .openqa .selenium .firefox .{FirefoxOptions , FirefoxProfile }
20
+ import org .openqa .selenium .safari .{SafariOptions , SafariDriver }
20
21
import org .openqa .selenium .remote .server .{DriverFactory , DriverProvider }
21
22
22
23
import org .scalajs .jsenv .jsdomnodejs .JSDOMNodeJSEnv
@@ -47,6 +48,10 @@ ThisBuild / scmInfo := Some(
47
48
48
49
ThisBuild / crossScalaVersions := Seq (" 2.12.14" , " 2.13.6" , " 3.0.2" )
49
50
51
+ val PrimaryOS = " ubuntu-latest"
52
+ val MacOS = " macos-latest"
53
+ ThisBuild / githubWorkflowOSes := Seq (PrimaryOS , MacOS )
54
+
50
55
ThisBuild / githubWorkflowBuildPreamble ++= Seq (
51
56
WorkflowStep .Use (
52
57
UseRef .Public (" actions" , " setup-node" , " v2.1.2" ),
@@ -58,7 +63,10 @@ ThisBuild / githubWorkflowBuildPreamble ++= Seq(
58
63
name = Some (" Install jsdom" ),
59
64
cond = Some (" matrix.ci == 'ciJSDOMNodeJS'" )))
60
65
61
- val ciVariants = List (" ciNode" , " ciFirefox" , " ciChrome" , " ciJSDOMNodeJS" )
66
+ val ciVariants = List (" ciNode" , " ciFirefox" , " ciChrome" , " ciSafari" , " ciJSDOMNodeJS" )
67
+
68
+ ThisBuild / githubWorkflowBuildMatrixExclusions ++= ciVariants.filter(_ != " ciSafari" )
69
+ .map(ci => MatrixExclude (Map (" ci" -> ci, " os" -> MacOS )))
62
70
63
71
ThisBuild / githubWorkflowBuildMatrixAdditions += " ci" -> ciVariants
64
72
@@ -69,6 +77,7 @@ replaceCommandAlias("ci", ciVariants.mkString("; ", "; ", ""))
69
77
addCommandAlias(" ciNode" , " ; set useJSEnv := JSEnv.NodeJS; core/test; core/doc" )
70
78
addCommandAlias(" ciFirefox" , " ; set useJSEnv := JSEnv.Firefox; all core/test webworker/test; set useJSEnv := JSEnv.NodeJS" )
71
79
addCommandAlias(" ciChrome" , " ; set useJSEnv := JSEnv.Chrome; all core/test webworker/test; set useJSEnv := JSEnv.NodeJS" )
80
+ addCommandAlias(" ciSafari" , " ; set useJSEnv := JSEnv.Safari; all core/test; set useJSEnv := JSEnv.NodeJS" )
72
81
addCommandAlias(" ciJSDOMNodeJS" , " ; set useJSEnv := JSEnv.JSDOMNodeJS; core/test; set useJSEnv := JSEnv.NodeJS" )
73
82
74
83
// release configuration
@@ -130,6 +139,9 @@ ThisBuild / Test / jsEnv := {
130
139
defaultFactory.registerDriverProvider(provider)
131
140
}
132
141
new SeleniumJSEnv (options, SeleniumJSEnv .Config ().withDriverFactory(factory))
142
+ case Safari =>
143
+ val options = new SafariOptions ()
144
+ new SeleniumJSEnv (options)
133
145
}
134
146
}
135
147
0 commit comments