Skip to content

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

  1. Create a version tag (for example v1.0.0).
  2. Push the tag.
  3. 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

  1. Merge docs changes to main.
  2. Docs workflow deploys /docs content to gh-pages.
  3. 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