- docs/stacks.md (new): dedicated per-stack page - docs/architecture.md: expanded action-pipeline + ported-behaviour coverage - docs/index.md: links to both new sections No feature code touched — RFC feature set already implemented. Verified: go test ./... passes Co-Authored-By: Virgil <virgil@lethean.io>
2.8 KiB
| title | description |
|---|---|
| Stacks | Stack-specific behaviour for the generated build workflow and go-build builders. |
Stacks
The generated workflow and pkg/build/builders cover multiple project stacks. Detection starts with repository markers and then hands off to the matching builder.
Wails
Wails is the primary desktop-app path and the closest match to the public dAppCore/build@v3 action.
- Detection accepts
wails.jsondirectly and also Go roots that contain frontend manifests at the root, underfrontend/, or in a subtree up to depth 2. - Setup installs Go, Node, frontend dependencies, the Wails CLI, distro-specific Linux WebKit packages, and optional garble when obfuscation is enabled.
- Build uses
wails buildfor Wails v2 and supports Wails v3 through Taskfile-driven packaging or a directwails3CLI fallback. - Windows packaging supports NSIS and the
download,embed,browser, anderrorWebView2 modes. - Signing supports the existing macOS and Windows signing flows exposed by the build and Apple layers.
Node and Deno
Node-style frontend builds are also first-class:
- Detection accepts
package.json,deno.json, anddeno.jsoncat the root or in nested frontend directories. - Setup installs Node dependencies with the detected package manager and enables Deno when
DENO_ENABLE,DENO_BUILD, or Deno manifests are present. - Build uses
DENO_BUILDwhen supplied, otherwise defaults todeno task buildfor Deno projects or the package-managerbuildscript for Node projects.
Docs
Docs projects are treated as a dedicated stack instead of falling through to Node:
- Detection accepts
mkdocs.ymlandmkdocs.yamlat the root or underdocs/. - Setup installs Python plus MkDocs only when docs markers are present.
- Build runs
mkdocs buildand packages the generated site as an archiveable artifact.
C++
C++ projects map cleanly onto the action's Conan-oriented setup story:
- Detection uses
CMakeLists.txt. - Setup installs Python and Conan in the generated workflow when a C++ marker is present.
- Build uses CMake and Conan profile mapping for native and cross-target builds.
Docker, LinuxKit, and Taskfile
Additional stacks are exposed through dedicated builders:
- Docker uses Buildx-backed image builds and archive-friendly export modes.
- LinuxKit supports root manifests and
.core/linuxkit/*.ymlconfigs. - Taskfile acts as a generic wrapper for repositories that already encode their own build graph, including many Wails v3 projects.
Future Direction
The action docs historically called out Wails v3 and C++ as future or placeholder stacks. In go-build those paths now exist, but the design still follows the same principle: keep discovery generic, keep setup conditional, and let each stack wrapper own its full pipeline.