Skip to content
Dev Setup

Dev Setup

Prerequisites

  • Go 1.26+ (module requires 1.26.1)
  • Mage – install with go install github.com/magefile/mage@latest
  • Linux, macOS (Apple Silicon), or Windows

Clone and build

git clone https://github.com/ephpm/ephemerd.git
cd ephemerd

# Download all embedded dependencies (runner binary, CNI plugins, containerd shim, Alpine rootfs)
mage download:all

# Build for the current platform
mage build

# Run linter + tests + build (same pipeline as CI)
mage ci

Individual Mage targets

TargetDescription
mage lintDownload golangci-lint and run it
mage testDownload embedded deps and run all tests
mage build:buildCompile ephemerd for the current OS
mage build:windowsTwo-stage Windows build (cross-compiles and embeds Linux binary for WSL)
mage e2eUnprivileged e2e tests (requires GITHUB_TOKEN)
mage e2eallAll e2e tests including privileged (requires root + containerd)
mage e2eforgejoForgejo provider e2e (requires Docker with compose)
mage e2egiteaGitea provider e2e (requires Docker with compose)
mage e2egitlabGitLab CE provider e2e (requires Docker with compose)
mage e2egithubGitHub provider e2e using a fake in-process API server
mage e2ewoodpeckerWoodpecker CI provider e2e (requires Docker with compose)
mage generateRegenerate protobuf Go code
mage docsBuild the docs site (downloads Hugo first)
mage docsServeStart the Hugo dev server for local preview
mage cleanRemove all downloaded assets and build artifacts
mage ciRun download, lint, test, and build (same as GitHub Actions)

Run mage -l for the full list of available targets.