Skip to content

Migrate CI-repltests workflow from jenkins-build-scripts to in-repo infrastructure #5523

@renecannao

Description

@renecannao

Parent issue: #5521

Summary

The CI-repltests workflow needs to be migrated from depending on the private proxysql/jenkins-build-scripts repository to using the in-repo test/infra/ infrastructure.

What CI-repltests Does

This workflow runs replication chain tests — it spins up multiple MySQL backends in master-slave topologies, configures ProxySQL to route traffic across them, runs sysbench load, and validates data consistency. It tests across multiple MySQL versions and SSL configurations.

The test matrix executed by exec_all_repl_tests.sh:

  • MySQL 5.6 no-ssl (without debezium)
  • MySQL 5.7 no-ssl + debezium
  • MySQL 5.7 ssl + debezium
  • MySQL 8.0 no-ssl (without debezium)
  • MySQL 8.0 ssl (without debezium)

Each test run (exec_repl_test.sh) does:

  1. Start a replication-capable MySQL infrastructure via docker-compose
  2. Start ProxySQL and configure it for the replication chain
  3. Run sysbench load through ProxySQL
  4. Validate data consistency across replicas
  5. Optionally verify debezium binlog reader
  6. Teardown and report results

Current jenkins-build-scripts Dependencies

Script/Resource Branch Purpose
env.sh proxysql_repl_tests Environment variables
proxysql_repl_tests/exec_all_repl_tests.sh proxysql_repl_tests Master test orchestrator
proxysql_repl_tests/exec_repl_test.sh proxysql_repl_tests Single replication test
proxysql_repl_tests/docker-compose.yml proxysql_repl_tests Multi-node MySQL replication infra
proxysql_repl_tests/docker-compose-init.bash proxysql_repl_tests Initialize replication topology
proxysql_repl_tests/docker-compose-destroy.bash proxysql_repl_tests Teardown
proxysql_repl_tests/bin/debezium-check.bash proxysql_repl_tests Debezium validation
proxysql_repl_tests/bin/local-docker-benchmark.bash proxysql_repl_tests Sysbench load generation
proxysql_repl_tests/constants proxysql_repl_tests Test constants
proxysql_repl_tests/conf/ proxysql_repl_tests MySQL and ProxySQL configs for replication
proxysql_repl_tests/.env proxysql_repl_tests Docker-compose env vars
infra-docker-hoster/ proxysql_repl_tests DNS resolution for containers

What Already Exists In-Repo

  • test/infra/infra-mysql57/ — single MySQL 5.7 instance (not replication-ready)
  • test/infra/control/ — orchestration scripts
  • test/infra/common/env.sh — base environment

What's Missing (Needs to be Ported)

The entire proxysql_repl_tests/ directory needs to be brought into the proxysql repo. This is a self-contained test suite with its own docker-compose, configs, and test scripts. Key components:

  1. Replication docker-compose — multi-node MySQL topologies (master + slaves)
  2. Test orchestrationexec_repl_test.sh and exec_all_repl_tests.sh
  3. Debezium integration — binlog reader validation
  4. Sysbench harness — load generation scripts
  5. Per-version MySQL configs — in conf/ subdirectory
  6. Constants and .env — docker-compose variables for different MySQL versions

Migration Approach

  1. Port the proxysql_repl_tests/ directory into the proxysql repo (e.g., under test/infra/repl-tests/ or test/repl/)
  2. Update paths in the scripts to use in-repo locations instead of $JENKINS_SCRIPTS_PATH
  3. Update the docker-compose references (the workflow already patches docker-composedocker compose)
  4. Rewrite the CI-repltests workflow YAML to use the ported scripts directly
  5. Test the migrated workflow end-to-end

Notes

  • CI-shuntest uses the same proxysql_repl_tests branch but runs exec_shun_test.sh instead. Porting the replication test suite will also unblock CI-shuntest migration.
  • The workflow only installs sysbench and gettext as dependencies — minimal external requirements.

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