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

feat(ci): dynamic test scheduler / balancer #12180

Merged
merged 1 commit into from
Dec 15, 2023
Merged

Commits on Dec 14, 2023

  1. feat(ci): dynamic test scheduler / balancer

    This commit adds an automatic scheduler for running busted tests.  It
    replaces the static, shell script based scheduler by a mechanism that
    distributes the load onto a number of runners.  Each runner gets to
    work on a portion of the tests that need to be run.  The scheduler
    uses historic run time information to distribute the work evenly
    across runners, with the goal of making them all run for the same
    amount of time.  With the 7 runners configured in the PR, the overall
    time it takes to run tests is reduced from around 30 minutes to around
    11 minutes.
    
    Previously, the scheduling for tests was defined by what the
    run_tests.sh shell script did.  This has now changed so that the new
    JSON file `test_suites.json` is instead used to define the tests that
    need to run.  Like before, each of the test suites can have its own
    set of environment variables and test exclusions.
    
    The test runner has been rewritten in Javascript in order to make it
    easier to interface with the declarative configuration file and to
    facilitate reporting and interfacing with busted.  It resides in the
    https://github.com/Kong/gateway-test-scheduler repository and
    provides its functionality through custom GitHub Actions.
    
    A couple of tests had to be changed to isolate them from other tests
    better.  As the tests are no longer run in identical order every time,
    it has become more important that each test performs any required
    cleanup before it runs.
    hanshuebner authored and locao committed Dec 14, 2023
    Configuration menu
    Copy the full SHA
    543004c View commit details
    Browse the repository at this point in the history