infra: [TRTLLM-4051] Support only run some backend type test (#3578)

* [TRTLLM-4051] Support only run some backend type test

Signed-off-by: ZhanruiSunCh <184402041+ZhanruiSunCh@users.noreply.github.com>

* Fix

Signed-off-by: ZhanruiSunCh <184402041+ZhanruiSunCh@users.noreply.github.com>

* Fix name

Signed-off-by: ZhanruiSunCh <184402041+ZhanruiSunCh@users.noreply.github.com>

* Fix pre-commit

Signed-off-by: ZhanruiSunCh <184402041+ZhanruiSunCh@users.noreply.github.com>

* Fix groovy error

Signed-off-by: ZhanruiSunCh <184402041+ZhanruiSunCh@users.noreply.github.com>

* Update L0_Test.groovy

Signed-off-by: Zhanrui Sun <184402041+ZhanruiSunCh@users.noreply.github.com>

---------

Signed-off-by: ZhanruiSunCh <184402041+ZhanruiSunCh@users.noreply.github.com>
Signed-off-by: Zhanrui Sun <184402041+ZhanruiSunCh@users.noreply.github.com>
This commit is contained in:
Zhanrui Sun 2025-05-07 15:34:16 +08:00 committed by GitHub
parent 721f84a0ac
commit e650d787e4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 39 additions and 7 deletions

View File

@ -79,6 +79,8 @@ def TEST_STAGE_LIST = "stage_list"
@Field
def GPU_TYPE_LIST = "gpu_type"
@Field
def TEST_BACKEND = "test_backend"
@Field
def IS_POST_MERGE = "post_merge"
@Field
def ADD_MULTI_GPU_TEST = "add_multi_gpu_test"
@ -104,6 +106,7 @@ def testFilter = [
(ENABLE_SKIP_TEST): gitlabParamsFromBot.get((ENABLE_SKIP_TEST), false),
(TEST_STAGE_LIST): trimForStageList(gitlabParamsFromBot.get((TEST_STAGE_LIST), null)?.tokenize(',')),
(GPU_TYPE_LIST): trimForStageList(gitlabParamsFromBot.get((GPU_TYPE_LIST), null)?.tokenize(',')),
(TEST_BACKEND): trimForStageList(gitlabParamsFromBot.get((TEST_BACKEND), null)?.tokenize(',')),
(IS_POST_MERGE): (env.JOB_NAME ==~ /.*PostMerge.*/) || gitlabParamsFromBot.get((IS_POST_MERGE), false),
(ADD_MULTI_GPU_TEST): gitlabParamsFromBot.get((ADD_MULTI_GPU_TEST), false),
(ONLY_MULTI_GPU_TEST): gitlabParamsFromBot.get((ONLY_MULTI_GPU_TEST), false) || gitlabParamsFromBot.get((ENABLE_MULTI_GPU_TEST), false),
@ -134,7 +137,8 @@ boolean enableUpdateGitlabStatus =
!testFilter[ENABLE_SKIP_TEST] &&
!testFilter[ONLY_MULTI_GPU_TEST] &&
testFilter[GPU_TYPE_LIST] == null &&
testFilter[TEST_STAGE_LIST] == null
testFilter[TEST_STAGE_LIST] == null &&
testFilter[TEST_BACKEND] == null
String getShortenedJobName(String path)
{

View File

@ -101,6 +101,8 @@ def TEST_STAGE_LIST = "stage_list"
@Field
def GPU_TYPE_LIST = "gpu_type"
@Field
def TEST_BACKEND = "test_backend"
@Field
def IS_POST_MERGE = "post_merge"
@Field
def ADD_MULTI_GPU_TEST = "add_multi_gpu_test"
@ -124,6 +126,7 @@ def testFilter = [
(ENABLE_SKIP_TEST): false,
(TEST_STAGE_LIST): null,
(GPU_TYPE_LIST): null,
(TEST_BACKEND): null,
(IS_POST_MERGE): false,
(ADD_MULTI_GPU_TEST): false,
(ONLY_MULTI_GPU_TEST): false,
@ -1533,27 +1536,52 @@ def launchTestJobs(pipeline, testFilter, dockerNode=null)
// Check --gpu-type, filter test stages.
if (testFilter[(GPU_TYPE_LIST)] != null) {
echo "Use GPU_TYPE_LIST for filtering."
echo "Use GPU_TYPE_LIST for filtering. GPU types: ${testFilter[(GPU_TYPE_LIST)]}."
parallelJobsFiltered = parallelJobsFiltered.findAll {it.key.tokenize('-')[0] in testFilter[(GPU_TYPE_LIST)]}
println parallelJobsFiltered.keySet()
}
if (testFilter[(ONLY_PYTORCH_FILE_CHANGED)]) {
echo "ONLY_PYTORCH_FILE_CHANGED mode is true."
parallelJobsFiltered = parallelJobsFiltered.findAll { !it.key.contains("-CPP-") && !it.key.contains("-TensorRT-") }
// Check --backend-mode, filter test stages.
if (testFilter[(TEST_BACKEND)] != null) {
echo "Use TEST_BACKEND for filtering. Backend mode: ${testFilter[(TEST_BACKEND)]}."
def backendMode = testFilter[(TEST_BACKEND)].collect { it.toLowerCase() }
def changeMap = [
"pytorch": "-PyTorch-",
"tensorrt": "-TensorRT-",
"cpp": "-CPP-",
]
def backendModeList = backendMode.collect { changeMap.get(it) }.flatten()
def parallelJobsNoBackend = parallelJobsFiltered.findAll { key, _ ->
!changeMap.values().any { backend -> key.contains(backend) }
}
def parallelJobsBackendMode = parallelJobsFiltered.findAll { key, _ ->
backendModeList.any { backend -> key.contains(backend) }
}
parallelJobsFiltered = parallelJobsNoBackend + parallelJobsBackendMode
echo "parallelJobsBackendMode: ${parallelJobsBackendMode.keySet()}"
println parallelJobsFiltered.keySet()
}
if (testFilter[(ONLY_PYTORCH_FILE_CHANGED)]) {
if (testFilter[(TEST_BACKEND)] != null) {
echo "Force disable ONLY_PYTORCH_FILE_CHANGED mode. Backend mode set by flag: ${testFilter[(TEST_BACKEND)]}."
} else {
echo "ONLY_PYTORCH_FILE_CHANGED mode is true."
parallelJobsFiltered = parallelJobsFiltered.findAll { !it.key.contains("-CPP-") && !it.key.contains("-TensorRT-") }
println parallelJobsFiltered.keySet()
}
}
// Check --stage-list, only run the stages in stage-list.
if (testFilter[TEST_STAGE_LIST] != null) {
echo "Use TEST_STAGE_LIST for filtering."
echo "Use TEST_STAGE_LIST for filtering. Stages: ${testFilter[(TEST_STAGE_LIST)]}."
parallelJobsFiltered = parallelJobs.findAll {it.key in testFilter[(TEST_STAGE_LIST)]}
println parallelJobsFiltered.keySet()
}
// Check --extra-stage, add the stages in extra-stage.
if (testFilter[EXTRA_STAGE_LIST] != null) {
echo "Use EXTRA_STAGE_LIST for filtering."
echo "Use EXTRA_STAGE_LIST for filtering. Stages: ${testFilter[(EXTRA_STAGE_LIST)]}."
parallelJobsFiltered += parallelJobs.findAll {it.key in testFilter[(EXTRA_STAGE_LIST)]}
println parallelJobsFiltered.keySet()
}