Set up automated container image publishing to quay.io/kubesmarts using GitHub Actions. This pipeline will build and publish all logic-platform images (data-index variants and ingestion services) when version tags are pushed to the repository.
Image Build Strategy: Dockerfiles as the single source of truth. This replaces the current Jib-based approach used in E2E tests with explicit Dockerfiles for consistency between development, CI, and production deployments.
Acceptance Criteria
Technical Details
GitHub Secrets Required:
QUAY_USERNAME - Quay.io username/robot account
QUAY_TOKEN - Quay.io access token
Workflow Pattern:
Build Strategy:
- Use
docker/build-push-action@v5 for multi-platform builds (handles Dockerfiles natively)
- Use
docker/metadata-action@v5 for tag management
- Build context: module directory containing Dockerfile
- Build args: Pass Quarkus profile where needed
Workflow Pattern (per image):
- name: Build and push PostgreSQL variant
uses: docker/build-push-action@v5
with:
context: ./data-index/data-index-service/data-index-service-postgresql
file: ./data-index/data-index-service/data-index-service-postgresql/src/main/docker/Dockerfile.jvm
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
Reference Implementation:
Dependencies
None - this is the foundation for all image publishing
Set up automated container image publishing to quay.io/kubesmarts using GitHub Actions. This pipeline will build and publish all logic-platform images (data-index variants and ingestion services) when version tags are pushed to the repository.
Image Build Strategy: Dockerfiles as the single source of truth. This replaces the current Jib-based approach used in E2E tests with explicit Dockerfiles for consistency between development, CI, and production deployments.
Acceptance Criteria
.github/workflows/publish-images.yml)v*(e.g.,v1.0.0)QUAY_USERNAME,QUAY_TOKEN)latest- always points to most recent release1.0.01.0Technical Details
GitHub Secrets Required:
QUAY_USERNAME- Quay.io username/robot accountQUAY_TOKEN- Quay.io access tokenWorkflow Pattern:
Build Strategy:
docker/build-push-action@v5for multi-platform builds (handles Dockerfiles natively)docker/metadata-action@v5for tag managementWorkflow Pattern (per image):
Reference Implementation:
Dependencies
None - this is the foundation for all image publishing