wow-backup/docs/plans/feature-6-release-pipeline.md
2026-08-24 16:13:38 +01:00

1.5 KiB

Feature 6: Build Automation & Release Pipeline

Status: Completed

Context

Automated multi-platform packaging and release pipeline for WoW Backup using GitHub Actions. Whenever changes are merged/pushed to the main branch, the pipeline calculates the next release version and tag, compiles native distributables for macOS, Windows, and Linux, and attaches all packaged binaries to a published GitHub Release.

Deliverables

  1. Dynamic Versioning in Gradle:
    • composeApp/build.gradle.kts dynamically reads appVersion via -PappVersion=... or defaults to 1.0.0.
    • BuildConfig.kt and native distribution packaging tasks respect the injected version.
  2. GitHub Actions Workflow (.github/workflows/release.yml):
    • Automated semantic patch version computation and git tagging on push to main and workflow_dispatch.
    • Parallel runner matrix (macos-latest, windows-latest, ubuntu-latest) packaging .dmg, .msi, and .deb.
    • Automated GitHub Release creation with attached artifacts and release notes.
  3. Installation Guide (INSTALL.md):
    • Detailed user installation guide for macOS (Gatekeeper bypass), Windows (SmartScreen bypass), and Linux (APT/DPKG).
    • Linked directly from README.md.

Verification

  • ./gradlew :composeApp:generateBuildConfig -PappVersion=1.2.3 generates BuildConfig.VERSION = "1.2.3".
  • Packaging tasks (packageDmg, packageMsi, packageDeb) are wired and functional.
  • Workflow YAML syntax validated.