- Updated the E2E testing section to capture the return code and mark the build as UNSTABLE if tests fail, improving feedback on test outcomes.
- Added detailed comments to clarify the E2E testing structure and the implications of the current setup, particularly regarding the demo user and login flow.
- Ensured that the Docker container cleanup process remains robust, regardless of test outcomes.
- Updated the health check logic in the wait_for_backend function to use the caller-provided URL directly, eliminating the issue of appending an extra "/health" segment that caused unnecessary delays in the frontend startup.
- Added comments to clarify the changes and their impact on the entrypoint behavior.
- Added a 10-second sleep before the E2E testing begins to allow Vite/Uvicorn to start up, improving log visibility for troubleshooting.
- Included commands to output the status of the Docker containers and the last 40 lines of logs for both frontend and backend services, aiding in debugging during the E2E testing process.
- Adjusted the timeout for waiting on the frontend from 300 seconds to 180 seconds, streamlining the waiting logic.
- Removed the wait-for-jenkins-stack.sh script from the Jenkinsfile, integrating its functionality directly into the Jenkins pipeline for better clarity and efficiency.
- Enhanced the wait logic for backend and frontend services, implementing a reusable function in the script to streamline the waiting process and improve error handling.
- Updated comments to clarify the purpose and behavior of the changes, ensuring better understanding of the E2E testing setup.
- Updated the Jenkinsfile to build backend and frontend images using Docker Compose, enhancing the efficiency of the CI pipeline.
- Removed the obsolete e2e_alembic_upgrade.py script, as its functionality is no longer required.
- Improved comments for clarity regarding the build and testing stages, ensuring better understanding of the CI process.
- Updated the Alembic upgrade command to use a Python script for execution, addressing issues with configuration handling in Docker.
- Enhanced comments to clarify the purpose of the changes and their implications for E2E testing.
- Updated the Alembic upgrade command to use the direct binary path instead of Python, addressing issues with command parsing in Docker.
- Enhanced comments to clarify the reasoning behind the changes and their implications for E2E testing.
- Updated the Alembic upgrade command to use the `--config` option instead of `-c`, addressing ambiguity in configuration handling.
- Revised comments to enhance understanding of the command's context and implications during E2E testing.
- Updated the Alembic upgrade command in the Jenkinsfile to directly use Python for execution, eliminating reliance on a separate shell script that caused issues with command parsing.
- Revised comments to clarify the changes and their implications for the command context during E2E testing.
- Deleted the now-unnecessary jenkins-alembic-e2e.sh script to streamline the process.
- Updated the Alembic upgrade command to execute a script instead of using a variable, addressing issues with command execution in the Docker environment.
- Revised comments to clarify the changes and their implications for the command context during E2E testing.
- Changed the Alembic upgrade command to use a variable for the command string, preventing issues with inline double quotes in the shell execution.
- Updated comments to clarify the changes made and their impact on the command execution context within the Docker environment.
- Updated the Alembic upgrade command in the Jenkinsfile to specify the entrypoint correctly, ensuring the command executes in the intended context.
- Added a comment to clarify the change regarding the entrypoint behavior in the Docker environment, enhancing maintainability and understanding of the script.
- Introduced a new function to forcefully remove stale containers that may conflict with the current E2E testing setup, improving reliability and preventing errors related to container name conflicts.
- Updated the compose_down function to call the new cleanup function, ensuring a clean environment before running tests.
- Added steps to ensure PostgreSQL service is ready before running Alembic migrations, improving the reliability of the E2E testing process.
- Implemented error handling for PostgreSQL readiness and Alembic upgrade commands to provide better feedback during CI runs.
- Adjusted health check parameters in docker-compose.yml for backend services to enhance reliability during startup.
- Increased memory limits and reservations for backend services to accommodate higher resource demands.
- Updated service dependencies in docker-compose.yml to ensure proper startup order based on health status.
- Enhanced Jenkinsfile to include additional logging for backend and Celery services, aiding in troubleshooting during CI runs.
- Added .env.e2e.generated to .gitignore to prevent committing generated environment files.
- Updated docker-compose.yml to use environment variables for Keycloak ports, enhancing flexibility in CI environments.
- Enhanced Jenkinsfile to generate dynamic Keycloak ports for E2E testing and improved logging for troubleshooting during failures.
- Removed custom entrypoint scripts for backend, frontend, and PostgreSQL services from docker-compose files.
- Added a new entrypoint script in the backend and frontend Dockerfiles to handle initialization without relying on host-mounted scripts.
- Updated Dockerfiles to ensure proper permissions for the new entrypoint scripts.
- Enhanced database initialization logic by moving schema and extension creation to the Alembic migration script.
- Introduced a new function to log detailed error information when the Docker Compose stack fails to start, including logs from Postgres and Keycloak containers.
- Updated the Docker Compose command to call the logging function upon failure, improving troubleshooting capabilities during CI runs.
- Added a new 'E2E (docker compose + Playwright)' stage in the Jenkinsfile to run end-to-end tests using Docker Compose and Playwright.
- Updated the 'Test frontend' stage to utilize the Playwright test image and improved error handling for missing files.
- Modified Playwright configuration to use an environment variable for the base URL, enhancing flexibility in CI environments.
- Expanded TypeScript configuration to include additional test and configuration files for better type checking.