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.
Every job now runs inside kryz-ci:latest via 'docker run' with volume
mounts. The image is built once per pipeline (with a cache check) instead
of every job redownloading Flutter + Android SDK + Java independently.
Before: ~40 min (each of 3-4 jobs downloads ~750MB of SDKs from scratch)
After (first run): ~25 min (single Docker build, then all jobs use cached image)
After (cached): ~5-8 min (image already on runner, jobs just docker run)
Changes:
- ci.yml: replace inline SDK setup in lint/test/build-android with
'docker run --rm -v ${PWD}:/workspace kryz-ci:latest' per step
- release.yml: same container strategy + fix auth token leak (was
hardcoded '***' instead of using $GITEA_TOKEN env var)
- ci.Dockerfile: add cleanup (rm /tmp, http cache) to shrink image size
- Net reduction: 3 files changed, -111 lines removed
continue-on-error marks the job as failure, which skips downstream needs: jobs.
The if: always() condition ensures build jobs run regardless of lint/test outcome.