diff --git a/ci/docker/qemu/runtime_functions.py b/ci/docker/qemu/runtime_functions.py index 8b8e5acb503c..5a57cb8dae6a 100755 --- a/ci/docker/qemu/runtime_functions.py +++ b/ci/docker/qemu/runtime_functions.py @@ -77,8 +77,8 @@ def run_ut_python3_qemu_internal(): logging.info("=== NOW Running inside QEMU ===") logging.info("PIP Installing %s", pkg) check_call(['sudo', 'pip3', 'install', pkg]) - logging.info("PIP Installing mxnet/tests/requirements.txt") - check_call(['sudo', 'pip3', 'install', '-r', 'mxnet/tests/requirements.txt']) + logging.info("PIP Installing mxnet/test_requirements.txt") + check_call(['sudo', 'pip3', 'install', '-r', 'mxnet/test_requirements.txt']) logging.info("Running tests in mxnet/tests/python/unittest/") check_call(['nosetests', '--with-timer', '--with-xunit', '--xunit-file', 'nosetests_unittest.xml', '--verbose', 'mxnet/tests/python/unittest/test_engine.py']) # Example to run a single unit test: diff --git a/ci/docker/qemu/vmcontrol.py b/ci/docker/qemu/vmcontrol.py index d80e22b1db85..31ef4d2550c3 100644 --- a/ci/docker/qemu/vmcontrol.py +++ b/ci/docker/qemu/vmcontrol.py @@ -229,6 +229,7 @@ def qemu_provision(ssh_port=QEMU_SSH_PORT): qemu_rsync(ssh_port, '/work/runtime_functions.py','') qemu_rsync(ssh_port, '/work/vmcontrol.py','') qemu_rsync(ssh_port, 'mxnet/tests', 'mxnet') + qemu_rsync(ssh_port, 'mxnet/ci/qemu/test_requirements.txt', 'mxnet/test_requirements.txt') logging.info("Provisioning completed successfully.") diff --git a/ci/qemu/README.md b/ci/qemu/README.md index 498f8b7a8739..4beca4a03690 100644 --- a/ci/qemu/README.md +++ b/ci/qemu/README.md @@ -86,3 +86,7 @@ pip3 install -r mxnet_requirements.txt To access qemu control console from tmux: `ctrl-a a c` + +# CI and Testing + +Formally, [runtime_functions.py](https://github.com/apache/incubator-mxnet/blob/master/ci/docker/qemu/runtime_functions.py) would [run](https://github.com/apache/incubator-mxnet/blob/8beea18e3d9835f90b59d3f9de8f9945ac819423/ci/docker/qemu/runtime_functions.py#L81) *pip install -r [mxnet/tests/requirements.txt](https://github.com/apache/incubator-mxnet/blob/master/tests/requirements.txt)*. If the requirements change, there can be an unfortunate side-effect that there are no wheel files for Raspberry Pi for the new requirement. This would trigger a build from source on the emulator, which can take a long time and cause job timeouts. Therefore, we no longer install the `tests/requirements.txt` requirements, but rather rely on [test_requirements.txt](https://github.com/apache/incubator-mxnet/blob/master/ci/qemu/test_requirements.txt) to maintain the requirements for the qemu tests. Should any requirements changes lead to a job time out, it is incumbent on the submitter to update the image to include the requirement and unblock ci. diff --git a/ci/qemu/test_requirements.txt b/ci/qemu/test_requirements.txt new file mode 100644 index 000000000000..77037d89c673 --- /dev/null +++ b/ci/qemu/test_requirements.txt @@ -0,0 +1,3 @@ +mock +nose +nose-timer \ No newline at end of file diff --git a/tests/requirements.txt b/tests/requirements.txt index f64f7ffb6705..8a68512514a2 100644 --- a/tests/requirements.txt +++ b/tests/requirements.txt @@ -1,4 +1,5 @@ # Requirements for tests, those are installed before running on the virtualenv +# Requirements for tests run within the qemu requirement see ci/qemu/test_requirements.txt mock nose nose-timer