Skip to content

Commit

Permalink
Installs qemu pip requirements from qemu requirements file (apache#14355
Browse files Browse the repository at this point in the history
)
  • Loading branch information
perdasilva authored and haohuw committed Jun 23, 2019
1 parent 7b11389 commit b7fdc65
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 2 deletions.
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

0 comments on commit b7fdc65

Please sign in to comment.