From b99b05fedb213570148aec8835470dad7a90a1ec Mon Sep 17 00:00:00 2001 From: Alexander Renz Date: Wed, 7 Jan 2026 13:48:39 +0100 Subject: [PATCH] ci: enable CGO for linux builds (required for SQLite catalog) --- .gitea/workflows/ci.yml | 27 +++++++++------- RELEASE_NOTES.md | 69 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 12 deletions(-) create mode 100644 RELEASE_NOTES.md diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 5610e59..e66f019 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -82,24 +82,27 @@ jobs: run: | mkdir -p release - # Linux amd64 - echo "Building linux/amd64..." - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o release/dbbackup-linux-amd64 . + # Install cross-compilation tools for CGO + apt-get update && apt-get install -y -qq gcc-aarch64-linux-gnu - # Linux arm64 - echo "Building linux/arm64..." - CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o release/dbbackup-linux-arm64 . + # Linux amd64 (with CGO for SQLite) + echo "Building linux/amd64 (CGO enabled)..." + CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o release/dbbackup-linux-amd64 . - # Darwin amd64 - echo "Building darwin/amd64..." + # Linux arm64 (with CGO for SQLite) + echo "Building linux/arm64 (CGO enabled)..." + CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o release/dbbackup-linux-arm64 . + + # Darwin amd64 (no CGO - cross-compile limitation) + echo "Building darwin/amd64 (CGO disabled)..." CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o release/dbbackup-darwin-amd64 . - # Darwin arm64 - echo "Building darwin/arm64..." + # Darwin arm64 (no CGO - cross-compile limitation) + echo "Building darwin/arm64 (CGO disabled)..." CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o release/dbbackup-darwin-arm64 . - # FreeBSD amd64 - echo "Building freebsd/amd64..." + # FreeBSD amd64 (no CGO - cross-compile limitation) + echo "Building freebsd/amd64 (CGO disabled)..." CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags="-s -w" -o release/dbbackup-freebsd-amd64 . echo "All builds complete:" diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md new file mode 100644 index 0000000..752717a --- /dev/null +++ b/RELEASE_NOTES.md @@ -0,0 +1,69 @@ +# v3.41.0 Release Notes + +## What's New in v3.41.0 + +### Features +- **Systemd Integration** - One-command install with `dbbackup install` +- **Prometheus Metrics** - HTTP exporter on port 9399 with `/metrics` and `/health` endpoints +- **Backup Catalog** - SQLite-based tracking of all backup operations +- **Automated CI/CD** - Gitea Actions pipeline with automated releases + +### Installation + +#### Quick Install (Recommended) +```bash +# Download for your platform +curl -LO https://git.uuxo.net/UUXO/dbbackup/releases/download/v3.41.0/dbbackup-linux-amd64 + +# Install with systemd service +chmod +x dbbackup-linux-amd64 +sudo ./dbbackup-linux-amd64 install --config /path/to/config.yaml +``` + +#### Available Binaries +| Platform | Architecture | Binary | +|----------|--------------|--------| +| Linux | amd64 | `dbbackup-linux-amd64` | +| Linux | arm64 | `dbbackup-linux-arm64` | +| macOS | Intel | `dbbackup-darwin-amd64` | +| macOS | Apple Silicon | `dbbackup-darwin-arm64` | +| FreeBSD | amd64 | `dbbackup-freebsd-amd64` | + +### Systemd Commands +```bash +dbbackup install --config config.yaml # Install service + timer +dbbackup install --status # Check service status +dbbackup install --uninstall # Remove services +``` + +### Prometheus Metrics +Available at `http://localhost:9399/metrics`: + +| Metric | Description | +|--------|-------------| +| `dbbackup_last_backup_timestamp` | Unix timestamp of last backup | +| `dbbackup_last_backup_success` | 1 if successful, 0 if failed | +| `dbbackup_last_backup_duration_seconds` | Duration of last backup | +| `dbbackup_last_backup_size_bytes` | Size of last backup | +| `dbbackup_backup_total` | Total number of backups | +| `dbbackup_backup_errors_total` | Total number of failed backups | + +### Security Features +- Hardened systemd service with `ProtectSystem=strict` +- `NoNewPrivileges=true` prevents privilege escalation +- Dedicated `dbbackup` system user (optional) +- Credential files with restricted permissions + +### Documentation +- [SYSTEMD.md](SYSTEMD.md) - Complete systemd installation guide +- [README.md](README.md) - Full documentation +- [CHANGELOG.md](CHANGELOG.md) - Version history + +### Bug Fixes +- Fixed exporter status detection in `install --status` +- Improved error handling in restore operations +- Better JSON escaping in CI release creation + +--- + +**Full Changelog**: https://git.uuxo.net/UUXO/dbbackup/compare/v3.40.0...v3.41.0