bf8a99fb23
Steps come from a bundled copy of contracts checklists/ (assets/contracts/, refreshed by tool/sync-contracts.sh), not from Dart. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DDwfd6Ki8UfG4hK6W5YpJz
65 lines
1.6 KiB
YAML
65 lines
1.6 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
paths:
|
|
- 'lib/**'
|
|
- 'assets/**'
|
|
- 'test/**'
|
|
- 'android/**'
|
|
- 'pubspec.yaml'
|
|
- 'pubspec.lock'
|
|
- '.gitea/workflows/**'
|
|
pull_request:
|
|
branches: [ master ]
|
|
workflow_dispatch:
|
|
|
|
# Same self-hosted runner shape as android-stuff (halogen, host mode, label
|
|
# flutter-android): the toolchain on the host is the one that verified the
|
|
# release, and nothing installs per run. Host mode is also what keeps Gradle and
|
|
# pub caches warm between runs.
|
|
|
|
jobs:
|
|
analyze:
|
|
name: Analyze & Test
|
|
runs-on: flutter-android
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Toolchain
|
|
run: |
|
|
flutter --version
|
|
echo "ANDROID_HOME=${ANDROID_HOME:?not set on this runner}"
|
|
flutter-android-preflight .
|
|
|
|
- name: Get dependencies
|
|
run: flutter pub get
|
|
|
|
- name: Analyze
|
|
run: flutter analyze
|
|
|
|
- name: Test
|
|
run: flutter test
|
|
|
|
apk:
|
|
name: Debug APK
|
|
runs-on: flutter-android
|
|
needs: [analyze]
|
|
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Get dependencies
|
|
run: flutter pub get
|
|
|
|
# Debug-signed: this is a side-loaded in-car display, not a store release.
|
|
- name: Build APK
|
|
run: flutter build apk --debug
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: yukart-display-debug-apk
|
|
path: build/app/outputs/flutter-apk/app-debug.apk
|
|
if-no-files-found: error
|