Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I build a python project with osx environment on travis

I am trying to build osx support for a project on Travis. The problem is osx don't ship python virtualenv natively. Here is the issue for that. I have gone through that issue and modified my travis file accordingly. Still my builds are failing with osx. Here is a travis build link. Here is my travis.yml file

language: python
matrix:
    include:
        # Use the built in venv for linux builds
        - os: linux
          sudo: required
          python: "2.7"
          dist: trusty

        - os: linux
          sudo: required
          python: "3.5"
          dist: trusty

        - os: linux
          sudo: required
          python: "3.6"
          dist: trusty

        # Use generic language for osx
        - os: osx
          language: generic
          python: "2.7"

        - os: osx
          language: generic
          python: "3.5"

        - os: osx
          language: generic
          python: "3.6"

before_install:
 - .travis/before_install.sh
 - mkdir $HOME/data
 - echo $PWD
 - cd $HOME/data && wget ftp://ftp.astron.nl/outgoing/Measures/WSRT_Measures.ztar && tar xf WSRT_Measures.ztar && cd -
 - echo $PWD
install:
 - export PATH="$HOME/miniconda/bin:$PATH"
 - source activate testenv
 - export CPATH="$HOME/miniconda/envs/testenv/include:$CPATH"
 - echo $CPATH
 - python setup.py develop
 - pip install -r tests/requirements.txt
 - pip install coveralls travis-sphinx
script:
 - nosetests --with-coverage
 - travis-sphinx --nowarn -s doc build

and Here is my before_install.sh file.

set -e
set -v

if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then 
    if [[ "$TRAVIS_PYTHON_VERSION" == "2.7" ]]; then
        brew install python;
        virtualenv venv -p python;
        source venv/bin/activate;
    else
        brew install python3;
        virtualenv venv -p python3;
        source venv/bin/activate;
    fi
fi


if [ "$TRAVIS_OS_NAME" = linux ]; then
    sudo apt-get update
    MINICONDAVERSION="Linux"
else
    MINICONDAVERSION="MacOSX"
fi

if [[ "$TRAVIS_PYTHON_VERSION" == "2.7" ]]; then
  wget https://repo.continuum.io/miniconda/Miniconda2-latest-$MINICONDAVERSION-x86_64.sh -O miniconda.sh;
else
  wget https://repo.continuum.io/miniconda/Miniconda3-latest-$MINICONDAVERSION-x86_64.sh -O miniconda.sh;
  fi

bash miniconda.sh -b -p $HOME/miniconda
export PATH="$HOME/miniconda/bin:$PATH"
hash -r
conda config --set always_yes yes --set changeps1 no
conda update -q conda
conda config --add channels conda-forge
# Useful for debugging any issues with conda
conda info -a
which python
conda create -q -n testenv python=$TRAVIS_PYTHON_VERSION casacore=2.3.0

echo "measures.directory: /home/travis/data" > $HOME/.casarc

It states the following error when I tried to build a conda environment.

CondaValueError: invalid package specification: python=
like image 381
Shibasis Patel Avatar asked Jul 22 '17 17:07

Shibasis Patel


People also ask

Can I use Travis CI for free?

If you're not familiar with Travis CI, it's a build company that has been powering the continuous integration (CI) of many open source projects since it launched in 2011. It was the first build solution that was free for open source use and that easily integrated into GitHub.

Which Travis CI infrastructure environment runs full virtual machines?

Our default infrastructure is an Ubuntu Linux ( os: linux ) virtual machine running on AMD64 architecture ( arch: amd64 ), on Google Compute Engine.

Which of the following file is used to configure the Travis CI?

Configuration. Travis CI is configured by adding a file named . travis. yml , which is a YAML format text file, to the root directory of the repository.

Which of the following networking tools are supported by Travis CI?

Travis CI Features: Support for 21 languages like Android, C, C#, C++, Java, JavaScript (with Node. js), Perl, PHP, Python, R, Ruby, etc. Pre-installed build & test tools. Available services – databases, message queues, etc.


1 Answers

Like @randomir recommended in the comments,
Look at the Travis docs running python on OSX
and be sure you define your TRAVIS_PYTHON_VERSION

like image 113
joshkmartinez Avatar answered Oct 23 '22 18:10

joshkmartinez