Summary
The 7 individual *-docker-image-build-and-push.yml workflows that trigger on push to main should be consolidated into a single matrix workflow, following the same pattern already used in apps-ci.yml.
Current State
There are 7 separate workflow files that all follow the same structure:
blog-docker-image-build-and-push.yml
admin-docker-image-build-and-push.yml
game-2048-docker-image-build-and-push.yml
auth-server-docker-image-build-and-push.yml
admin-legacy-server-docker-image-build-and-push.yml
blog-legacy-server-docker-image-build-and-push.yml
database-legacy-server-docker-image-build-and-push.yml
Each triggers on push to main with overlapping path filters (e.g., modules/**, libraries/**). A single commit touching modules/ triggers all 7 workflows independently, each pulling base images from Docker Hub separately.
Proposed Change
Consolidate into a single workflow (e.g., apps-build-and-push.yml) using dorny/paths-filter + a dynamic matrix strategy, exactly like apps-ci.yml already does. This:
- Reduces workflow file duplication.
- Provides a single place to add shared setup steps (e.g., pre-pulling base images once).
- Makes it easier to add new apps in the future.
Note: The nginx-docker-image-build-and-push.yml can remain separate since it uses a different Dockerfile and has distinct path filters.
Summary
The 7 individual
*-docker-image-build-and-push.ymlworkflows that trigger on push tomainshould be consolidated into a single matrix workflow, following the same pattern already used inapps-ci.yml.Current State
There are 7 separate workflow files that all follow the same structure:
blog-docker-image-build-and-push.ymladmin-docker-image-build-and-push.ymlgame-2048-docker-image-build-and-push.ymlauth-server-docker-image-build-and-push.ymladmin-legacy-server-docker-image-build-and-push.ymlblog-legacy-server-docker-image-build-and-push.ymldatabase-legacy-server-docker-image-build-and-push.ymlEach triggers on push to
mainwith overlapping path filters (e.g.,modules/**,libraries/**). A single commit touchingmodules/triggers all 7 workflows independently, each pulling base images from Docker Hub separately.Proposed Change
Consolidate into a single workflow (e.g.,
apps-build-and-push.yml) usingdorny/paths-filter+ a dynamic matrix strategy, exactly likeapps-ci.ymlalready does. This:Note: The
nginx-docker-image-build-and-push.ymlcan remain separate since it uses a different Dockerfile and has distinct path filters.