@@ -24,20 +24,38 @@ permissions:
2424
2525jobs :
2626 smoke :
27- name : ${{ matrix.tool }} build+test
27+ name : ${{ matrix.variant }} build+test
2828 runs-on : ubuntu-latest
2929 strategy :
30- fail-fast : false # one tool breaking must not mask the others
30+ fail-fast : false # one variant breaking must not mask the others
3131 matrix :
32- # Only the tools that are meant to build green are listed. Placeholders
33- # (scalus, blaster, yaci) are intentionally excluded — their `just`
32+ # Only tools that are meant to build green are listed. Remaining
33+ # placeholders ( blaster, yaci) are intentionally excluded — their `just`
3434 # targets only echo, so they have no external dependency to drift. Add a
3535 # tool here the moment its template becomes genuinely build-green.
36+ #
37+ # `variant` is the unique display/dir key; `tool` selects the toolchain
38+ # setup below (one tool can appear as several variants — e.g. Scalus
39+ # fills on-chain, off-chain, and the fullstack collapse, each a distinct
40+ # template that must build green on its own).
3641 include :
37- - tool : aiken
42+ - variant : aiken
43+ tool : aiken
3844 flags : --on-chain aiken
39- - tool : meshjs
45+ - variant : meshjs
46+ tool : meshjs
4047 flags : --off-chain meshjs
48+ - variant : scalus-on-chain
49+ tool : scalus
50+ flags : --on-chain scalus
51+ - variant : scalus-off-chain
52+ tool : scalus
53+ flags : --off-chain scalus
54+ - variant : scalus-fullstack
55+ tool : scalus
56+ # Sugar for `--on-chain scalus --off-chain scalus`: both roles
57+ # collapse into one unified `protocol/` sbt build.
58+ flags : --fullstack scalus
4159 steps :
4260 - uses : actions/checkout@v5
4361
@@ -61,11 +79,24 @@ jobs:
6179 with :
6280 node-version : 20
6381
82+ # Scalus templates are Scala 3 / sbt builds: they need a JDK and sbt.
83+ - name : Install JDK
84+ if : matrix.tool == 'scalus'
85+ uses : actions/setup-java@v4
86+ with :
87+ distribution : temurin
88+ # Keep in lockstep with templates/scalus/*/project/build.properties
89+ # and build.sbt.jinja's declared JDK baseline.
90+ java-version : 21
91+ - name : Install sbt
92+ if : matrix.tool == 'scalus'
93+ uses : sbt/setup-sbt@v1
94+
6495 - name : Scaffold project in isolation
65- run : cargo run --quiet -- --name smoke-${{ matrix.tool }} ${{ matrix.flags }}
96+ run : cargo run --quiet -- --name smoke-${{ matrix.variant }} ${{ matrix.flags }}
6697
6798 - name : Build & test the generated project
68- working-directory : smoke-${{ matrix.tool }}
99+ working-directory : smoke-${{ matrix.variant }}
69100 # Each component's Justfile installs its own deps (e.g. meshjs `_install`
70101 # runs `npm install` in off-chain/ on first build), so `just build` is
71102 # self-sufficient from the project root — no per-tool dep step here.
0 commit comments