One GitHub Action that reads your repository, works out what it is, and builds it — Wails v3, Wails v2, Go and C++, on Linux, macOS and Windows.
- uses: actions/checkout@v7
- uses: dAppCore/build@v4.16.0
with:
build-name: myAppThat detects the stack, installs the toolchains, builds, uploads the result as a workflow artifact, and publishes a GitHub release when the ref is a tag.
Pin an exact release: @v4.16.0. A tag here points at one commit and is never
moved onto another, so the build you tested is the build you keep getting.
Upgrading is a line in your workflow, chosen by you.
@v4 is a branch — the major line's development head, and what dAppCore's own
repositories use. Its manifests reach for each other at @v4 too, so consuming
it exercises the whole tree rather than a new root over frozen sub-actions. It
moves without warning and it is meant to — better that it breaks for us first.
It was a tag once, moved onto each release by CI. A ref that moves should look
like one, so it is a branch now and @v4 still resolves.
| Quickstart | The matrix build, build-only, and apps not at the repository root |
| How detection works | What it reads, what it concludes, how to overrule it |
| Wails v3 | Runs wails3 build or wails3 package — so CI takes the path you do |
| Wails v2 | Composes wails build flags from inputs |
| Go binaries | A module, a main package, a binary |
| C++ | Conan 2 resolves, CMake builds |
| Go libraries | vet, test, lint, govulncheck — no artifact |
| Inputs | Every input, on the root action and each wrapper |
| Sub-actions | Discovery, setup, build, sign and package, each callable alone |
| Packaging & releases | Artifact naming, and what a tag changes |
| Code signing | macOS notarisation and Windows signtool |
Nothing about the action changes per runner. The matrix does the work.
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
- uses: dAppCore/build@v4.16.0
with:
build-name: myApp- uses: dAppCore/build@v4.16.0
with:
build-name: myApp
package: false- uses: dAppCore/build@v4.16.0
with:
build-name: myApp
STACK: wails3Or call a stack directly: dAppCore/build/actions/build/wails3@v4.16.0.
Full documentation: dappco.re/build
@v4 follows the newest v4 release, @v4.2 the newest v4.2.x, and @v4.2.0
never moves. Pick the one that matches how much movement you want.