This is an automated email from the ASF dual-hosted git repository. andrewzhaoluo pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/tvm.git
The following commit(s) were added to refs/heads/main by this push: new c79b8f1aac [ci] Re-run flaky tests on failure (#12108) c79b8f1aac is described below commit c79b8f1aac0d11811257123127402d0ceff9135e Author: driazati <9407960+driaz...@users.noreply.github.com> AuthorDate: Mon Jul 18 09:44:49 2022 -0700 [ci] Re-run flaky tests on failure (#12108) This is a follow up to implement the library added in #12055 Co-authored-by: driazati <driaz...@users.noreply.github.com> --- Jenkinsfile | 16 ++++++++-------- ci/jenkins/Jenkinsfile.j2 | 14 +++++++------- tests/scripts/setup-pytest-env.sh | 12 +++++++++--- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 8b59fe2192..c2f6407333 100755 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -45,18 +45,18 @@ // 'python3 jenkins/generate.py' // Note: This timestamp is here to ensure that updates to the Jenkinsfile are // always rebased on main before merging: -// Generated at 2022-07-01T12:43:52.727636 +// Generated at 2022-07-15T13:35:24.676914 import org.jenkinsci.plugins.pipeline.modeldefinition.Utils // NOTE: these lines are scanned by docker/dev_common.sh. Please update the regex as needed. --> -ci_lint = 'tlcpack/ci-lint:20220630-060117-558ba99c7' -ci_gpu = 'tlcpack/ci-gpu:20220630-060117-558ba99c7' -ci_cpu = 'tlcpack/ci-cpu:20220630-060117-558ba99c7' -ci_wasm = 'tlcpack/ci-wasm:20220630-060117-558ba99c7' -ci_i386 = 'tlcpack/ci-i386:20220630-060117-558ba99c7' +ci_lint = 'tlcpack/ci-lint:20220715-060127-37f9d3c49' +ci_gpu = 'tlcpack/ci-gpu:20220715-060127-37f9d3c49' +ci_cpu = 'tlcpack/ci-cpu:20220715-060127-37f9d3c49' +ci_wasm = 'tlcpack/ci-wasm:20220715-060127-37f9d3c49' +ci_i386 = 'tlcpack/ci-i386:20220715-060127-37f9d3c49' ci_qemu = 'tlcpack/ci-qemu:20220630-060117-558ba99c7' -ci_arm = 'tlcpack/ci-arm:20220630-060117-558ba99c7' -ci_hexagon = 'tlcpack/ci-hexagon:20220630-060117-558ba99c7' +ci_arm = 'tlcpack/ci-arm:20220715-060127-37f9d3c49' +ci_hexagon = 'tlcpack/ci-hexagon:20220715-060127-37f9d3c49' // <--- End of regex-scanned config. // Parameters to allow overriding (in Jenkins UI), the images diff --git a/ci/jenkins/Jenkinsfile.j2 b/ci/jenkins/Jenkinsfile.j2 index 2c38bf32c6..45b7565bf5 100644 --- a/ci/jenkins/Jenkinsfile.j2 +++ b/ci/jenkins/Jenkinsfile.j2 @@ -51,14 +51,14 @@ import org.jenkinsci.plugins.pipeline.modeldefinition.Utils {% import 'ci/jenkins/macros.j2' as m with context -%} // NOTE: these lines are scanned by docker/dev_common.sh. Please update the regex as needed. --> -ci_lint = 'tlcpack/ci-lint:20220630-060117-558ba99c7' -ci_gpu = 'tlcpack/ci-gpu:20220630-060117-558ba99c7' -ci_cpu = 'tlcpack/ci-cpu:20220630-060117-558ba99c7' -ci_wasm = 'tlcpack/ci-wasm:20220630-060117-558ba99c7' -ci_i386 = 'tlcpack/ci-i386:20220630-060117-558ba99c7' +ci_lint = 'tlcpack/ci-lint:20220715-060127-37f9d3c49' +ci_gpu = 'tlcpack/ci-gpu:20220715-060127-37f9d3c49' +ci_cpu = 'tlcpack/ci-cpu:20220715-060127-37f9d3c49' +ci_wasm = 'tlcpack/ci-wasm:20220715-060127-37f9d3c49' +ci_i386 = 'tlcpack/ci-i386:20220715-060127-37f9d3c49' ci_qemu = 'tlcpack/ci-qemu:20220630-060117-558ba99c7' -ci_arm = 'tlcpack/ci-arm:20220630-060117-558ba99c7' -ci_hexagon = 'tlcpack/ci-hexagon:20220630-060117-558ba99c7' +ci_arm = 'tlcpack/ci-arm:20220715-060127-37f9d3c49' +ci_hexagon = 'tlcpack/ci-hexagon:20220715-060127-37f9d3c49' // <--- End of regex-scanned config. // Parameters to allow overriding (in Jenkins UI), the images diff --git a/tests/scripts/setup-pytest-env.sh b/tests/scripts/setup-pytest-env.sh index 63145c9909..1e4883f13d 100755 --- a/tests/scripts/setup-pytest-env.sh +++ b/tests/scripts/setup-pytest-env.sh @@ -24,7 +24,7 @@ if [[ ! -z $CI_PYTEST_ADD_OPTIONS ]]; then else export PYTEST_ADDOPTS="-s -vv $PYTEST_ADDOPTS" fi -set -u +set -ux export TVM_PATH=`pwd` export PYTHONPATH="${TVM_PATH}/python" @@ -51,19 +51,25 @@ function run_pytest() { shift local test_suite_name="$1" shift + extra_args=( "$@" ) if [ -z "${ffi_type}" -o -z "${test_suite_name}" ]; then - echo "error: run_pytest called incorrectly: run_pytest ${ffi_type} ${test_suite_name} $@" + echo "error: run_pytest called incorrectly: run_pytest ${ffi_type} ${test_suite_name}" "${extra_args[@]}" echo "usage: run_pytest <FFI_TYPE> <TEST_SUITE_NAME> [pytest args...]" exit 2 fi + has_reruns=$(python3 -m pytest --help 2>&1 | grep 'reruns=' || true) + if [ -n "$has_reruns" ]; then + extra_args+=('--reruns=3') + fi + suite_name="${test_suite_name}-${ffi_type}" exit_code=0 TVM_FFI=${ffi_type} python3 -m pytest \ -o "junit_suite_name=${suite_name}" \ "--junit-xml=${TVM_PYTEST_RESULT_DIR}/${suite_name}.xml" \ "--junit-prefix=${ffi_type}" \ - "$@" || exit_code=$? + "${extra_args[@]}" || exit_code=$? if [ "$exit_code" -ne "0" ]; then pytest_errors+=("${suite_name}: $@") fi