Skip to content

Discuss the environment combinations handling #5096

Description

@psss

As agreed on the hacking session, let's dedicate some limited time (e.g. one or two hours) to a discussion about the proposed and brainstormed options for handling various environment combinations. Let's put together all approaches suggested so far and identify essential advantages and disadvantages for all of them.

The Problem

Users need to run the same tests across multiple environment combinations (distros, architectures, configurations) but tmt has no first-class mechanism to express this.

What is possible

Why it matters

  • Usability ... Environment combination testing is a fundamental workflow. Not supporting it natively means every user reinvents the wheel.
  • Scalability ... Manual plan duplication breaks down quickly. Testing across N distros × M arches × K configs means N×M×K nearly-identical plans.
  • Nested execution ... Issue Support for running tmt in tmt #3298 describes the related need for running tmt within tmt — e.g., provisioning a bare-metal hypervisor, then spawning VMs as guests — with aggregated results from child runs. The combination problem and the nesting problem share a need for orchestrating multiple environments and collecting unified results.

Alternatives

Here is the list of the alternatives brainstormed so far.

Matrix Plan Shaper

Implementation draft already proposed in the pull request below. Similar to how --max-tests-per-plan or importing multiple remote plans is working.

Jinja Templates

Using templates and iteration across the desired values together with pre-commit. A tangible example linked below.

Dedicated Command

A separate tmt go command which would generate the combinations, execute tmt run for each environment combinations and aggregate the results from individual runs at the end to perform a nice overview of the whole execution.

External Tools

Use external tools like newa to take care of the environment combination handling.

  • Users have to learn and set up a new tool, not possible to just enter the git repo and tmt run

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

  • Status
    backlog
  • Status
    triaged

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions