Skip to content

Commit b285d50

Browse files
authored
Merge pull request #7 from VirtusLab/publish-latest-scalajs
Build scalajs-cli only for the latest version of scalajs
2 parents b14c5cd + 890d672 commit b285d50

File tree

4 files changed

+30
-97
lines changed

4 files changed

+30
-97
lines changed

.github/workflows/ci.yml

+13-26
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
with:
2222
jvm: "temurin:17"
2323
- name: Test CLI
24-
run: ./mill -i 'tests[_].test'
24+
run: ./mill -i 'tests.test'
2525

2626
publish:
2727
needs: test
@@ -51,7 +51,6 @@ jobs:
5151
fail-fast: false
5252
matrix:
5353
os: [ubuntu-20.04, windows-latest, macos-latest]
54-
scalaJsVersion: ["1.9.0", "1.10.0", "1.10.1", "1.11.0", "1.12.0", "1.13.0"]
5554
steps:
5655
- uses: actions/checkout@v3
5756
with:
@@ -62,22 +61,18 @@ jobs:
6261
with:
6362
jvm: temurin:17
6463
- run: |
65-
./mill -i "native[$scalaJsVersion].writeNativeImageScript" generate.sh "" && \
64+
./mill -i "native.writeNativeImageScript" generate.sh "" && \
6665
./generate.sh && \
67-
./mill -i "tests[$scalaJsVersion].test.native" && \
68-
./mill -i "native[$scalaJsVersion].copyToArtifacts" artifacts/
66+
./mill -i "tests.test.native" && \
67+
./mill -i "native.copyToArtifacts" artifacts/
6968
if: runner.os != 'Windows'
70-
env:
71-
scalaJsVersion: ${{ matrix.scalaJsVersion }}
7269
- run: |
73-
@call ./mill.bat -i "native[%scalaJsVersion%].writeNativeImageScript" generate.bat ""
70+
@call ./mill.bat -i "native.writeNativeImageScript" generate.bat ""
7471
@call generate.bat
75-
@call ./mill.bat -i "tests[%scalaJsVersion%].test.native"
76-
@call ./mill.bat -i "native[%scalaJsVersion%].copyToArtifacts" artifacts/
72+
@call ./mill.bat -i "tests.test.native"
73+
@call ./mill.bat -i "native.copyToArtifacts" artifacts/
7774
shell: cmd
7875
if: runner.os == 'Windows'
79-
env:
80-
scalaJsVersion: ${{ matrix.scalaJsVersion }}
8176
- uses: actions/[email protected]
8277
with:
8378
name: launcher-${{ matrix.os }}
@@ -94,8 +89,6 @@ jobs:
9489
runs-on: ubuntu-20.04
9590
strategy:
9691
fail-fast: false
97-
matrix:
98-
scalaJsVersion: ["1.9.0", "1.10.0", "1.10.1", "1.11.0", "1.12.0", "1.13.0"]
9992
steps:
10093
- uses: actions/checkout@v3
10194
with:
@@ -106,12 +99,10 @@ jobs:
10699
with:
107100
jvm: temurin:17
108101
- run: |
109-
./mill -i "native-static[$scalaJsVersion].writeNativeImageScript" generate.sh "" && \
102+
./mill -i "native-static.writeNativeImageScript" generate.sh "" && \
110103
./generate.sh && \
111-
./mill -i "tests[$scalaJsVersion].test.nativeStatic" && \
112-
./mill -i "native-static[$scalaJsVersion].copyToArtifacts" artifacts/
113-
env:
114-
scalaJsVersion: ${{ matrix.scalaJsVersion }}
104+
./mill -i "tests.test.nativeStatic" && \
105+
./mill -i "native-static.copyToArtifacts" artifacts/
115106
- uses: actions/[email protected]
116107
with:
117108
name: launcher-${{ matrix.os }}-static
@@ -128,8 +119,6 @@ jobs:
128119
runs-on: ubuntu-20.04
129120
strategy:
130121
fail-fast: false
131-
matrix:
132-
scalaJsVersion: ["1.9.0", "1.10.0", "1.10.1", "1.11.0", "1.12.0", "1.13.0"]
133122
steps:
134123
- uses: actions/checkout@v3
135124
with:
@@ -140,12 +129,10 @@ jobs:
140129
with:
141130
jvm: temurin:17
142131
- run: |
143-
./mill -i "native-mostly-static[$scalaJsVersion].writeNativeImageScript" generate.sh "" && \
132+
./mill -i "native-mostly-static.writeNativeImageScript" generate.sh "" && \
144133
./generate.sh && \
145-
./mill -i "tests[$scalaJsVersion].test.nativeStatic" && \
146-
./mill -i "native-mostly-static[$scalaJsVersion].copyToArtifacts" artifacts/
147-
env:
148-
scalaJsVersion: ${{ matrix.scalaJsVersion }}
134+
./mill -i "tests.test.nativeStatic" && \
135+
./mill -i "native-mostly-static.copyToArtifacts" artifacts/
149136
- uses: actions/[email protected]
150137
with:
151138
name: launcher-${{ matrix.os }}-mostly-static

