Development and release¶
Build¶
# Run unit tests
go test ./...
# Cross-compile for Windows (required — service code is Windows-only)
GOOS=windows GOARCH=amd64 go build ./...
# Run unit tests
go test ./...
# Build native binary
go build -o rdpserver.exe ./cmd/rdpserver
CI workflows¶
| Workflow | Trigger | Purpose |
|---|---|---|
build.yml |
Pull request | go test + Windows-targeted build validation |
release.yml |
Push tag v* |
Multi-platform binary release assets |
docs-pages.yml |
Push to main touching docs inputs, or manual dispatch |
Publish /docs to gh-pages |
Release flow¶
- Create a version tag (for example
v1.0.0). - Push the tag.
- Release workflow builds archives and publishes GitHub Release assets.
flowchart LR
Tag["git push tag v*"] --> ReleaseCI["release.yml"]
ReleaseCI --> Build["Build Windows\namd64 binary"]
ReleaseCI --> GHRelease["GitHub Release\n+ binary assets"]
Documentation publishing flow¶
- Merge docs changes to
main. - Docs workflow deploys
/docscontent togh-pages. - In repository settings, configure GitHub Pages source to
gh-pages/ root.
flowchart LR
Commit["Push to main\n(docs/**)"] --> DocsCI["docs-pages.yml"]
DocsCI --> GHPages["gh-pages branch"]
GHPages --> Site["GitHub Pages site"]
Local docs build
Install the doc dependencies and build the site locally:
pip install -r requirements.txt
zensical build