Skip to content

Migrate CI-basictests workflow from jenkins-build-scripts to in-repo infrastructure #5522

@renecannao

Description

@renecannao

Parent issue: #5521

Summary

The CI-basictests 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-basictests Does

This workflow runs Python-based functional tests against a ProxySQL instance with a MySQL 5.7 backend. The test categories are:

  • Benchmark (TEST_PY_BENCHMARK=1) — sysbench-based performance checks
  • Change User (TEST_PY_CHUSER=1) — COM_CHANGE_USER tests
  • Failover (TEST_PY_FAILOVER=1) — backend failover scenarios

The workflow steps are:

  1. Install dependencies (python3-pymysql, sysbench, mysql-shell, etc.)
  2. Restore cached ProxySQL build from CI-builds
  3. Start ProxySQL cluster (cluster_start.bash, cluster_init.bash)
  4. Start docker-hoster (DNS for containers) and MySQL 5.7 infra
  5. Run proxysql-tester.py with the test flags above
  6. Cleanup and upload artifacts on failure

Current jenkins-build-scripts Dependencies

Script/Resource Branch Purpose
env.sh kubernetes Sets WORKSPACE, paths, TAP_* variables
cluster_start.bash kubernetes Starts ProxySQL cluster nodes
cluster_init.bash kubernetes Initializes cluster config
infra-docker-hoster/docker-compose-init.bash kubernetes DNS resolution for containers
infra-mysql57/docker-compose-init.bash kubernetes MySQL 5.7 backend
test-scripts/bin/proxysql-tester.py kubernetes Python test runner
docker-mysql-proxysql/conf/proxysql/proxysql.cnf kubernetes ProxySQL config for tests

What Already Exists In-Repo

  • test/infra/infra-mysql57/ — MySQL 5.7 docker-compose infrastructure
  • test/infra/control/cluster_start.bash, cluster_init.bash — cluster management
  • test/infra/common/env.sh — environment setup
  • test/scripts/bin/proxysql-tester.py — Python test runner (same script)
  • test/infra/control/proxysql-ci.cnf — ProxySQL config template

Migration Approach

This is the simplest workflow to migrate since all the infrastructure pieces already exist in-repo. The main work is:

  1. Rewrite the workflow YAML to use test/infra/ scripts instead of checking out jenkins-build-scripts
  2. Ensure the test/env.sh flags (TEST_PY_BENCHMARK, TEST_PY_CHUSER, TEST_PY_FAILOVER) are supported by the in-repo proxysql-tester.py
  3. Verify docker-hoster setup works with the in-repo infra (or determine if it's still needed)
  4. Test the migrated workflow end-to-end

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