build.sc

+17-50
Original file line numberDiff line numberDiff line change
@@ -18,29 +18,17 @@ import scala.util.Properties.isWin
1818

1919
def scalaJsCliVersion = "1.1.1-sc5"
2020
def scala213 = "2.13.10"
21-
def latestScalaJsVersion = "1.13.0"
22-
def scalaJsVersions = Seq("1.9.0", "1.10.0", "1.10.1", "1.11.0", "1.12.0", latestScalaJsVersion)
23-
24-
object cli extends Cross[Cli](scalaJsVersions: _*)
25-
26-
class Cli(val scalaJsVersion0: String) extends ScalaModule with ScalaJsCliPublishModule {
21+
def scalaJsVersion = "1.13.0"
22+
object cli extends Cli
23+
trait Cli extends ScalaModule with ScalaJsCliPublishModule {
2724
def scalaVersion = scala213
2825
def artifactName = "scalajs" + super.artifactName()
2926
def ivyDeps = super.ivyDeps() ++ Seq(
30-
ivy"org.scala-js::scalajs-linker:$scalaJsVersion0",
27+
ivy"org.scala-js::scalajs-linker:$scalaJsVersion",
3128
ivy"com.github.scopt::scopt:4.1.0"
3229
)
33-
def millSourcePath = super.millSourcePath / os.up
34-
3530
def mainClass = Some("org.scalajs.cli.Scalajsld")
3631

37-
def sources = T.sources {
38-
val extra =
39-
if (Version(scalaJsVersion0) == Version("1.9.0")) millSourcePath / "scala-js-1.9"
40-
else millSourcePath / "scala-js-1.10+"
41-
super.sources() ++ Seq(PathRef(extra))
42-
}
43-
4432
def transitiveJars: T[Agg[PathRef]] = {
4533

4634
def allModuleDeps(todo: List[JavaModule]): List[JavaModule] = {
@@ -73,7 +61,6 @@ class Cli(val scalaJsVersion0: String) extends ScalaModule with ScalaJsCliPublis
7361
else None
7462

7563
import coursier.launcher.{
76-
AssemblyGenerator,
7764
BootstrapGenerator,
7865
ClassPathEntry,
7966
Parameters,
@@ -107,9 +94,8 @@ class Cli(val scalaJsVersion0: String) extends ScalaModule with ScalaJsCliPublis
10794
}
10895
}
10996

110-
class ScalaJsCliNativeImage(val scalaJsVersion0: String) extends ScalaModule with NativeImage {
97+
trait ScalaJsCliNativeImage extends ScalaModule with NativeImage {
11198
def scalaVersion = scala213
112-
def scalaJsVersion = scalaJsVersion0
11399

114100
def nativeImageClassPath = T{
115101
runClasspath()
@@ -127,7 +113,7 @@ class ScalaJsCliNativeImage(val scalaJsVersion0: String) extends ScalaModule wit
127113
def nativeImageGraalVmJvmId = s"graalvm-java17:$graalVmVersion"
128114
def nativeImageName = "scala-js-ld"
129115
def moduleDeps() = Seq(
130-
cli(scalaJsVersion0)
116+
cli
131117
)
132118
def compileIvyDeps = super.compileIvyDeps() ++ Seq(
133119
ivy"org.graalvm.nativeimage:svm:$graalVmVersion"
@@ -146,13 +132,13 @@ class ScalaJsCliNativeImage(val scalaJsVersion0: String) extends ScalaModule wit
146132
}
147133
}
148134

149-
object native extends Cross[ScalaJsCliNativeImage](scalaJsVersions: _*)
135+
object native extends ScalaJsCliNativeImage
150136

151137
def native0 = native
152138

153139
def csDockerVersion = "2.1.0-M5-18-gfebf9838c"
154140

155-
class ScalaJsCliStaticNativeImage(scalaJsVersion0: String) extends ScalaJsCliNativeImage(scalaJsVersion0) {
141+
trait ScalaJsCliStaticNativeImage extends ScalaJsCliNativeImage {
156142
def nameSuffix = "-static"
157143
def buildHelperImage = T {
158144
os.proc("docker", "build", "-t", "scala-cli-base-musl:latest", ".")
@@ -173,9 +159,9 @@ class ScalaJsCliStaticNativeImage(scalaJsVersion0: String) extends ScalaJsCliNat
173159
super.writeNativeImageScript(scriptDest, imageDest)()
174160
}
175161
}
176-
object `native-static` extends Cross[ScalaJsCliStaticNativeImage](scalaJsVersions: _*)
162+
object `native-static` extends ScalaJsCliStaticNativeImage
177163

178-
class ScalaJsCliMostlyStaticNativeImage(scalaJsVersion0: String) extends ScalaJsCliNativeImage(scalaJsVersion0) {
164+
trait ScalaJsCliMostlyStaticNativeImage extends ScalaJsCliNativeImage {
179165
def nameSuffix = "-mostly-static"
180166
def nativeImageDockerParams = Some(
181167
NativeImage.linuxMostlyStaticParams(
@@ -184,10 +170,9 @@ class ScalaJsCliMostlyStaticNativeImage(scalaJsVersion0: String) extends ScalaJs
184170
)
185171
)
186172
}
187-
object `native-mostly-static` extends Cross[ScalaJsCliMostlyStaticNativeImage](scalaJsVersions: _*)
173+
object `native-mostly-static` extends ScalaJsCliMostlyStaticNativeImage
188174

189-
object tests extends Cross[Tests](scalaJsVersions: _*)
190-
class Tests(val scalaJsVersion0: String) extends ScalaModule {
175+
object tests extends ScalaModule {
191176
def scalaVersion = scala213
192177

193178
object test extends Tests {
@@ -206,7 +191,7 @@ class Tests(val scalaJsVersion0: String) extends ScalaModule {
206191
val launcher = launcherTask().path
207192
val extraArgs = Seq(
208193
s"-Dtest.scala-js-cli.path=$launcher",
209-
s"-Dtest.scala-js-cli.scala-js-version=$scalaJsVersion0"
194+
s"-Dtest.scala-js-cli.scala-js-version=$scalaJsVersion"
210195
)
211196
args ++ extraArgs
212197
}
@@ -219,31 +204,13 @@ class Tests(val scalaJsVersion0: String) extends ScalaModule {
219204
def test(args: String*) =
220205
jvm(args: _*)
221206
def jvm(args: String*) =
222-
new TestHelper(cli(scalaJsVersion0).standaloneLauncher).test(args: _*)
207+
new TestHelper(cli.standaloneLauncher).test(args: _*)
223208
def native(args: String*) =
224-
new TestHelper(native0(scalaJsVersion0).nativeImage).test(args: _*)
209+
new TestHelper(native0.nativeImage).test(args: _*)
225210
def nativeStatic(args: String*) =
226-
new TestHelper(`native-static`(scalaJsVersion0).nativeImage).test(args: _*)
211+
new TestHelper(`native-static`.nativeImage).test(args: _*)
227212
def nativeMostlyStatic(args: String*) =
228-
new TestHelper(`native-mostly-static`(scalaJsVersion0).nativeImage).test(args: _*)
229-
230-
private def updateRef(ref: PathRef): PathRef = {
231-
val rawPath = ref.path.toString.replace(
232-
File.separator + scalaJsVersion0 + File.separator,
233-
File.separator
234-
)
235-
PathRef(os.Path(rawPath))
236-
}
237-
def sources = T.sources {
238-
super.sources().flatMap { ref =>
239-
Seq(updateRef(ref), ref)
240-
}
241-
}
242-
def resources = T.sources {
243-
super.resources().flatMap { ref =>
244-
Seq(updateRef(ref), ref)
245-
}
246-
}
213+
new TestHelper(`native-mostly-static`.nativeImage).test(args: _*)
247214
}
248215
}
249216

cli/scala-js-1.9/org/scalajs/cli/internal/ModuleSplitStyleParser.scala

-21
This file was deleted.

0 commit comments

Comments
 (0)