Enable python code coverage on windows (#44548)
Summary:
Fixes https://github.com/pytorch/pytorch/issues/43897
Pull Request resolved: https://github.com/pytorch/pytorch/pull/44548
Reviewed By: walterddr
Differential Revision: D24582777
Pulled By: malfet
fbshipit-source-id: 9b68b72ba356fef61461fc2446c73360f67ce0b4
diff --git a/.jenkins/pytorch/win-test-helpers/setup_pytorch_env.bat b/.jenkins/pytorch/win-test-helpers/setup_pytorch_env.bat
index 34c3698..1e3cfe0 100644
--- a/.jenkins/pytorch/win-test-helpers/setup_pytorch_env.bat
+++ b/.jenkins/pytorch/win-test-helpers/setup_pytorch_env.bat
@@ -39,7 +39,7 @@
popd
:: The version is fixed to avoid flakiness: https://github.com/pytorch/pytorch/issues/31136
-pip install "ninja==1.10.0.post1" future "hypothesis==4.53.2" "librosa>=0.6.2" psutil pillow unittest-xml-reporting pytest
+pip install "ninja==1.10.0.post1" future "hypothesis==4.53.2" "librosa>=0.6.2" psutil pillow unittest-xml-reporting pytest coverage
if %errorlevel% neq 0 ( exit /b %errorlevel% )
:: No need to install faulthandler since we only test Python >= 3.6 on Windows
:: faulthandler is builtin since Python 3.3
diff --git a/.jenkins/pytorch/win-test.sh b/.jenkins/pytorch/win-test.sh
index abcd575..adf9b4c 100755
--- a/.jenkins/pytorch/win-test.sh
+++ b/.jenkins/pytorch/win-test.sh
@@ -14,6 +14,10 @@
export TMP_DIR="${PWD}/build/win_tmp"
export TMP_DIR_WIN=$(cygpath -w "${TMP_DIR}")
+export PROJECT_DIR="${PWD}"
+export PROJECT_DIR_WIN=$(cygpath -w "${PROJECT_DIR}")
+export TEST_DIR="${PWD}/test"
+export TEST_DIR_WIN=$(cygpath -w "${TEST_DIR}")
export PYTORCH_FINAL_PACKAGE_DIR="/c/users/circleci/workspace/build-results"
export PYTORCH_FINAL_PACKAGE_DIR_WIN=$(cygpath -w "${PYTORCH_FINAL_PACKAGE_DIR}")
@@ -45,6 +49,7 @@
$SCRIPT_HELPERS_DIR/test_libtorch.bat
else
if [[ "${JOB_BASE_NAME}" == *-test1 ]]; then
+ export PYTORCH_COLLECT_COVERAGE=1
$SCRIPT_HELPERS_DIR/test_python_nn.bat "$DETERMINE_FROM" && \
$SCRIPT_HELPERS_DIR/test_libtorch.bat
if [[ "${USE_CUDA}" == "1" ]]; then
@@ -59,3 +64,16 @@
}
run_tests && assert_git_not_dirty && echo "TEST PASSED"
+
+if [[ "${BUILD_ENVIRONMENT}" == "pytorch-win-vs2019-cuda10-cudnn7-py3" ]] && [[ "${JOB_BASE_NAME}" == *-test1 ]]; then
+ pushd $TEST_DIR
+ python -mpip install coverage
+ echo "Generating XML coverage report"
+ time python -mcoverage xml
+ popd
+
+ pushd $PROJECT_DIR
+ python -mpip install codecov
+ python -mcodecov
+ popd
+fi
diff --git a/codecov.yml b/codecov.yml
index 7ed3d66..525f85e 100644
--- a/codecov.yml
+++ b/codecov.yml
@@ -3,13 +3,18 @@
project:
default:
threshold: 1%
+codecov:
+ notify:
+ after_n_builds: 2
comment:
layout: "diff"
behavior: once
require_changes: true
require_base: yes
require_head: yes
+ after_n_builds: 2
branches:
- "master"
fixes:
- "/opt/conda/lib/python3.8/site-packages/::project/"
+ - "C:/Users/circleci/project/build/win_tmp/build/::project/"