Skip to content
Merged
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
8 changes: 0 additions & 8 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ jobs:
with:
moon-version: "2.5.5"
- run: nub install --frozen-lockfile
- run: nubx playwright install --with-deps chromium
- name: Check affected tasks
id: ci
run: moon ci
Expand All @@ -53,10 +52,3 @@ jobs:
include-hidden-files: true
if-no-files-found: ignore
retention-days: 14
- uses: actions/upload-artifact@v7
if: always()
with:
name: test-results-${{ github.run_attempt }}
path: test-results/
if-no-files-found: ignore
retention-days: 1
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,3 @@ node_modules/
dist/
.npmrc
.solid-static-islands*
playwright-report/
test-results/
6 changes: 4 additions & 2 deletions .moon/tasks/all.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
implicitInputs:
- moon.yml
- package.json
- nub.lock
- /package.json
- /nub.lock
- glob: /.node-version
- glob: /nub.jsonc
- /.moon/**/*.yml
- /.github/workflows/ci.yaml
11 changes: 11 additions & 0 deletions .moon/toolchains.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Installation and Node selection belong to Nub and the workspace setup.
# Share package-aware task execution with workspaces consuming this repository.
javascript:
packageManager: nub
inferTasksFromScripts: false
syncPackageManagerField: false
syncProjectWorkspaceDependencies: false
node: {}
unstable_nub:
# Moon 2.5.5 omits Nub from default locator inheritance.
plugin: https://github.com/moonrepo/plugins/releases/download/node_depman_toolchain-v1.1.0/node_depman_toolchain.wasm
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
## Tools

- use `nub` as package manager
- use `nubx` to run binaries
- use `nub exec` to run binaries

## Verification

Expand Down
23 changes: 19 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,14 +248,26 @@ Install Node.js 24, Nub 0.9, and Moon 2.5.5, then run:

```sh
nub install --frozen-lockfile
nubx playwright install chromium
moon run solid-static:check
```

`moon.yml` owns the build, lint, typecheck, unit, and browser tasks. Tests depend
`moon.yml` owns the build, lint, typecheck, and Vitest tasks. Tests depend
on the package build because Vite fixtures resolve the package's exported runtime
from `dist`. A clean checkout does not need prebuilt artifacts.

All tests run in Node without a browser or Docker. Integrated Vite fixtures build
real sites, then Cheerio, PostCSS, and Acorn check generated HTML, CSS, and
JavaScript: static fallback content, hashed links, stylesheet deduplication,
page-specific styles, shared chunks, and root, relative, subpath, and CDN bases.
Development tests request Vite's HTML and transformed assets directly over HTTP.
Each fixture owns its temporary files and ephemeral ports.

The JavaScript and Node toolchains in `.moon/toolchains.yml` use Nub for package
execution. Installation remains an explicit setup step, and tasks live only in
`moon.yml`. Moon does not install a second package manager or manage a second
Node version. The Nub toolchain names its official plugin explicitly because
Moon 2.5.5 omits its default plugin location.

The standalone GitHub workflow follows [Moon's CI guide](https://moonrepo.dev/docs/guides/ci):
full Git history, dependency installation, then `moon ci` to select affected
tasks and run their dependencies. It uploads native reports and keeps
Expand All @@ -264,8 +276,11 @@ Moon workspace cache.

The same project tasks can be registered as `solid-static` in a parent Moon
workspace. Consumers should depend on `solid-static:build` and use a workspace
package dependency. The parent owns dependency and browser installation; the
submodule's standalone workflow does not run inside the parent's workflow.
package dependency. The parent owns dependency installation. The submodule's
standalone workflow does not run inside the parent's workflow.
The parent can extend `.moon/toolchains.yml` from this package to share the
same toolchain configuration. The `sources` file group covers package source
and build configuration for consumers' cache inputs.

To publish an explicitly approved release, use `moon run solid-static:publish`.

Expand Down
Loading
Loading