dotCMS / core

Headless/Hybrid Content Management System for Enterprises
http://dotcms.com
Other
867 stars 467 forks source link

QA: Automating the upgrade testing process for dotCMS using Docker #30163

Open bryanboza opened 2 months ago

bryanboza commented 2 months ago

Task

There is a need to automate the upgrade testing process for dotCMS to streamline and ensure consistent testing when upgrading from one version to another. Currently, the upgrade process requires manual intervention, making it time-consuming and prone to errors. The goal is to automate the entire upgrade process using a script (in Bash, Python, or a similar language) that will manage the process in Docker. The user will provide the tag of the Docker image to migrate from and the tag of the image to migrate to, and the script should handle the rest of the process automatically. This will improve efficiency and accuracy when testing upgrades.

Requirements:

Automate the Upgrade Process: The script should automate the following steps:

Docker-Based Solution: The entire process should run in Docker, ensuring consistency across different environments.

Configurable Starter: The starter configuration should be configurable using a variable in the script.

Proposed Objective

Quality Assurance

Proposed Priority

Priority 2 - Important

Acceptance Criteria

Assumptions & Initiation Needs

Quality Assurance Notes & Workarounds

Sub-Tasks & Estimates

josemejias11 commented 1 month ago

QA Comment

Update on the coming task for the Upgrade process from LTS to Main. master_branch_upgrade.zip

bryanboza commented 1 month ago

@josemejias11, I've reviewed the provided script and here’s some feedback:

Step 1: We should allow the script to accept a specific version to upgrade_from. This adds flexibility for different versions.

Step 4: We need to add proper validations here. Simply printing the docker ps output isn’t enough. We should validate that the required containers are actually running.

Step 5: Since this is an automation script, it doesn't make sense to require manual intervention. The entire process should be automatic, and we should only receive a final result at the end.

Step 9: Before finishing, we need to run some assertions to ensure the process completed successfully. If it didn't, the script should return a clear error message.

josemejias11 commented 1 month ago

QA Comment

Latest version worked on

Upgrade.zip

bryanboza commented 1 month ago

PR: https://github.com/dotCMS/core/pull/30480

bryanboza commented 1 week ago

@erickgonzalez, could you please provide me with a list of the versions we want to ensure compatibility between? I’d like to include one test case per version in this script and start running it in CI/CD

Example:

erickgonzalez commented 1 week ago

From a LTS POV:

From Agile:

It will be good to test when the new LTS gets designated, but we can talk about that later: