feat(desktop): Conveyor cross-platform packaging#5134
Draft
jamesarich wants to merge 3 commits intomainfrom
Draft
feat(desktop): Conveyor cross-platform packaging#5134jamesarich wants to merge 3 commits intomainfrom
jamesarich wants to merge 3 commits intomainfrom
Conversation
…port Add charting, detail card display, and CSV export for up to 8 1-Wire temperature sensor channels from the environment_metrics.one_wire_temperature repeated field. - EnvironmentMetricsState: ONE_WIRE_TEMP_1..8 enum entries with getOrNull() access (safely returns null when firmware does not populate the field) - EnvironmentCharts: LEGEND_DATA_4 with per-channel labels and distinct colours - CommonCharts: LegendData.labelOverride for per-instance legend labels - EnvironmentMetrics: OneWireTemperatureDisplay composable in the detail card - EnvironmentMetrics component: inline 1-Wire chip display with temp formatting - MetricsViewModel: Fahrenheit conversion for one_wire_temperature in CSV export No version gating needed — the proto field defaults to an empty list on older firmware, so the UI elements are naturally hidden when no data is reported.
Replace hardcoded one-wire temperature indices (0-7) with a loop over ONE_WIRE_SENSOR_COUNT constant to fix CyclomaticComplexMethod and MagicNumber detekt violations. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the 4-OS matrix desktop build in release.yml with a single Conveyor runner on ubuntu-24.04 that cross-compiles all platform packages (macOS, Windows, Linux) from one machine. - Add Conveyor Gradle plugin (dev.hydraulic.conveyor v2.0) - Add conveyor.conf with app metadata, icons, JVM modules, entitlements - Add ci.conveyor.conf for CI overrides (production URL, Apple notarization) - Add defaults.conf.example template for local signing keys - Update release.yml: single Conveyor job replaces 4-OS matrix - Add 4 optional secrets: CONVEYOR_SIGNING_KEY, APPLE_TEAM_ID, APPLE_ID, APPLE_APP_SPECIFIC_PASSWORD - Add Conveyor Maven repo to settings.gradle.kts Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the 4-OS matrix desktop build with Conveyor — a single Linux runner that cross-compiles macOS, Windows, and Linux packages in ~52 seconds.
Relates to #5132 (desktop ship-readiness metadata).
What changed
desktop/conveyor.confdesktop/ci.conveyor.confdesktop/defaults.conf.exampledesktop/build.gradle.ktsdev.hydraulic.conveyorplugin v2.0settings.gradle.kts.github/workflows/release.yml.gitignoreOutput artifacts (from single
ubuntu-24.04runner)download.htmlwith OS detectionNew secrets (optional, for signing/notarization)
CONVEYOR_SIGNING_KEYAPPLE_TEAM_IDAPPLE_IDAPPLE_APP_SPECIFIC_PASSWORDTesting