Skip to content

Commit

Permalink
Build & Workflow improvements
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
reidspencer committed Jan 12, 2025
1 parent 4bc3443 commit a29397b
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 43 deletions.
19 changes: 9 additions & 10 deletions .github/workflows/scala.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,13 +105,6 @@ jobs:
diagramsJS/test \
riddlLibJS/test
- name: Package Release Artifacts
run: |
sbt -v \
riddlc/Universal/packageBin \
riddlcNative/nativeLink \
riddlLibJS/fullLinkJS
- name: Publish JVM RIDDL Libs & Test sbt-riddl plugin
env:
RIDDLC_PATH: riddlc/jvm/target/universal/stage/bin/riddlc
Expand All @@ -126,14 +119,20 @@ jobs:
riddlc/stage \
sbt-riddl/scripted
- name: Package Release Artifacts
run: |
sbt -v packageArtifacts
- name: Collect Release Artifacts
uses: actions/upload-artifact@v4
with:
name: collect-release-artifacts
path: |
- riddlc/native/target/scala-3.4.3/riddlc
- riddlc/jvm/target/universal/riddlc.zip
- riddlLib/js/target/scala-3.4.3/riddl-lib-opt/main.js
riddlc/native/target/scala-3.4.3/riddlc
riddlc/jvm/target/universal/riddlc.zip
riddlLib/js/target/scala-3.4.3/riddl-lib-opt/main.js
riddlLib/jvm/target/universal/riddlLib.zip
riddlLib/native/target/scala-3.4.3/libriddl-lib.a
- name: Cleanup Before Caching
shell: bash
Expand Down
74 changes: 41 additions & 33 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,39 @@ val diagrams = diagrams_cp.jvm
val diagramsJS = diagrams_cp.js
val diagramsNative = diagrams_cp.native

lazy val riddlLib_cp: CrossProject = CrossModule("riddlLib", "riddl-lib")(JS, JVM, Native)
.dependsOn(
cpDep(utils_cp),
cpDep(language_cp),
cpDep(passes_cp),
cpDep(diagrams_cp)
)
.configure(With.GithubPublishing)
.configure(With.typical)
.settings(
description := "Bundling of essential RIDDL libraries"
)
.jvmConfigure(With.coverage(50))
.jvmConfigure(With.MiMa("0.57.0"))
.jvmConfigure(
With.packagingUniversal(
maintainerEmail = "[email protected]",
pkgName = "riddlLib",
pkgSummary = "Library for RIDDL language, Universal packaging",
pkgDescription = ""
)
)
.jvmSettings(
coverageExcludedFiles := """<empty>;$anon"""
)
.jsConfigure(With.js("RIDDL: diagrams", withCommonJSModule = true))
.jsConfigure(With.noMiMa)
.nativeConfigure(With.native(mode = "fast", buildTarget = "static"))
.nativeConfigure(With.noMiMa)
val riddlLib = riddlLib_cp.jvm
val riddlLibJS = riddlLib_cp.js
val riddlLibNative = riddlLib_cp.native

val Commands = config("commands")
lazy val commands_cp: CrossProject = CrossModule("commands", "riddl-commands")(JVM, Native)
.dependsOn(cpDep(utils_cp), cpDep(language_cp), cpDep(passes_cp), cpDep(diagrams_cp))
Expand Down Expand Up @@ -326,34 +359,8 @@ lazy val commands_cp: CrossProject = CrossModule("commands", "riddl-commands")(J
)
)
val commands: Project = commands_cp.jvm
// val commandsJS: Project = commands_cp.js
val commandsNative = riddlLib_cp.native

lazy val riddlLib_cp: CrossProject = CrossModule("riddlLib", "riddl-lib")(JS, JVM, Native)
.dependsOn(
cpDep(utils_cp),
cpDep(language_cp),
cpDep(passes_cp),
cpDep(diagrams_cp)
) /*, cpDep(commands_cp) */
.configure(With.GithubPublishing)
.configure(With.typical)
.settings(
description := "Bundling of essential RIDDL libraries"
)
.jvmConfigure(With.coverage(50))
.jvmConfigure(With.MiMa("0.57.0"))
.jvmSettings(
coverageExcludedFiles := """<empty>;$anon"""
)
.jsConfigure(With.js("RIDDL: diagrams", withCommonJSModule = true))
.jsConfigure(With.noMiMa)
.nativeConfigure(With.native(mode = "fast"))
.nativeConfigure(With.noMiMa)
val riddlLib = riddlLib_cp.jvm
val riddlLibJS = riddlLib_cp.js
val riddlLibNative = riddlLib_cp.native

val Riddlc = config("riddlc")
lazy val riddlc_cp: CrossProject = CrossModule("riddlc", "riddlc")(JVM, Native)
.configure(With.GithubPublishing)
Expand All @@ -365,13 +372,6 @@ lazy val riddlc_cp: CrossProject = CrossModule("riddlc", "riddlc")(JVM, Native)
description := "The `riddlc` compiler and tests, the only executable in RIDDL",
maintainer := "[email protected]",
mainClass := Option("com.ossuminc.riddl.RIDDLC")
// graalVMNativeImageOptions ++= Seq(
// "--verbose",
// "--no-fallback",
// "--native-image-info",
// "--enable-url-protocols=https,http",
// "-H:ResourceConfigurationFiles=../../src/native-image.resources"
// ),
)
.jvmConfigure(With.coverage(50))
.jvmConfigure(
Expand Down Expand Up @@ -472,3 +472,11 @@ addCommandAlias(
"test ; project testkitJS ; test ; project diagramsJS; test ; " +
"project riddlLibJS ; test ; fastLinkJS ; project root"
)
addCommandAlias(
"packageArtifacts",
"; riddlc/Universal/packageBin " +
"; riddlcNative/nativeLink " +
"; riddlLibJS/fullLinkJS" +
"; riddlLibNative/nativeLink" +
"; riddlLib/Universal/packageBin"
)

0 comments on commit a29397b

Please sign in to comment.