Skip to content

feat(mla): A1 Tokens & UI-Design für die GTK-Shell (#91) #69

feat(mla): A1 Tokens & UI-Design für die GTK-Shell (#91)

feat(mla): A1 Tokens & UI-Design für die GTK-Shell (#91) #69

Workflow file for this run

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
name: Dart
on:
push:
branches: [ "main", "hardening/**" ]
pull_request:
branches: [ "main" ]
jobs:
build:
# Pinned rather than ubuntu-latest: the produced binaries carry the glibc
# of whatever image builds them, so a silent move of `latest` to a newer
# Ubuntu would make the artifacts refuse to start on 24.04-based systems
# (Zorin OS 18, Linux Mint 22, Ubuntu 24.04 itself).
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
# The cheap gates run before the packaging steps: they need no GTK
# toolchain and finish in seconds, so a broken change fails here rather
# than after a full desktop build.
- run: flutter pub get
- name: Version numbers agree
run: bash tool/check-versions.sh
- name: Formatting
run: dart format --output=none --set-exit-if-changed lib test
# The tree was brought to zero findings in the 0.8.0 hardening pass, so
# this is now a gate rather than a wall of pre-existing noise.
- name: Static analysis
run: flutter analyze
- run: flutter test
# The root command runner is Python and has its own tests. They need no
# Flutter and no root — the privileged entry point is a thin wrapper
# around the module they cover.
- name: Root runner tests
run: python3 -m unittest discover -s tests -t .
working-directory: additional/python
# MLA-Next #91: GTK token gate — tokens.css/tokens-dark.css consistent
# with docs/mla-next/TOKENS.md, WCAG-AA text pairs, no hardcoded colors
# in the shell. Plain Python, no GTK toolchain needed.
- name: GTK token gate
run: python3 -m unittest discover -s prototype/gtk/tests
# MLA-Next: the pure-Dart core package (#59/#60) runs its own gates with
# plain `dart` from the same SDK — no Flutter, no GTK toolchain, no
# display (issue #59 requires the compiled probe to run headless in CI).
- name: la_core pub get
run: dart pub get
working-directory: packages/la_core
- name: la_core static analysis
run: dart analyze
working-directory: packages/la_core
- name: la_core formatting
run: dart format --output=none --set-exit-if-changed .
working-directory: packages/la_core
- name: la_core tests
run: dart test
working-directory: packages/la_core
- name: la_core headless binary
run: |
dart compile exe bin/la_probe.dart -o /tmp/la_probe
/tmp/la_probe --version
working-directory: packages/la_core
- run: sudo apt-get update -y
- run: sudo apt-get install -y ninja-build libgtk-3-dev libkeybinder-3.0-0 libkeybinder-3.0-dev mesa-utils
- run: flutter config --enable-linux-desktop
- run: bash build-deb.sh
- name: Upload deb
uses: actions/upload-artifact@v4
with:
name: linux-assistant-deb
path: linux-assistant.deb