feat: add cross-compile and release pipeline
- Enhanced Makefile with cross-compilation for linux/amd64, linux/arm64, darwin/arm64, windows/amd64, windows/arm64 - Added GitHub Actions CI workflow for testing on all platforms - Added GitHub Actions Release workflow triggered by version tags - Added VERSION file for version tracking - Added scripts/release.sh for automated release process - Added Dockerfile for containerized builds - Added CONTRIBUTING.md with release process documentation - Added CHANGELOG.md for version tracking - Updated .gitignore to exclude build artifacts - Fixed unused variable in cmd/obm/main.go - Version now injected via ldflags (main.version, main.gitCommit, main.buildTime)
This commit is contained in:
parent
33d9a2cb2e
commit
d080e107d0
15 changed files with 1853 additions and 12 deletions
125
deploy.yaml.example
Normal file
125
deploy.yaml.example
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
# OpenBoatmobile Deployment Configuration
|
||||
# Usage: obm deploy --config deploy.yaml
|
||||
#
|
||||
# This file defines all configuration for non-interactive CI/CD deployment.
|
||||
# All required fields must be provided. Optional fields have sensible defaults.
|
||||
|
||||
# Required: Agent framework selection
|
||||
# Options: hermes, openclaw
|
||||
framework: hermes
|
||||
|
||||
# Cloud provider configuration
|
||||
provider:
|
||||
# Required: Cloud provider name
|
||||
# Options: hetzner, digitalocean
|
||||
name: hetzner
|
||||
|
||||
# Required: API token (sensitive)
|
||||
# Hetzner: Get from https://console.hetzner.cloud/ → Security → API Tokens
|
||||
# DigitalOcean: Get from https://cloud.digitalocean.com/account/api/tokens
|
||||
token: "your-api-token-here"
|
||||
|
||||
# SSH key configuration
|
||||
ssh:
|
||||
# For Hetzner: Key name as shown in Hetzner Cloud Console
|
||||
names:
|
||||
- "my-ssh-key"
|
||||
# For DigitalOcean: Key fingerprints
|
||||
# fingerprints:
|
||||
# - "aa:bb:cc:dd:ee:ff"
|
||||
|
||||
# Server configuration
|
||||
server:
|
||||
# Server hostname (default: agent-gateway)
|
||||
name: "my-agent-gateway"
|
||||
|
||||
# Agent name for display (default: same as framework)
|
||||
agent_name: "hermes"
|
||||
|
||||
# Timezone (default: UTC)
|
||||
timezone: "UTC"
|
||||
|
||||
# === Hetzner-specific ===
|
||||
# Location: ash (Ashburn, VA), fsn1 (Falkenstein), nbg1 (Nuremberg), hel1 (Helsinki)
|
||||
location: "ash"
|
||||
# Server type: cpx21 (recommended), cx23, cpx31 (default: cpx21)
|
||||
type: "cpx21"
|
||||
|
||||
# === DigitalOcean-specific ===
|
||||
# region: "nyc3"
|
||||
# size: "s-2vcpu-4gb"
|
||||
|
||||
# Inference provider configuration
|
||||
inference:
|
||||
# Required: Inference provider
|
||||
# Options: venice, openrouter, openai, anthropic, custom
|
||||
provider: venice
|
||||
|
||||
# Required: API key (sensitive)
|
||||
# Venice: Get from https://venice.ai → Settings → API Keys
|
||||
api_key: "your-venice-api-key"
|
||||
|
||||
# Optional: Base URL (required for custom provider)
|
||||
# base_url: "https://api.custom.com/v1"
|
||||
|
||||
# Optional: Primary model (default depends on provider)
|
||||
primary_model: "zai-org-glm-5"
|
||||
|
||||
# Optional: Model display name
|
||||
primary_model_name: "GLM 5"
|
||||
|
||||
# Optional: Fallback models in priority order
|
||||
fallback_models:
|
||||
# - "openai/gpt-4o"
|
||||
|
||||
# Optional: Fallback providers with their own API keys
|
||||
# fallbacks:
|
||||
# - provider: openai
|
||||
# api_key: "sk-..."
|
||||
# - provider: openrouter
|
||||
# api_key: "sk-or-..."
|
||||
|
||||
# Optional: Tailscale VPN configuration
|
||||
tailscale:
|
||||
enabled: true
|
||||
# Required if enabled: Auth key from https://login.tailscale.com/admin/settings/keys
|
||||
auth_key: "tskey-auth-..."
|
||||
# Optional: Tailnet domain (default: tailnet)
|
||||
tailnet: "mytailnet"
|
||||
|
||||
# Optional: Discord integration
|
||||
discord:
|
||||
enabled: false
|
||||
# Required if enabled: Bot token from Discord Developer Portal
|
||||
# bot_token: ""
|
||||
# Required if enabled: Server/guild ID
|
||||
# server_id: ""
|
||||
# Optional: Allowed user IDs
|
||||
# user_ids:
|
||||
# - "123456789"
|
||||
# Hermes-specific:
|
||||
# home_channel: ""
|
||||
# auto_thread: true
|
||||
|
||||
# Optional: Hermes-specific configuration
|
||||
# hermes:
|
||||
# docker_enabled: true
|
||||
|
||||
# Optional: OpenClaw-specific configuration
|
||||
# openclaw:
|
||||
# version: "lts"
|
||||
# node_version: "22"
|
||||
# enable_swap: true
|
||||
# swap_size_gb: 2
|
||||
# enable_fail2ban: true
|
||||
# enable_unattended_upgrades: true
|
||||
|
||||
# Optional: Hermes gateway configuration
|
||||
# gateway:
|
||||
# token: ""
|
||||
# allowed_users: ""
|
||||
# allow_all: true
|
||||
|
||||
# Optional: Additional integrations
|
||||
# integrations:
|
||||
# brave_search_api_key: ""
|
||||
Loading…
Add table
Add a link
Reference in a new issue