Is your feature request related to a problem? Please describe:
Currently we need to manually prepare 6 programs to run the integration tests. There should be some way to simplify it.
Describe the feature you'd like:
Change to use tiup to setup the TiDB cluster (thus replaces "tidb", "tikv", "pd" and "tiflash" dependency with a single dependency)
We'll likely use tiup playground since tiup cluster cannot reuse the existing binaries.
We need to detect when the tiup playground has started. Loop-checking tiup playground display should be fine (it returns when all components are started)
We also need to kill the playground. We can run tiup playground & and record the $!, then use kill -HUP $PID to finish them.
Have some way to automatically download tikv-importer or skip all tikv-importer-related tests
(Do something about minio?)
Allow using non-TLS connections
run_curl can use curl if wget cannot be executed (still prefer wget over curl due to Jenkins environment)
Document in README how to run a single test against an existing tiup playground/cluster.
Describe alternatives you've considered:
Use UTF instead of tiup, but I suspect UTF is much much more difficult to setup than the current framework.
Consider changing BR to use tiup too if this works here. We could even use scale-out and scale-in to configure TiFlash and CDC. But we may need some way to run 2 playgrounds simultaneously (or maybe just remove the br_tls test and always use TLS in all tests by default).
Feature Request
Is your feature request related to a problem? Please describe:
Currently we need to manually prepare 6 programs to run the integration tests. There should be some way to simplify it.
Describe the feature you'd like:
tiup
to setup the TiDB cluster (thus replaces "tidb", "tikv", "pd" and "tiflash" dependency with a single dependency)tiup playground
sincetiup cluster
cannot reuse the existing binaries.tiup playground
has started. Loop-checkingtiup playground display
should be fine (it returns when all components are started)tiup playground &
and record the$!
, then usekill -HUP $PID
to finish them.tikv-importer
or skip alltikv-importer
-related testsminio
?)run_curl
can usecurl
ifwget
cannot be executed (still preferwget
overcurl
due to Jenkins environment)tiup
playground/cluster.Describe alternatives you've considered:
Use UTF instead of
tiup
, but I suspect UTF is much much more difficult to setup than the current framework.Teachability, Documentation, Adoption, Optimization:
Consider changing BR to use
tiup
too if this works here. We could even usescale-out
andscale-in
to configure TiFlash and CDC. But we may need some way to run 2 playgrounds simultaneously (or maybe just remove thebr_tls
test and always use TLS in all tests by default).