go-build/docs/index.md
Snider cbdb8028dc feat(build): action-style upload artifact naming + doc parity
- 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>
2026-04-14 21:24:17 +01:00

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, and go
  • 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:

  1. Detects the required toolchains from the repository contents.
  2. Installs Go, Node, Python, Conan, MkDocs, Deno, and Wails only when needed.
  3. Restores build caches under .core/cache and cache/.
  4. Applies Ubuntu 24.04 WebKit 4.1 handling for Wails Linux builds.
  5. Runs core build --archive --checksum.
  6. 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.plist and entitlements
  • Xcode Cloud helper scripts checked into the project

Module Path

import "dappco.re/go/core/build/pkg/build"

Requires Go 1.26+.