Files
app-flutter/.gitea/workflows/ci.yaml
T
mikkeli bf8a99fb23
/ crosscheck (push) Successful in 1s
CI / Analyze & Test (push) Successful in 10s
CI / Debug APK (push) Successful in 24s
Captures page: the recording checklist with one start/end button
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
2026-10-13 11:12:44 +09:00

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