Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
be3e929
Add continuous build CI
Gold872 Apr 25, 2025
25d001a
Install necessary build dependencies (whoops)
Gold872 Apr 25, 2025
30467dc
Changed order of steps and CI name
Gold872 Apr 25, 2025
82fa1b8
Run on windows 2025
Gold872 Apr 25, 2025
5198248
Generate icons
Gold872 Apr 25, 2025
e455aeb
Add linux CI
Gold872 Apr 25, 2025
951643e
Remove old dependency overrides
Gold872 Apr 25, 2025
5953940
Add (hacky) fix for linux sdl3 build
Gold872 Apr 25, 2025
9d65c96
Upgrade msix package
Gold872 Apr 25, 2025
4595d92
Re-add gamepad override
Gold872 Apr 25, 2025
43bb77a
Pin flutter_sdl_gamepad version
Gold872 Apr 27, 2025
c55fb90
Zip windows exe and publish release on manual dispatch
Gold872 Apr 27, 2025
ddcf1c8
Fix sdl gamepad (again)
Gold872 Apr 27, 2025
ac8a6d5
Add innosetup installer
Gold872 Apr 27, 2025
be2ad88
(hopefully) fix linux build zipping
Gold872 Apr 27, 2025
ad24ecb
add . prefix for linux directory
Gold872 Apr 27, 2025
d9075aa
Should fix linux zip
Gold872 Apr 27, 2025
d91e696
Fix linux tar name
Gold872 Apr 27, 2025
00da297
Change release name
Gold872 Apr 27, 2025
363d17f
Fix caching for documentation workflow
Gold872 Apr 27, 2025
725e366
Fix android build
Gold872 May 12, 2025
08c21fb
Upgraded native build files
Gold872 May 12, 2025
a1b949c
Fix android build
Gold872 May 12, 2025
eda8ad1
Change app display name to "Rover Dashboard" on windows, mac, and linux
Gold872 May 12, 2025
824708d
Add job to build mini dashboard
Gold872 May 12, 2025
bfc5a2f
Move mini dashboard into separate job
Gold872 May 12, 2025
b40ff1b
Add environment variable for mini dashboard
Gold872 May 12, 2025
aed3949
Prevent multiple instances
Gold872 May 13, 2025
0fc13a8
Update to flutter 3.32.0
Gold872 May 29, 2025
9c8836f
Update workflow job names
Gold872 May 29, 2025
f51a93e
Use appdmg to create macos dmg
Gold872 May 29, 2025
25e07d7
Revert "Use appdmg to create macos dmg"
Gold872 May 29, 2025
84629fd
Use flutter 3.29.2
Gold872 May 29, 2025
adb1b36
Remove separate analyzer workflow
Gold872 May 29, 2025
d4b15df
Update gitignore and android build config
Gold872 Jul 10, 2025
3d4fb5c
Fix zip commands
Gold872 Jul 10, 2025
1b51625
Improve zip creation for mini dashboard
Gold872 Jul 10, 2025
5afe226
Upgrade to flutter 3.32.5
Gold872 Jul 27, 2025
d2e7611
Upgraded native build files
Gold872 Aug 22, 2025
32619ba
Fix build error in flutter 3.32
Gold872 Aug 22, 2025
a0a3b43
Upgrade Flutter to 3.35.2
Gold872 Aug 31, 2025
80f5142
Fix mini dashboard build path
Gold872 Sep 1, 2025
7ccc32b
Fix runtime error on linux
Gold872 Oct 5, 2025
a3c1086
Remove publish workflow
Gold872 Oct 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 0 additions & 34 deletions .github/workflows/analyze.yml

This file was deleted.

345 changes: 345 additions & 0 deletions .github/workflows/dashboard-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,345 @@
name: Dashboard

# Runs code analysis and builds the dashboard for all supported platforms
# This runs on every PR and new commit to main, and if ran on a manual dispatch,
# can put all build files into a new draft release

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
inputs:
publish-release:
type: boolean
description: Publish Draft Release
default: false
required: false

env:
FLUTTER_VERSION: 3.35.2

jobs:
analyze:
name: Analyze
runs-on: ubuntu-22.04

steps:
- name: Clone repo
uses: actions/checkout@v4

- name: Install Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
cache-path: ${{ runner.tool_cache }}/flutter/linux

- name: Analyze
run: flutter analyze --dartdocs

build-android:
name: Build Android APK
runs-on: ubuntu-22.04
steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: "zulu"
java-version: "17"

- name: Install Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
cache-path: ${{ runner.tool_cache }}/flutter/linux

- name: Install packages
run: flutter pub get

- name: Generate Icons
run: dart run flutter_launcher_icons

- name: Build APK
run: flutter build apk

- name: Upload APK
uses: actions/upload-artifact@v4
with:
name: dashboard_android
path: build/app/outputs/apk/release/app-release.apk

build-windows:
name: Build Windows
runs-on: windows-2025
steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Install Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
cache-path: ${{ runner.tool_cache }}/flutter/windows

- name: Install packages
run: flutter pub get

- name: Flutter Doctor
run: flutter doctor -v

- name: Generate Icons
run: dart run flutter_launcher_icons

- name: Build Windows
run: flutter build windows

- name: Zip windows executable
working-directory: build/windows/x64/runner/Release
run: Compress-Archive -Path * -DestinationPath ${{ github.workspace }}/dashboard_windows_portable.zip

