Dosu LogoDosu Logo
Ask
Join our Discord
Organization avatar
DaemonEyePublic
EvilBit Labs LLC
DocumentsDaemonEye
release-process
release-process
Type
External
Status
Published
Created
Mar 4, 2026
Updated
Mar 4, 2026
Source
docs/release-process.md

DaemonEye Release Process#

This document describes how to build and release DaemonEye binaries using GoReleaser with platform-specific configurations.

Overview#

DaemonEye uses separate GoReleaser configurations for each platform to avoid cross-compilation issues:

  • macOS: .goreleaser-macos.yaml - Native builds on macOS
  • Linux: .goreleaser-linux.yaml - Native builds on Linux
  • Windows: .goreleaser-windows.yaml - Native builds on Windows

Quick Start#

Automated Release (GitHub Actions)#

  1. Create and push a tag:

    git tag v1.0.0
    git push origin v1.0.0
    
  2. GitHub Actions will automatically:

    • Build binaries on each platform
    • Create GitHub releases
    • Upload artifacts

Manual Release#

macOS#

# On macOS system
goreleaser release --config .goreleaser-macos.yaml

Linux#

# On Linux system
goreleaser release --config .goreleaser-linux.yaml

Windows#

# On Windows system
goreleaser release --config .goreleaser-windows.yaml

Configuration Details#

Platform-Specific Builds#

Each configuration targets specific architectures:

  • macOS: aarch64-apple-darwin, x86_64-apple-darwin
  • Linux: aarch64-unknown-linux-gnu, x86_64-unknown-linux-gnu
  • Windows: aarch64-pc-windows-msvc, x86_64-pc-windows-msvc

Build Tools#

  • macOS: Uses native cargo (no cross-compilation issues)
  • Linux: Uses native cargo (no cross-compilation issues)
  • Windows: Uses native cargo (no cross-compilation issues)

Disabled Features#

All configurations disable platform-specific packaging:

  • archive: disable: true
  • brew: disable: true
  • snapcraft: disable: true
  • chocolatey: disable: true

This ensures only GitHub releases are created.

CI/CD Integration#

GitHub Actions#

The .github/workflows/release.yml file provides:

  1. Parallel builds on all three platforms
  2. Automatic triggering on tag pushes
  3. Rust toolchain setup for each platform
  4. GoReleaser installation and execution

Other CI Systems#

For other CI systems, use the same pattern:

# Option 1: Install via package manager (recommended)
# Ubuntu/Debian:
# sudo apt update && sudo apt install goreleaser

# macOS:
# brew install goreleaser

# Windows:
# choco install goreleaser

# Option 2: Download and verify manually
# Download the latest release
curl -L -o goreleaser.tar.gz https://github.com/goreleaser/goreleaser/releases/latest/download/goreleaser_Linux_x86_64.tar.gz

# Verify checksum (replace with actual checksum from release page)
echo "expected_checksum goreleaser.tar.gz" | sha256sum -c

# Extract and install
tar -xzf goreleaser.tar.gz
sudo mv goreleaser /usr/local/bin/

# Run platform-specific build
goreleaser release --config .goreleaser-<platform>.yaml

Troubleshooting#

Common Issues#

  1. Cross-compilation failures: Use native builders for each platform
  2. Missing system headers: Ensure proper toolchain setup
  3. Framework linking issues: Use native cargo instead of cargo-zigbuild

Debug Commands#

# Test build locally
goreleaser build --config .goreleaser-macos.yaml --snapshot

# Check configuration
goreleaser check --config .goreleaser-macos.yaml

# Verbose output
goreleaser release --config .goreleaser-macos.yaml --verbose

Release Artifacts#

Each platform build creates:

  • procmond: Process monitoring daemon
  • daemoneye-agent: Detection orchestrator
  • daemoneye-cli: Command-line interface

All binaries are uploaded to GitHub releases with platform-specific naming.

Security Considerations#

  • All builds use --release flag for optimized binaries
  • Dependencies are locked with Cargo.lock
  • No cross-compilation reduces attack surface
  • Native builds ensure proper system integration
Documents
Alerting and Detection Engine
Alerting and Detection Engine
Alerting and Detection Engine Updates
Alerting Data Model and Configuration Updates
core-monitoring
query-pipeline
windows-process-collector
API Reference
Checksum Implementation
collector-core Capabilities and Lifecycle
ProcessEventSource Configuration and Integration
protobuf-ipc
Architecture
Checksum Implementation
Extensible Monitoring Architecture
IPC Migration to interprocess Crate
process-management
ProcessEventSource Configuration and Integration
query-pipeline
security_design_overview
topic-hierarchy-design
CI and Automation Workflows
CI and Automation Hooks
Docker Container Best Practices
release-process
CollectionEvent Model
integration-guide
collector-core Framework
collector-core Capabilities and Lifecycle
collector-core Framework
core-monitoring
Extensible Monitoring Architecture
integration-guide
IPC Endpoint Path Generation
multi_collector_coordination
Process Event Source Integration
process-management
ProcessEventSource Configuration and Integration
procmond Process Collection Integration
procmond Refactor and Integration
README
Contributing
Docker Container Best Practices
README
Testing Standards and Tooling
Event Bus Architecture
message-schemas
protobuf-ipc
README
topic-hierarchy
topic-hierarchy-design
IPC Protocol
Checksum Implementation
CRC32C Checksum Usage in IPC
IPC Endpoint Path Generation
IPC Migration to interprocess Crate
IPC Protocol and Migration
ipc_client_validation
procmond Refactor and Integration
protobuf-ipc
Testing Strategy for CLI and IPC
Platform-Specific Event Capture
core-monitoring
windows-process-collector
procmond
core-monitoring
Process Event Source Integration
process-management
ProcessEventSource Configuration and Integration
procmond Process Collection Integration
procmond Refactor and Integration
protobuf-ipc
windows-process-collector
Project Overview
README
SECURITY
security_design_overview
Rust Async Patterns
IPC Migration to interprocess Crate
IPC Protocol and Migration
Rust Async Patterns and Best Practices
Security
IPC Endpoint Path Generation
IPC Migration to interprocess Crate
SECURITY
security_design_overview
Testing Strategy
Alerting and Detection Engine Updates
CI and Automation Hooks
collector-core Capabilities and Lifecycle
CRC32C Checksum Usage in IPC
IPC Migration to interprocess Crate
ipc_client_validation
ProcessEventSource Configuration and Integration
procmond Refactor and Integration
testing
Testing Standards and Tooling
Testing Strategy for CLI and IPC
Workspace Management
README
release-process
SECURITY
Workspace and Dependency Management
SUMMARY
architecture
collector-core-framework
contributing
correlation-metadata
embedded-broker-architecture
eventbus-architecture
getting-started
introduction
ipc-implementation
macos-process-collector
project-overview
rpc-eventbus-architecture
rpc-patterns
security
sql-dialect-reference
system-architecture
task-distribution
technical