1
0
Fork 0

Add Docker build and cache cleanup steps in CI, prevent redundant builds in Swarm E2E tests

- Updated GitHub workflow to include Docker cache cleanup and image build steps.
- Modified Swarm E2E test logic to skip Docker image build if it already exists, optimizing CI performance.
This commit is contained in:
Joao Gilberto Magalhaes 2026-02-18 16:42:44 -05:00
parent 3fd0fe0d46
commit 3710b08995
2 changed files with 21 additions and 2 deletions

View file

@ -60,14 +60,25 @@ _cloudflare_config_created = False
def ensure_haproxy_image():
"""Build byjg/easy-haproxy:local from source at the start of the test session.
Always builds on the first call so tests run against the current codebase,
never a stale image left over from a previous session or docker compose run.
If the image already exists (e.g. pre-built by a CI step), the build is
skipped so that CI can control how/when the image is built without the
pytest session re-triggering a potentially slow or hanging `docker build`.
Subsequent calls within the same session are no-ops (image already built).
"""
global _swarm_image_built
if _swarm_image_built:
return
# Skip build if image already exists (e.g. pre-built in CI)
inspect = subprocess.run(
["docker", "image", "inspect", "byjg/easy-haproxy:local"],
capture_output=True,
)
if inspect.returncode == 0:
print("\n ✓ byjg/easy-haproxy:local already exists, skipping build")
_swarm_image_built = True
return
project_root = BASE_DIR.parent
print("\n → Building byjg/easy-haproxy:local from source...")
subprocess.run(