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

[MXNET-908] Enable minimal OSX Travis build (v1.3.x) #13179

Closed
wants to merge 4 commits into from
Closed
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
114 changes: 22 additions & 92 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,108 +1,38 @@
sudo: false
sudo: true

language: cpp

cache: ccache

os:
# - linux
- osx

osx_image: xcode8

env:
# code analysis
# - TASK=lint
# build mxnet.so with CUDA
# - TASK=build
# run tests/cpp
- TASK=cpp_test
# run tests/python
- TASK=python_test
- TASK=r_test
# - TASK=julia JULIA_VER=0.4
# - TASK=scala_test

# TODO, R test, distributed test, clang, more g++ versions
osx_image: xcode9.4

matrix:
include:
- # os: linux
# dist: trusty
# env: TASK=perl_test
- os: osx
## sudo is required because
## prexexisting packages conflict
## with new ones.
## would be nice to have macports
## on travis osx, it has all needed perl packages
sudo: required
env: TASK=perl_test
# env: TASK=julia JULIA_VER=0.4
# - os: linux
# env: TASK=build
# - os: linux
# env: TASK=cpp_test
# - os: linux
# env: TASK=python_test
# - os: linux
# env: TASK=r_test
# - os: linux
# env: TASK=scala_test

# dependent apt packages
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- doxygen
- wget
- git
- libcurl4-openssl-dev
- unzip
- libatlas-dev
- libopencv-dev
- gcc-4.8
- g++-4.8
- python-numpy
- python-nose
- python3-numpy
- python3-dev
- python3-nose
- python-h5py
- python3-h5py
- graphviz
- libmouse-perl
- pdl
- cpanminus
- swig
- libgraphviz-perl

before_install:
- export NVCC_PREFIX=${HOME}
- source dmlc-core/scripts/travis/travis_setup_env.sh
- export PYTHONPATH=${PYTHONPATH}:${PWD}/python
- export MAVEN_SKIP_RC=true
- export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=256m -XX:-UseGCOverheadLimit -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC"

install:
- source tests/travis/setup.sh

- brew install ccache
- export PATH="/usr/local/opt/ccache/libexec:$PATH"
- source ci/travis/install.sh

# We build with 2 concurrent jobs to match the number of cores present on MacOS virutal machines.
# nproc does not report the correct number of cores reliably in Travis, so using nproc is not
# recommended.
# https://docs.travis-ci.com/user/reference/overview/
script:
- tests/travis/run_test.sh

cache:
directories:
- ${HOME}/.cache/usr

before_cache:
- dmlc-core/scripts/travis/travis_before_cache.sh

after_failure:
- tests/travis/travis_after_failure.sh

notifications:
# Emails are sent to the committer's git-configured email address by default,
email:
on_success: change
on_failure: always
#slack: dmlc:NmroCzntCiWOuxUZpii40USd
- export MXNET_STORAGE_FALLBACK_LOG_VERBOSE=0
- mv make/osx.mk config.mk
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CMake?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't want to modify code for now, just porting things.

- make -j 2

# Temporarily disabled due to https://github.com/apache/incubator-mxnet/issues/13136
# We ignore several tests to avoid possible timeouts on large PRs.
# This lowers our test coverage, but is required for consistent Travis runs.
# These tests will be tested in a variety of environments in Jenkins based tests.
# - python -m nose --with-timer --exclude-test=test_sparse_operator.test_elemwise_binary_ops --exclude-test=test_gluon_model_zoo.test_models --exclude-test=test_random.test_shuffle --exclude-test=test_operator.test_broadcast_binary_op --exclude-test=test_operator.test_pick --exclude-test=test_profiler.test_continuous_profile_and_instant_marker --exclude-test=test_metric_perf.test_metric_performance --exclude-test=test_operator.test_order --verbose tests/python/unittest/
# - python2 -m nose --verbose tools/coreml/test --exclude-test=test_mxnet_image
16 changes: 10 additions & 6 deletions tests/travis/travis_after_failure.sh → ci/travis/install.sh
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,14 @@
# specific language governing permissions and limitations
# under the License.


if [ ${TASK} == "r_test" ]; then
echo "Print the install log..."
cat mxnet.Rcheck/*.out
echo "Print the check log..."
cat mxnet.Rcheck/*.log
if [ ${TRAVIS_OS_NAME} == "osx" ]; then
brew update
brew install opencv
brew install python3
brew install fftw
brew install libpng
brew install ImageMagick
brew install swig
python -m pip install --user nose numpy cython scipy requests mock
python3 -m pip install --user nose numpy cython scipy requests mock
fi
2 changes: 1 addition & 1 deletion src/initialize.cc
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ class LibraryInitializer {
// Make children single threaded since they are typically workers
dmlc::SetEnv("MXNET_CPU_WORKER_NTHREADS", 1);
dmlc::SetEnv("OMP_NUM_THREADS", 1);
#if MXNET_USE_OPENCV
#if MXNET_USE_OPENCV && !__APPLE__
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the reason for not disabling opencv threads on mac?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@KellenSunderland do you know why this is done? As said previously, my task here was to port commits from master to the release branch and make only necessary changes.

cv::setNumThreads(0); // disable opencv threading
#endif // MXNET_USE_OPENCV
engine::OpenMP::Get()->set_enabled(false);
Expand Down
60 changes: 0 additions & 60 deletions tests/travis/is_core_changed.sh

This file was deleted.

21 changes: 0 additions & 21 deletions tests/travis/r_vignettes.R

This file was deleted.

Loading