The publish workflow's docker-build step for the operator image was
spending ~2 minutes of every run exporting cache to GHA (per build
log: `sending cache export 88.3s done`, total step 3m37s). The
`golang:1.24` base + builder-stage layers were being uploaded to GHA
cache on every push because `cache-to` was hardcoded to `mode=max`.
Changes:
- Add `cacheMode` to `DockerConfig` (defaults to `max` — the Python
images still benefit from caching every intermediate stage).
- Plumb it through `DockerBuildAction` and into the `--cache-to`
flag in `_execute_docker_build`.
- Always emit `compression=zstd` and `ignore-error=true` on the
cache-to directive: smaller blobs to upload, and a flaky cache
push no longer fails a build whose image is already on the registry.
- Set `"cacheMode": "min"` on `operator/package.json`. The operator
is a tiny static Go binary in distroless; caching the golang base
+ module download layers costs more upload time than the rebuild
saves.
Co-authored-by: Claude <noreply@anthropic.com>
* chore: CI/testing improvements for parallel test execution
- Add workflows-dev pytest command with parallel test runner
- Add pytest-xdist for parallel test execution (-nauto)
- Add timeouts to prevent test hangs (--timeout=10/60/120)
- Use module-scoped async fixtures for faster tests
- Remove mypy in favor of basedpyright/ty type checking
- Add test-docker CI job for integration tests with testcontainers
- Exclude integration tests from Python 3.9/3.14 in CI matrix