- name: Upload windows portable
uses: actions/upload-artifact@v4
with:
name: dashboard_windows_portable
path: dashboard_windows_portable.zip

- name: Build windows installer
run: |
choco install innosetup -y
& "C:\Program Files (x86)\Inno Setup 6\ISCC.exe" windows_installer_script.iss

- name: Upload windows installer
uses: actions/upload-artifact@v4
with:
name: dashboard_windows_installer
path: build/windows/x64/runner/installer/rover-dashboard-setup.exe
if-no-files-found: error

build-msix:
name: Build Windows MSIX
runs-on: windows-2025
env:
windows_certificate: ${{ secrets.WINDOWS_CERTIFICATE }}
steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Load certificate
run: |
echo "${{ env.windows_certificate }}" > windows_certificate_decoded.txt
openssl enc -base64 -d -in windows_certificate_decoded.txt -out windows_certificate.pfx

- name: Install Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
cache-path: ${{ runner.tool_cache }}/flutter/windows

- name: Install packages
run: flutter pub get

- name: Flutter Doctor
run: flutter doctor -v

- name: Generate Icons
run: dart run flutter_launcher_icons

- name: Build MSIX
run: dart run msix:create

- name: Upload MSIX
uses: actions/upload-artifact@v4
with:
name: dashboard_msix
path: build/windows/x64/runner/Release/dashboard.msix
if-no-files-found: error

- name: Upload MSIX
uses: actions/upload-artifact@v4
with:
name: trust_msix
path: windows/trust_windows.bat
if-no-files-found: error

build-macos:
name: Build MacOS
runs-on: macos-latest
steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Install Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
cache-path: ${{ runner.tool_cache }}/flutter/macos

- name: Install packages
run: flutter pub get

- name: Flutter Doctor
run: flutter doctor -v

- name: Install build dependencies
run: brew install automake libtool

- name: Generate Icons
run: dart run flutter_launcher_icons

- name: Build MacOS
run: flutter build macos

- name: Create macOS DMG
uses: L-Super/[email protected]
with:
dmg_name: dashboard_macos
src_dir: build/macos/Build/Products/Release/rover_dashboard.app

- name: Upload DMG
uses: actions/upload-artifact@v4
with:
name: dashboard_macos
path: dashboard_macos.dmg
if-no-files-found: error

build-linux:
name: Build Linux
runs-on: ubuntu-22.04
steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Install Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
cache-path: ${{ runner.tool_cache }}/flutter/linux

- name: Install packages
run: flutter pub get

- name: Flutter Doctor
run: flutter doctor -v

- name: Install build dependencies
run: |
sudo apt-get update -y
sudo apt-get install -y libglu1-mesa ninja-build libgtk-3-dev liblzma-dev

- name: Generate Icons
run: dart run flutter_launcher_icons

- name: Build Linux
run: flutter build linux

- name: Zip Linux executable
working-directory: build/linux/x64/release/bundle
run: tar -czf ${{ github.workspace }}/dashboard_linux.tar.gz *

- name: Upload linux executable
uses: actions/upload-artifact@v4
with:
name: dashboard_linux
path: dashboard_linux.tar.gz
if-no-files-found: error

build-mini:
name: Build Mini Dashboard
runs-on: ubuntu-22.04
steps:
- name: Clone repository
uses: actions/checkout@v4

- name: Install Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
cache-path: ${{ runner.tool_cache }}/flutter/linux

- name: Install packages
run: flutter pub get

- name: Install flutterpi_tool
run: flutter pub global activate flutterpi_tool

- name: Build mini dashboard
run: dart run :build_mini

- name: Zip mini dashboard
working-directory: build/flutter-pi/aarch64-generic
run: tar -czf ${{ github.workspace }}/mini_dashboard_pi.tar.gz *

- name: Upload mini dashboard
uses: actions/upload-artifact@v4
with:
name: mini_dashboard_pi
path: mini_dashboard_pi.tar.gz
if-no-files-found: error

create-release:
name: Publish Release
runs-on: ubuntu-22.04
needs: [build-windows, build-msix, build-macos, build-linux]
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.publish-release }}
steps:
- name: Download Windows Portable
uses: actions/download-artifact@v4
with:
name: dashboard_windows_portable

- name: Download Windows Installer
uses: actions/download-artifact@v4
with:
name: dashboard_windows_installer

- name: Download Windows MSIX
uses: actions/download-artifact@v4
with:
name: dashboard_msix

- name: Download Windows trust script
uses: actions/download-artifact@v4
with:
name: trust_msix

- name: Download MacOS release
uses: actions/download-artifact@v4
with:
name: dashboard_macos

- name: Download Linux release
uses: actions/download-artifact@v4
with:
name: dashboard_linux

- name: Organize files
run: |
ls -al
mv dashboard.msix dashboard_msix.msix
mv rover-dashboard-setup.exe dashboard_windows_installer.exe

- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: |
dashboard_msix.msix
dashboard_windows_portable.zip
dashboard_windows_installer.exe
dashboard_macos.dmg
dashboard_linux.tar
trust_windows.bat
name: Dashboard Draft Release ${{ github.ref_name }}
generate_release_notes: true
fail_on_unmatched_files: true
draft: true
Loading