Skip to content
This repository has been archived by the owner on Nov 17, 2023. It is now read-only.

Updates qemu framework to install pip requirements from its own requirements file #14355

Merged
merged 1 commit into from
Mar 7, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions ci/docker/qemu/runtime_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
1 change: 1 addition & 0 deletions ci/docker/qemu/vmcontrol.py
Original file line number Diff line number Diff line change
Expand Up @@ -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.")


Expand Down
4 changes: 4 additions & 0 deletions ci/qemu/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
3 changes: 3 additions & 0 deletions ci/qemu/test_requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
mock
nose
nose-timer
1 change: 1 addition & 0 deletions tests/requirements.txt
Original file line number Diff line number Diff line change
@@ -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
Expand Down