Skip to content

Tests on CI run slow, too often and flaky #5284

@usu

Description

@usu

This is a collection of issues I see with our current CI setup that make development slow and makes the life of renovate hard.

Problem description

  • Generally, our tests take a rather long time (~15min in average)
  • The tests run often, sometimes testing the same commit that was already tested before
  • Our e2e tests are still flaky, leading to necessary repetition of tests
    • Higher utilization of workflow runners
    • PRs getting kicked out of merge queue (=queue has to restart other jobs)
    • Renovate not being able auto-merge => high clutter in PR backlog
  • Fixing a bug and deploying it to prod takes a huge time (as we saw during the last hackathon). CI needs to run min. 6 times successfully:
    • First, CI needs to run on PR (twice in parallel)
    • Then CI needs to run on merge queue
    • After merging a PR from merge queue, dev again runs CI (although the same commit was already tested in merge queue)
    • When fast-forwarding to stage & prod, the CI runs again (although the same commit was already tested before)
  • Renovate still seems to have a problem with our setup: Renovate mixing different upgrades in same PR and even downgrades packages #4309
    This might be unrelated to above. I couldn't figure out anything on renovatebot issues list. I wonder though if this is somehow connected to merge queue and the config rebaseWhen:conflicted.

Potential solutions (to be discussed)

  • Challenge benefit of merge queue (does it bring the benefits we hoped?)
  • Making e2e tests non-mandatory tests? Or at least for renovate? Yes, this means we could potentially break dev. I don't think though that I remember a dependency upgrade only breaking e2e and no other tests.
  • Somehow making API tests faster
  • When pushing to a pull request, the CI runs twice (1x for push, 1x for pull request). Do we really need both?
  • Find a way to avoid running the same CI for a commit hash where CI has already run successfully before
  • other ideas?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions