Skip to content

Develop#166

Open
OscarMURA wants to merge 173 commits intoSelimHorri:developfrom
OscarMURA:develop
Open

Develop#166
OscarMURA wants to merge 173 commits intoSelimHorri:developfrom
OscarMURA:develop

Conversation

@OscarMURA
Copy link
Copy Markdown

No description provided.

SelimHorri and others added 30 commits December 29, 2021 21:09
- Update Lombok to 1.18.30 and Maven Compiler Plugin to 3.11.0 (fixes Java 11 compatibility)
- Create docker-compose package with core.yml (Eureka, Config Server, Zipkin)
- Create docker-compose package with compose.yml (API Gateway, User, Product, Order services)
- Configure named bridge network (microservices_network) for service-to-service communication
- Add comprehensive Docker Compose setup documentation (README.md)
- All 6 microservices now containerized and ready for orchestration
- Verified service registration in Eureka and health checks passing
- Create start-services.sh: Orchestrates core.yml and compose.yml startup with proper initialization waits
- Create validate-services.sh: Comprehensive health checks for all 7 services and Eureka registration
- Create stop-services.sh: Cleanly stops both Docker Compose stacks
- Add scripts/README.md with detailed usage examples and troubleshooting guide
- Scripts enable reliable service orchestration for development and CI/CD pipelines
- All scripts tested and verified with running microservices
Document organized directory structure with clear separation of concerns
Explain docker-compose package organization (core.yml, compose.yml, README)
Explain scripts package with automation tools documentation
Document pom.xml build configuration and dependency management
Detail microservices organization (11 services with modular structure)
- Remove parent pom dependency from all 10 microservices
- Update each pom.xml to inherit directly from spring-boot-starter-parent
- Simplify Dockerfiles to copy only service-specific files
- Fix JAR output paths in build stages
- Add spring-boot-starter-test dependency to all services
- Each service now builds independently without module interdependencies

Services updated:
- api-gateway
- user-service
- product-service
- order-service
- payment-service
- favourite-service
- shipping-service
- proxy-client
- service-discovery
- cloud-config
- Update compose.yml with complete service configuration
- Update docker-compose/core.yml with proper environment variables
- Update docker-compose/compose.yml with all microservices
- Add compose-local.yml for local development
- Update pom.xml with independent module configuration
- Enhance start-services.sh with health checks
- Improve stop-services.sh with graceful shutdown
- Update validate-services.sh with comprehensive validation
- Add build-images.sh script for automated Docker image builds

All 10 microservices now properly configured and deployable
…redentialService)

- Added 19 unit tests for user-service
- UserServiceImplTest: 7 tests (findById, findAll, save, delete, findByUsername)
- AddressServiceImplTest: 6 tests (CRUD operations)
- CredentialServiceImplTest: 6 tests (CRUD operations)
- All tests use proper AAA pattern and Mockito mocking
- Added 6 unit tests for ProductServiceImpl
- Tests cover: findById, findAll, save, delete, update operations
- All tests follow AAA pattern with Mockito mocking
- Tests handle Product and Category entity relationships
- Added 6 unit tests for OrderServiceImpl
- Tests cover: findById, findAll, save, delete, update operations
- Proper mocking of Cart entity relationships
- All tests pass with AAA pattern implementation
- Added 6 unit tests for PaymentServiceImpl
- Tests cover: findById, findAll, save, delete, update operations
- Mocking of RestTemplate for external service calls
- PaymentStatus enum properly tested
- Added 6 unit tests for FavouriteServiceImpl
- Tests cover: findById, findAll, save, update, delete operations
- Handling of composite keys (FavouriteId)
- RestTemplate mocking for User and Product service calls
- Added 6 unit tests for OrderItemServiceImpl
- Tests cover: findById, findAll, save, update, delete operations
- Handling of composite keys (OrderItemId)
- RestTemplate mocking for Order and Product service calls
…tro de 'stages' en user-service y product-service
…IP y MINIKUBE_VM_IP; corrige fetchIp(vmName) y header DO_TOKEN
…sure VM Available (igual a product/service-discovery)
…VMNAME env para jq --arg (evita '' en Groovy)
…-quoted; elimina uso inválido de 'environment' en sh
- Fix unit test bash typo ('else:' -> 'else') in user-service pipeline
- Use BUILD_VM_IP for build and MINIKUBE_VM_IP for image load across services
- Wrap kubectl deploy steps in remote SSH to ensure minikube context (payment, product, order, favourite)
- Product: guard image load by installing/starting minikube if missing

Services touched: user, product, order, payment, favourite
- user-service: add memory limits for unit/integration tests to prevent OOM
- product-service: add MINIKUBE_VM_NAME parameter, fix fetchIp with withEnv, use MINIKUBE_VM_IP for Wait for Service Discovery stage
- order-service: fix fetchIp with withEnv, use MINIKUBE_VM_IP for Wait for Service Discovery stage
- favourite-service: fix fetchIp with withEnv, use MINIKUBE_VM_IP for Wait for Service Discovery stage
- payment-service: fix fetchIp with withEnv, use MINIKUBE_VM_IP for Wait for Service Discovery stage
- shipping-service: fix fetchIp with withEnv, use MINIKUBE_VM_IP for Wait for Service Discovery stage

All services now correctly:
- Resolve VM IPs using withEnv to avoid Groovy interpolation issues
- Connect to Minikube VM (not build VM) when checking Service Discovery status
Add cleanup step to remove orphaned git lock files (.git/index.lock, etc.)
before git operations in all microservice pipelines to prevent
'Unable to create .git/index.lock: File exists' errors.

This can occur when git processes are interrupted or run concurrently.
The cleanup ensures fresh git operations even if previous runs left
lock files behind.

Applied to: user, product, order, payment, shipping, favourite, service-discovery
@OscarMURA OscarMURA force-pushed the develop branch 2 times, most recently from e899586 to 742ea9d Compare October 31, 2025 04:25
OscarMURA and others added 8 commits October 30, 2025 23:52
Add 7 Jenkins staging pipelines for automatic deployment to GKE staging namespace.
Each pipeline pulls Docker images from Docker Hub and deploys to Kubernetes with
health checks. Pipelines run only on staging branch and include change detection.
- Add PATH configuration for gcloud and kubectl in all staging pipelines
- Include common installation paths: /usr/local/bin, /usr/bin, /opt/google-cloud-sdk
- Add automatic path discovery for gcloud using find command
- Verify gcloud and kubectl availability before execution
- Add clear error messages when tools are not found
- Improve error handling with installation instructions

This fixes 'gcloud: not found' errors when gcloud is installed in non-standard
paths or when PATH is not properly configured in Jenkins build environment.
Replace '&>' with '> /dev/null 2>&1' for shell compatibility.
Jenkins uses /bin/sh which doesn't support Bash-specific '&>' operator.

This fixes 'kubectl no encontrado' errors where kubectl was actually present
but the check failed due to shell incompatibility.
- Refactor imports: replace wildcard imports with specific imports
- Add cluster execution infrastructure:
  * run-e2e-cluster.sh script for Kubernetes cluster testing
  * k8s/e2e-test-job.yaml Kubernetes job configuration
  * ClusterServiceConfig and ServiceUrlHelper for service discovery
  * application-cluster.yml for cluster mode configuration
- Update README.md with Maven reactor troubleshooting guide

Enables E2E tests to run both locally (with mock controllers) and against actual Kubernetes cluster services.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants