mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-11-11 12:27:50 +01:00
billsplit was a standalone Flutter app in ~/Downloads with one commit and no git remote — that directory was the only copy of its history. Three things the move needed beyond copying the tree: - The root .gitignore silently swallowed 32 of its files (*.png, *.ico, *.manifest). Ignored files do not error on `git add`, they just vanish, so this would have committed an app that cannot build. Added a trailing block of ! overrides plus .binary-allowlist (which did not exist yet) — the documented in-repo exception for binaries a build genuinely needs. The ../testsAndMisc_binaries/ symlink scheme does not apply: those directories are gone, and a symlinked PNG breaks a fresh clone. - billsplit/.github/workflows/ci.yaml was inert once nested; GitHub only reads workflows at the repository root. Relocated with a working-directory and a billsplit/** path filter. - The app's coverage gate moved to python_pkg/billsplit_coverage/ so every Python file stays under python_pkg/, and gained a test suite at 100% branch coverage as that location requires. billsplit/ now holds only Dart. Also replaces the stock Flutter icon with a family icon from the shared generator. The glyph is a filled silhouette because the family's 72px stroke cannot carry a fine torn edge, and the split is an evenodd-cut perforation so the holes stay transparent on the foreground and monochrome layers. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
44 lines
1.3 KiB
YAML
44 lines
1.3 KiB
YAML
name: billsplit CI
|
|
|
|
# Relocated here from billsplit/.github/workflows/ci.yaml when the app moved
|
|
# into this monorepo — GitHub only reads workflows from the repository root,
|
|
# so the nested copy would have been inert.
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- "billsplit/**"
|
|
- ".github/workflows/billsplit-ci.yml"
|
|
pull_request:
|
|
branches: [main]
|
|
paths:
|
|
- "billsplit/**"
|
|
- ".github/workflows/billsplit-ci.yml"
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: billsplit
|
|
|
|
jobs:
|
|
quality:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: subosito/flutter-action@v2
|
|
with:
|
|
channel: stable
|
|
- run: flutter pub get
|
|
- name: Format (fails on diff)
|
|
run: dart format --set-exit-if-changed .
|
|
- name: Analyze (infos are fatal)
|
|
run: flutter analyze --fatal-infos
|
|
- name: Tests with coverage
|
|
run: flutter test --coverage
|
|
# Runs from the repository root: every Python file in this repo lives
|
|
# under python_pkg/, so the gate is a module there rather than a script
|
|
# inside the app. It resolves billsplit/ from its own location.
|
|
- name: Enforce 100% line coverage
|
|
working-directory: .
|
|
run: python3 -m python_pkg.billsplit_coverage
|