Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
3 tasks
bryanboza opened this issue Sep 26, 2024 · 0 comments
Open
3 tasks

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

bryanboza opened this issue Sep 26, 2024 · 0 comments
Assignees
Labels
on hold In Progress, but paused to work on higher priority card Triage Type : Task

Comments

@bryanboza
Copy link
Member

bryanboza commented Sep 26, 2024

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:

  • Pull the Docker image for the "from" version (starting version) based on a provided tag.
  • Pull the Docker image for the "to" version (target version) based on a provided tag.
  • Perform the necessary steps to upgrade the database and other relevant components during the migration.
  • Run automated tests to verify the success of the upgrade.

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

  • A script (written in Bash, Python, or a similar language) that automates the entire upgrade process in Docker.
  • The script should accept two input parameters: the Docker image tag for the version to migrate from and the Docker image tag for the version to migrate to.
  • The process should handle any necessary database migrations and verify the upgrade through automated tests.
  • The script should be configurable, with a variable for setting the starter configuration (such as databases or other necessary components).
  • Clear output logs should be generated to track the progress and results of the upgrade.
  • Documentation about how to use

Assumptions & Initiation Needs

  • Both the starting and target versions of the Docker images are available in a Docker registry.
  • The script should be flexible enough to handle different versions of dotCMS with varying migration needs.

Quality Assurance Notes & Workarounds

  • Test the script across different upgrade paths, especially between long-term support (LTS) versions and the latest trunk versions.
  • Ensure that failures during the upgrade process are logged and handled gracefully.

Sub-Tasks & Estimates

  • Explore the steps required to automate the upgrade process, including starting/stopping containers, applying migrations, and running automated tests post-upgrade.
  • Determine the best approach for implementing the automation using Bash, Python, or another scripting language.
  • Investigate how to configure Docker to use image tags provided by the user for both the starting and target versions.
@bryanboza bryanboza changed the title Investigation: Automating the upgrade testing process for dotCMS using Docker QA: Automating the upgrade testing process for dotCMS using Docker Sep 26, 2024
@josemejias11 josemejias11 added the on hold In Progress, but paused to work on higher priority card label Oct 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
on hold In Progress, but paused to work on higher priority card Triage Type : Task
Projects
Status: QA - In Progress
Development

No branches or pull requests

2 participants