Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 35 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ on:

# The build is Mill (build.mill, wasm/package.mill). `./mill` is the bootstrap script: it downloads Mill
# 1.3.1, and Mill downloads the JDK it runs on and forks tests with (Zulu 25, `mill-jvm-version` in
# build.mill) through coursier, so no setup-java is needed for the build itself.
# build.mill) through coursier, so no setup-java is needed for the build itself. The meta-build loads an
# unreleased mill-scalablytyped that scripts/upstream-snapshot.sh installs (see the first steps of every job).
jobs:
format:
runs-on: ubuntu-latest
Expand All @@ -17,6 +18,16 @@ jobs:
with:
fetch-depth: 0
- uses: coursier/cache-action@v8
# mill-scalablytyped (main, which has https://github.com/lolgab/mill-scalablytyped/pull/50 and /51, + /52) is
# unreleased: build it from the commit pinned in scripts/upstream-snapshot.sh and install it locally, cached by
# that file's hash. Mill itself is the released 1.3.1, downloaded by `./mill`.
- name: Cache the upstream mill-scalablytyped snapshot
uses: actions/cache@v4
with:
path: ~/.ivy2/local/com.github.lolgab
key: upstream-snapshot-${{ hashFiles('scripts/upstream-snapshot.sh') }}
- name: Build the upstream mill-scalablytyped snapshot
run: scripts/upstream-snapshot.sh
- name: Check formatting (scalafmt)
run: |
# Files using experimental capture-checking `^{...}` syntax that scalafmt can't parse are
Expand Down Expand Up @@ -59,6 +70,16 @@ jobs:
with:
fetch-depth: 0
- uses: coursier/cache-action@v8
# mill-scalablytyped (main, which has https://github.com/lolgab/mill-scalablytyped/pull/50 and /51, + /52) is
# unreleased: build it from the commit pinned in scripts/upstream-snapshot.sh and install it locally, cached by
# that file's hash. Mill itself is the released 1.3.1, downloaded by `./mill`.
- name: Cache the upstream mill-scalablytyped snapshot
uses: actions/cache@v4
with:
path: ~/.ivy2/local/com.github.lolgab
key: upstream-snapshot-${{ hashFiles('scripts/upstream-snapshot.sh') }}
- name: Build the upstream mill-scalablytyped snapshot
run: scripts/upstream-snapshot.sh
# Wasm 3.0 + JSPI are on by default from Node 25; the runner's default Node has neither.
- name: Set up Node 25
if: matrix.platform == 'js'
Expand All @@ -75,8 +96,7 @@ jobs:
path: |
~/.cache/scalablytyped
out/stFacades
out/stGen
key: st-facades-mill-${{ hashFiles('package-lock.json', 'build.mill', 'buildsupport.mill', 'build-tools/st-gen/**') }}
key: st-facades-mill-${{ hashFiles('package-lock.json', 'build.mill', 'buildsupport.mill', 'scripts/upstream-snapshot.sh') }}
restore-keys: st-facades-mill-
- name: Compile
if: matrix.platform != 'wasm'
Expand Down Expand Up @@ -198,14 +218,23 @@ jobs:
with:
fetch-depth: 0
- uses: coursier/cache-action@v8
# mill-scalablytyped (main, which has https://github.com/lolgab/mill-scalablytyped/pull/50 and /51, + /52) is
# unreleased: build it from the commit pinned in scripts/upstream-snapshot.sh and install it locally, cached by
# that file's hash. Mill itself is the released 1.3.1, downloaded by `./mill`.
- name: Cache the upstream mill-scalablytyped snapshot
uses: actions/cache@v4
with:
path: ~/.ivy2/local/com.github.lolgab
key: upstream-snapshot-${{ hashFiles('scripts/upstream-snapshot.sh') }}
- name: Build the upstream mill-scalablytyped snapshot
run: scripts/upstream-snapshot.sh
- name: Cache ScalablyTyped facades
uses: actions/cache@v4
with:
path: |
~/.cache/scalablytyped
out/stFacades
out/stGen
key: st-facades-mill-${{ hashFiles('package-lock.json', 'build.mill', 'buildsupport.mill', 'build-tools/st-gen/**') }}
key: st-facades-mill-${{ hashFiles('package-lock.json', 'build.mill', 'buildsupport.mill', 'scripts/upstream-snapshot.sh') }}
restore-keys: st-facades-mill-
- name: Install wasm tools for the wasm publish (wkg, wasm-tools, wit-bindgen-scala)
if: env.PUBLISH_WASM_TO_CENTRAL == 'true'
Expand Down Expand Up @@ -240,7 +269,7 @@ jobs:
if [[ "$PUBLISH_WASM_TO_CENTRAL" == true ]]; then
./mill --ticker false core.js.publishLocal
export DAPR4S_WASM_CORE_VERSION="$version"
artifacts='{core.jvm,core.js,wasm.lib[release].wall,wasm.glue,wasm.glueExports,wasm.scalalibOverlay,wasm.linker,wasm.millPlugin,wasm.sbtPlugin}.publishArtifacts'
artifacts='{core.jvm,core.js,wasm.lib[release].wall,wasm.glue,wasm.glueExports,wasm.scalalibOverlay,wasm.linker[_],wasm.millPlugin,wasm.sbtPlugin}.publishArtifacts'
fi
./mill --ticker false mill.javalib.SonatypeCentralPublishModule/publishAll --publishArtifacts "$artifacts"
env:
Expand Down
Loading
Loading