- release.yml: generated workflow computes upload artifact names in action
shape {build-name}_{os}_{arch}_{tag|shortsha} with repo-name fallback
- workflow_test + cmd_workflow_test: artifact-name derivation coverage
- README + docs/index + docs/architecture + CLAUDE.md: refreshed to describe
current module path, builders/publishers, generated workflow/action surface,
Apple pipeline — replaces pre-spec documentation
Verified: go test ./... passes
Co-Authored-By: Virgil <virgil@lethean.io>
3.5 KiB
3.5 KiB
| title | description |
|---|---|
| go-build | Build, release, Apple packaging, SDK generation, and GitHub workflow tooling for Core projects. |
go-build
dappco.re/go/core/build is the build system and release engine used by the Core CLI and the public dAppCore/build@v3 GitHub Action.
Highlights
- Auto-detecting builders for Go, Wails, Node, PHP, Python, Rust, Docs, Docker, LinuxKit, C++, and Taskfile projects
- Action-oriented discovery hints for
wails2,cpp,docs,node, andgo - Generated reusable GitHub release workflow with Go/Node/Python/Deno setup, Conan/MkDocs hooks, distro-aware WebKit packages, cache restore/save, and canonical artifact naming
- macOS Apple pipeline with
core build apple, DMG packaging, notarisation, Xcode Cloud script generation, TestFlight, and App Store submission - Release orchestration with eight publishers
- OpenAPI SDK generation with breaking-change detection
Commands
core build
core build apple
core build workflow
core build sdk
core ci
core sdk
Build Surfaces
| Surface | Purpose |
|---|---|
pkg/build/ |
Discovery, config, caches, archives, checksums, workflow generation, Apple pipeline |
pkg/build/builders/ |
Builder implementations for all supported stacks |
pkg/build/apple/ |
RFC-facing Apple wrapper that exposes core.Result contracts |
pkg/build/signing/ |
GPG, macOS codesign/notarisation, Windows signtool |
pkg/release/ |
Versioning, changelog generation, publishing orchestration |
pkg/release/publishers/ |
GitHub, Docker, npm, Homebrew, Scoop, AUR, Chocolatey, LinuxKit |
pkg/sdk/ |
Spec detection, diffing, and SDK generation |
cmd/build/ |
core build, core build apple, core build workflow, core build sdk, core build release |
cmd/ci/ |
core ci publish/version/changelog commands |
cmd/sdk/ |
core sdk diff and core sdk validate |
Builder Detection
Discovery checks the project root and selected nested paths:
| Marker | Result |
|---|---|
.core/build.yaml |
Config-driven override |
wails.json or go.mod/go.work plus frontend manifests |
Wails |
go.mod or go.work |
Go |
package.json, deno.json, deno.jsonc |
Node/Deno |
mkdocs.yml, mkdocs.yaml, docs/mkdocs.yml, docs/mkdocs.yaml |
Docs |
CMakeLists.txt |
C++ |
Dockerfile, Containerfile variants |
Docker |
linuxkit.yml, linuxkit.yaml, .core/linuxkit/*.yml |
LinuxKit |
Taskfile.yml, Taskfile.yaml, Taskfile variants |
Taskfile |
composer.json, pyproject.toml, requirements.txt, Cargo.toml |
PHP, Python, Rust |
Monorepo frontend discovery scans subtree manifests to depth 2 and ignores node_modules and hidden directories.
GitHub Workflow Generation
core build workflow writes a reusable release workflow that:
- Detects the required toolchains from the repository contents.
- Installs Go, Node, Python, Conan, MkDocs, Deno, and Wails only when needed.
- Restores build caches under
.core/cacheandcache/. - Applies Ubuntu 24.04 WebKit 4.1 handling for Wails Linux builds.
- Runs
core build --archive --checksum. - Uploads artifacts with action-style names and publishes with
core ci.
Apple Pipeline
The Apple surface is available both through pkg/build/apple/ and core build apple. It supports:
- universal, arm64, and amd64 app builds
- codesign and notarisation
- DMG creation
- TestFlight and App Store submission
- generated
Info.plistand entitlements - Xcode Cloud helper scripts checked into the project
Module Path
import "dappco.re/go/core/build/pkg/build"
Requires Go 1.26+.