Skip to content

ci(workflow): Enhance desktop build process and add Linux variants#238

Merged
rainxchzed merged 2 commits intomainfrom
debian12-compatibility-fix
Feb 13, 2026
Merged

ci(workflow): Enhance desktop build process and add Linux variants#238
rainxchzed merged 2 commits intomainfrom
debian12-compatibility-fix

Conversation

@rainxchzed
Copy link
Copy Markdown
Member

@rainxchzed rainxchzed commented Feb 13, 2026

This commit improves the build-desktop-platforms GitHub Actions workflow by centralizing configurations, enabling Gradle caching features, and expanding Linux build compatibility.

  • feat(ci): Introduced a build matrix for the Linux job to produce two .deb package variants:
    • A modern version built on ubuntu-latest (24.04) for newer distributions.
    • A debian12-compat version built on ubuntu-22.04 for broader compatibility with older systems like Debian 12.
  • refactor(ci): Centralized common settings like JAVA_VERSION and JAVA_DISTRIBUTION into a global env block for easier maintenance.
  • perf(ci): Enabled Gradle's configuration cache (-Dorg.gradle.configuration-cache=true) and secure remote build cache (cache-encryption-key) to accelerate build times. Removed redundant --no-daemon and --parallel flags from Gradle commands as they are now managed via GRADLE_OPTS.

Summary by CodeRabbit

  • Chores
    • Improved build infrastructure for better reliability across all platforms
    • Enhanced Linux build support for additional OS variants (ubuntu-latest and ubuntu-22.04)
    • Streamlined cross-platform build configuration for consistent deployment experience

This commit improves the `build-desktop-platforms` GitHub Actions workflow by centralizing configurations, enabling Gradle caching features, and expanding Linux build compatibility.

- **feat(ci):** Introduced a build matrix for the Linux job to produce two `.deb` package variants:
    - A `modern` version built on `ubuntu-latest` (24.04) for newer distributions.
    - A `debian12-compat` version built on `ubuntu-22.04` for broader compatibility with older systems like Debian 12.
- **refactor(ci):** Centralized common settings like `JAVA_VERSION` and `JAVA_DISTRIBUTION` into a global `env` block for easier maintenance.
- **perf(ci):** Enabled Gradle's configuration cache (`-Dorg.gradle.configuration-cache=true`) and secure remote build cache (`cache-encryption-key`) to accelerate build times. Removed redundant `--no-daemon` and `--parallel` flags from Gradle commands as they are now managed via `GRADLE_OPTS`.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Feb 13, 2026

Caution

Review failed

The pull request is closed.

Walkthrough

This pull request centralizes Java and Gradle configuration in a GitHub Actions workflow by introducing global environment variables, adding retry mechanisms to build steps, and implementing a matrix strategy for Linux builds with multiple OS variants (ubuntu-latest and ubuntu-22.04). The workflow now drives platform-specific JDK setup through environment variables instead of hard-coded values.

Changes

Cohort / File(s) Summary
GitHub Actions Workflow Configuration
.github/workflows/build-desktop-platforms.yml
Centralized Java/Gradle environment variables (JAVA_VERSION, JAVA_DISTRIBUTION, GRADLE_OPTS), added cache-encryption-key to Setup Gradle step, replaced hard-coded JDK setup values with environment-driven config across Windows/macOS/Linux, introduced retry mechanisms for build steps (removed explicit --no-daemon and --parallel flags), extended Linux builds with matrix strategy for OS variants (ubuntu-latest and ubuntu-22.04 with debian12-compat label), and updated Linux installer artifact naming to reflect matrix labels.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • PR #151: Modifies the same workflow file with overlapping changes to Java/Gradle setup and platform matrix definitions across build jobs.
  • PR #115: Updates the same GitHub Actions workflow with similar matrix-based build modifications, artifact naming adjustments, and retry/packaging behavior changes.

Poem

🐰 Workflows now dance with variables so clear,
Matrix strategies blooming far and near,
Retries whisper softly through the build,
Gradle's cache grows as dreams are fulfilled,
Cross-platform harmony, at last we cheer! 🎉

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch debian12-compatibility-fix

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rainxchzed rainxchzed merged commit f5d6abf into main Feb 13, 2026
1 check passed
@rainxchzed rainxchzed deleted the debian12-compatibility-fix branch February 13, 2026 05:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant