Skip to content

Commit a29397b

Browse files
author
reidspencer
committed
Build & Workflow improvements
* Cleanup the build.sbt * Allow riddlLib to generate a universal package * Add a "packageArtifacts" command alias for 5 artifacts * Use "packageArtifacts" in workflow to build them * Fix the paths in workflow to collect the five artifacts
1 parent 4bc3443 commit a29397b

2 files changed

Lines changed: 50 additions & 43 deletions

File tree

.github/workflows/scala.yml

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,6 @@ jobs:
105105
diagramsJS/test \
106106
riddlLibJS/test
107107
108-
- name: Package Release Artifacts
109-
run: |
110-
sbt -v \
111-
riddlc/Universal/packageBin \
112-
riddlcNative/nativeLink \
113-
riddlLibJS/fullLinkJS
114-
115108
- name: Publish JVM RIDDL Libs & Test sbt-riddl plugin
116109
env:
117110
RIDDLC_PATH: riddlc/jvm/target/universal/stage/bin/riddlc
@@ -126,14 +119,20 @@ jobs:
126119
riddlc/stage \
127120
sbt-riddl/scripted
128121
122+
- name: Package Release Artifacts
123+
run: |
124+
sbt -v packageArtifacts
125+
129126
- name: Collect Release Artifacts
130127
uses: actions/upload-artifact@v4
131128
with:
132129
name: collect-release-artifacts
133130
path: |
134-
- riddlc/native/target/scala-3.4.3/riddlc
135-
- riddlc/jvm/target/universal/riddlc.zip
136-
- riddlLib/js/target/scala-3.4.3/riddl-lib-opt/main.js
131+
riddlc/native/target/scala-3.4.3/riddlc
132+
riddlc/jvm/target/universal/riddlc.zip
133+
riddlLib/js/target/scala-3.4.3/riddl-lib-opt/main.js
134+
riddlLib/jvm/target/universal/riddlLib.zip
135+
riddlLib/native/target/scala-3.4.3/libriddl-lib.a
137136
138137
- name: Cleanup Before Caching
139138
shell: bash

build.sbt

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,39 @@ val diagrams = diagrams_cp.jvm
294294
val diagramsJS = diagrams_cp.js
295295
val diagramsNative = diagrams_cp.native
296296

297+
lazy val riddlLib_cp: CrossProject = CrossModule("riddlLib", "riddl-lib")(JS, JVM, Native)
298+
.dependsOn(
299+
cpDep(utils_cp),
300+
cpDep(language_cp),
301+
cpDep(passes_cp),
302+
cpDep(diagrams_cp)
303+
)
304+
.configure(With.GithubPublishing)
305+
.configure(With.typical)
306+
.settings(
307+
description := "Bundling of essential RIDDL libraries"
308+
)
309+
.jvmConfigure(With.coverage(50))
310+
.jvmConfigure(With.MiMa("0.57.0"))
311+
.jvmConfigure(
312+
With.packagingUniversal(
313+
maintainerEmail = "reid@ossuminc.com",
314+
pkgName = "riddlLib",
315+
pkgSummary = "Library for RIDDL language, Universal packaging",
316+
pkgDescription = ""
317+
)
318+
)
319+
.jvmSettings(
320+
coverageExcludedFiles := """<empty>;$anon"""
321+
)
322+
.jsConfigure(With.js("RIDDL: diagrams", withCommonJSModule = true))
323+
.jsConfigure(With.noMiMa)
324+
.nativeConfigure(With.native(mode = "fast", buildTarget = "static"))
325+
.nativeConfigure(With.noMiMa)
326+
val riddlLib = riddlLib_cp.jvm
327+
val riddlLibJS = riddlLib_cp.js
328+
val riddlLibNative = riddlLib_cp.native
329+
297330
val Commands = config("commands")
298331
lazy val commands_cp: CrossProject = CrossModule("commands", "riddl-commands")(JVM, Native)
299332
.dependsOn(cpDep(utils_cp), cpDep(language_cp), cpDep(passes_cp), cpDep(diagrams_cp))
@@ -326,34 +359,8 @@ lazy val commands_cp: CrossProject = CrossModule("commands", "riddl-commands")(J
326359
)
327360
)
328361
val commands: Project = commands_cp.jvm
329-
// val commandsJS: Project = commands_cp.js
330362
val commandsNative = riddlLib_cp.native
331363

332-
lazy val riddlLib_cp: CrossProject = CrossModule("riddlLib", "riddl-lib")(JS, JVM, Native)
333-
.dependsOn(
334-
cpDep(utils_cp),
335-
cpDep(language_cp),
336-
cpDep(passes_cp),
337-
cpDep(diagrams_cp)
338-
) /*, cpDep(commands_cp) */
339-
.configure(With.GithubPublishing)
340-
.configure(With.typical)
341-
.settings(
342-
description := "Bundling of essential RIDDL libraries"
343-
)
344-
.jvmConfigure(With.coverage(50))
345-
.jvmConfigure(With.MiMa("0.57.0"))
346-
.jvmSettings(
347-
coverageExcludedFiles := """<empty>;$anon"""
348-
)
349-
.jsConfigure(With.js("RIDDL: diagrams", withCommonJSModule = true))
350-
.jsConfigure(With.noMiMa)
351-
.nativeConfigure(With.native(mode = "fast"))
352-
.nativeConfigure(With.noMiMa)
353-
val riddlLib = riddlLib_cp.jvm
354-
val riddlLibJS = riddlLib_cp.js
355-
val riddlLibNative = riddlLib_cp.native
356-
357364
val Riddlc = config("riddlc")
358365
lazy val riddlc_cp: CrossProject = CrossModule("riddlc", "riddlc")(JVM, Native)
359366
.configure(With.GithubPublishing)
@@ -365,13 +372,6 @@ lazy val riddlc_cp: CrossProject = CrossModule("riddlc", "riddlc")(JVM, Native)
365372
description := "The `riddlc` compiler and tests, the only executable in RIDDL",
366373
maintainer := "reid@ossuminc.com",
367374
mainClass := Option("com.ossuminc.riddl.RIDDLC")
368-
// graalVMNativeImageOptions ++= Seq(
369-
// "--verbose",
370-
// "--no-fallback",
371-
// "--native-image-info",
372-
// "--enable-url-protocols=https,http",
373-
// "-H:ResourceConfigurationFiles=../../src/native-image.resources"
374-
// ),
375375
)
376376
.jvmConfigure(With.coverage(50))
377377
.jvmConfigure(
@@ -472,3 +472,11 @@ addCommandAlias(
472472
"test ; project testkitJS ; test ; project diagramsJS; test ; " +
473473
"project riddlLibJS ; test ; fastLinkJS ; project root"
474474
)
475+
addCommandAlias(
476+
"packageArtifacts",
477+
"; riddlc/Universal/packageBin " +
478+
"; riddlcNative/nativeLink " +
479+
"; riddlLibJS/fullLinkJS" +
480+
"; riddlLibNative/nativeLink" +
481+
"; riddlLib/Universal/packageBin"
482+
)

0 commit comments

Comments
 (0)