robot a7273dce2b
CI / Lint (pull_request) Successful in 2m29s
CI / Test (pull_request) Successful in 2m24s
CI / Build Android (pull_request) Successful in 13m17s
CI / Build iOS (pull_request) Canceled after 0s
fix(devcontainer): restore python venv init and mounts section
Kyle's Comment #155: the python venv initialization was removed from
postCreateCommand, breaking tools like the whitelabeler script that
depend on python dependencies. Restored the full init chain plus the
mounts section that was also lost.
2026-08-03 23:06:33 +00:00

KRYZ Go!

About

A Flutter application for KRYZ LP-FM 98.5 Mariposa. This is our Mobile application that ties our listiners into our radio station while on the Go!

Operations

Build

flutter build <platform>

Will build a release build for <platform>.

Running in Debug mode

With a device or devices connected:

flutter run <platform>

Will execute the application in the debugging sandbox.

Building and deploying in release mode (required for iOS launcher.)

Assumes the device is connected meaningfully to the session: flutter build <platform> && flutter install

Flutter build tools

Renaming the app

dart run flutter_name_manager:rename_app --name "KRYZ Go!"

Updating the launcher icons

dart run flutter_launcher_icons

CI/CD Pipeline

This project uses Gitea Actions for continuous integration and release automation.

Pipeline Overview

┌─────────┐     ┌────────┐     ┌──────────────┐     ┌──────────────┐
│  Lint   │───►│  Test  │───►│ Build Android │     │  Build iOS   │
│         │     │        │     │ (APK + AAB)  │     │ (self-hosted)│
└─────────┘     └────────┘     └──────────────┘     └──────────────┘
     │                              │                      │
     ▼                              ▼                      ▼
  dart fmt                    flutter test             flutter build ios
  flutter analyze                                  (--no-codesign fallback)

Workflows

CI (.gitea/workflows/ci.yml)

Triggers on:

  • Push to main or develop
  • Pull requests targeting main

Stages:

  1. Lint — dart format --fix + flutter analyze --fatal-warnings
  2. Test — flutter test (coverage on main branch pushes)
  3. Build Android — APK + AAB release builds with artifact upload
  4. Build iOS — flutter build ios --release --no-codesign (runs on self-hosted macOS runner)

Release (.gitea/workflows/release.yml)

Triggers on:

  • Git tags matching v* (e.g., v1.0.0)

Stages:

  1. Lint — dart format --set-exit-if-changed + flutter analyze --fatal-warnings
  2. Test — flutter test
  3. Build Android Release — Signed APK + AAB
  4. Build iOS Release — Signed IPA (or --no-codesign fallback)
  5. Publish Release — Creates Gitea release + uploads artifacts

Configuration

Secret Required Description
ANDROID_KEYSTORE_BASE64 No Base64-encoded Android release keystore
ANDROID_KEYSTORE_PASS No Keystore password
ANDROID_KEY_ALIAS No Key alias
ANDROID_KEY_PASS No Key password
APPLE_CERTIFICATE_P12 No Base64-encoded Apple signing certificate
APPLE_CERTIFICATE_PASS No Certificate password
APPLE_PROVISION_PROFILE No Base64-encoded provisioning profile
GITEA_TOKEN Yes (Release) Token for creating Gitea releases

Without signing secrets, builds use debug keys or --no-codesign.

CI Status

CI

Troubleshooting

  • Stubs missing: The ci_stub_gen.py script auto-generates lib/generated/*.dart stubs when theme.json is absent.
  • macOS runner unavailable: The iOS stage uses self-hosted label. Ensure a macOS Gitea runner is registered.
  • Format checks: CI uses dart format --fix (auto-fix). Release uses --set-exit-if-changed (gate).
S
Description
No description provided
Readme
4 MiB
0 Stars 2 Watchers 0 Forks
Languages
Dart 35.4%
Kotlin 19.1%
Python 13.1%
C++ 12.9%
CMake 10.3%
Other 9.2%