Skip to content

Commit b578037

Browse files
Force the use of the downloaded libsodium on CI
1 parent 4aa7d47 commit b578037

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

.github/workflows/ci.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ jobs:
137137
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
138138
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
139139
SCALA_CLI_IT_GROUP: 1
140+
SCALA_CLI_SODIUM_JNI_ALLOW: false
140141

141142
native-linux-tests-2:
142143
needs: generate-linux-launcher
@@ -160,6 +161,7 @@ jobs:
160161
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
161162
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
162163
SCALA_CLI_IT_GROUP: 2
164+
SCALA_CLI_SODIUM_JNI_ALLOW: false
163165

164166
native-linux-tests-3:
165167
needs: generate-linux-launcher
@@ -183,6 +185,7 @@ jobs:
183185
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
184186
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
185187
SCALA_CLI_IT_GROUP: 3
188+
SCALA_CLI_SODIUM_JNI_ALLOW: false
186189

187190
generate-macos-launcher:
188191
timeout-minutes: 120
@@ -232,6 +235,7 @@ jobs:
232235
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
233236
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
234237
SCALA_CLI_IT_GROUP: 1
238+
SCALA_CLI_SODIUM_JNI_ALLOW: false
235239

236240
native-macos-tests-2:
237241
needs: generate-macos-launcher
@@ -255,6 +259,7 @@ jobs:
255259
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
256260
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
257261
SCALA_CLI_IT_GROUP: 2
262+
SCALA_CLI_SODIUM_JNI_ALLOW: false
258263

259264
native-macos-tests-3:
260265
needs: generate-macos-launcher
@@ -278,6 +283,7 @@ jobs:
278283
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
279284
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
280285
SCALA_CLI_IT_GROUP: 3
286+
SCALA_CLI_SODIUM_JNI_ALLOW: false
281287

282288
generate-windows-launcher:
283289
timeout-minutes: 120
@@ -336,6 +342,7 @@ jobs:
336342
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
337343
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
338344
SCALA_CLI_IT_GROUP: 1
345+
SCALA_CLI_SODIUM_JNI_ALLOW: false
339346

340347
native-windows-tests-2:
341348
needs: generate-windows-launcher
@@ -363,6 +370,7 @@ jobs:
363370
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
364371
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
365372
SCALA_CLI_IT_GROUP: 2
373+
SCALA_CLI_SODIUM_JNI_ALLOW: false
366374

367375
native-windows-tests-3:
368376
needs: generate-windows-launcher
@@ -390,6 +398,7 @@ jobs:
390398
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
391399
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
392400
SCALA_CLI_IT_GROUP: 3
401+
SCALA_CLI_SODIUM_JNI_ALLOW: false
393402

394403
generate-mostly-static-launcher:
395404
timeout-minutes: 120
@@ -438,6 +447,7 @@ jobs:
438447
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
439448
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
440449
SCALA_CLI_IT_GROUP: 1
450+
SCALA_CLI_SODIUM_JNI_ALLOW: false
441451
- name: Docker integration tests
442452
run: ./mill integration.docker-slim.test
443453
- name: Login to GitHub Container Registry
@@ -472,6 +482,7 @@ jobs:
472482
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
473483
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
474484
SCALA_CLI_IT_GROUP: 2
485+
SCALA_CLI_SODIUM_JNI_ALLOW: false
475486

476487
native-mostly-static-tests-3:
477488
needs: generate-mostly-static-launcher
@@ -495,6 +506,7 @@ jobs:
495506
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
496507
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
497508
SCALA_CLI_IT_GROUP: 3
509+
SCALA_CLI_SODIUM_JNI_ALLOW: false
498510

499511
generate-static-launcher:
500512
timeout-minutes: 120
@@ -543,6 +555,7 @@ jobs:
543555
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
544556
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
545557
SCALA_CLI_IT_GROUP: 1
558+
SCALA_CLI_SODIUM_JNI_ALLOW: false
546559
- name: Docker integration tests
547560
run: ./mill integration.docker.test
548561
- name: Login to GitHub Container Registry
@@ -579,6 +592,7 @@ jobs:
579592
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
580593
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
581594
SCALA_CLI_IT_GROUP: 2
595+
SCALA_CLI_SODIUM_JNI_ALLOW: false
582596

583597
native-static-tests-3:
584598
needs: generate-static-launcher
@@ -604,6 +618,7 @@ jobs:
604618
UPDATE_GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
605619
SCALA_CLI_IT_FORCED_LAUNCHER_DIRECTORY: artifacts/
606620
SCALA_CLI_IT_GROUP: 3
621+
SCALA_CLI_SODIUM_JNI_ALLOW: false
607622

608623
docs-tests:
609624
# for now, lets run those tests only on ubuntu

modules/cli/src/main/scala/scala/cli/commands/github/LibSodiumJni.scala

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import coursier.util.Task
66

77
import java.io.InputStream
88
import java.nio.charset.StandardCharsets
9+
import java.util.Locale
910

1011
import scala.build.EitherCps.{either, value}
1112
import scala.build.Logger
@@ -116,7 +117,7 @@ object LibSodiumJni {
116117

117118
if (!allStaticallyLinked) {
118119
val (archiveUrl, pathInArchive) = archiveUrlAndPath()
119-
val sodiumLib = value {
120+
val sodiumLibOpt = value {
120121
FetchExternalBinary.fetchLauncher(
121122
archiveUrl,
122123
changing = false,
@@ -130,11 +131,28 @@ object LibSodiumJni {
130131

131132
val f = jniLibArtifact(cache)
132133

133-
System.load(sodiumLib.toString)
134+
sodiumLibOpt match {
135+
case Some(sodiumLib) =>
136+
System.load(sodiumLib.toString)
137+
case None =>
138+
val allow = Option(System.getenv("SCALA_CLI_SODIUM_JNI_ALLOW"))
139+
.map(_.toLowerCase(Locale.ROOT))
140+
.forall {
141+
case "false" | "0" => false
142+
case _ => true
143+
}
144+
if (allow)
145+
System.loadLibrary("sodium")
146+
else
147+
value(Left(new LibSodiumNotFound(archiveUrl)))
148+
}
149+
134150
libsodiumjni.internal.LoadLibrary.initialize(f.toString)
135151
}
136152

137153
libsodiumjni.Sodium.init()
138154
}
139155

156+
final class LibSodiumNotFound(url: String) extends BuildException(s"libsodium: $url not found")
157+
140158
}

0 commit comments

Comments
 (0)