Skip to content

Commit 3219225

Browse files
committed
feat: add scalus to smoke test CI
1 parent ae3b755 commit 3219225

1 file changed

Lines changed: 39 additions & 8 deletions

File tree

.github/workflows/scheduled-smoke.yml

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,38 @@ permissions:
2424

2525
jobs:
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

Comments
 (0)