From 056134ea24c0bf896c08e31bd7e5c1187805465f Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 23 Feb 2018 21:23:44 -0800 Subject: [PATCH] Switching to CircleCI (#765) * Untested first pass at a CircleCI configuration * Add git submodule checkout * Check which python is being used * activate the venv for each task? * try building with multiple Pythons in parallel * Turn off TravisCI by removing the config file * Add some comments --- .circleci/config.yml | 92 ++++++++++++++++++++++++++++++++++++++++++++ .travis.yml | 91 ------------------------------------------- 2 files changed, 92 insertions(+), 91 deletions(-) create mode 100644 .circleci/config.yml delete mode 100644 .travis.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 00000000..9145e2c4 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,92 @@ +# Python CircleCI 2.0 configuration file +# +# Check https://circleci.com/docs/2.0/language-python/ for more details +# +version: 2 + +# The configuration in this "shared" section are the things that each job will +# have in common, and are substituted into the jobs config below. It is the +# job definitions that specify the things that are unique to each job (like +# the Python version to use, via the docker image name). +shared: &shared + working_directory: ~/repo + + steps: + - checkout + - run: + name: checkout submodules + command: | + git submodule sync + git submodule update --init --recursive + + - run: + name: install apt packages + command: | + sudo apt-get update + sudo apt-get install -y libgtk2.0-dev libgtk-3-dev libjpeg-dev libtiff-dev \ + libsdl1.2-dev libgstreamer-plugins-base1.0-dev libnotify-dev freeglut3 \ + freeglut3-dev libsm-dev libwebkitgtk-dev libwebkitgtk-3.0-dev libxtst-dev \ + python-virtualenv + + - run: + name: install python packages + command: | + $MAKE_VENV + source venv/bin/activate + pip install -r requirements.txt + + - run: + name: build wxWidgets + command: | + source venv/bin/activate + python build.py --jobs=4 dox build_wx + + - run: + name: build wxPython + command: | + source venv/bin/activate + python build.py --jobs=4 etg --nodoc sip build_py + + - run: + name: build wheel and test install + command: | + source venv/bin/activate + python build.py bdist_wheel + python build.py install + python -c "import wx; print(wx.version())" + + +# We use one job for each version of Python that we want to build with. Each +# one gets its own copy of the shared config above. +jobs: + "Python-2.7": + <<: *shared + docker: + - image: circleci/python:2.7 + environment: + - MAKE_VENV: "python -m virtualenv venv" + + "Python-3.5": + <<: *shared + docker: + - image: circleci/python:3.5 + environment: + - MAKE_VENV: "python -m venv venv" + + "Python-3.6": + <<: *shared + docker: + - image: circleci/python:3.6 + environment: + - MAKE_VENV: "python -m venv venv" + + +# This workflow defines the jobs that comprise the "build" task. The jobs will +# be run in parallel. +workflows: + version: 2 + build: + jobs: + - "Python-2.7" + - "Python-3.5" + - "Python-3.6" diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index cf6e878b..00000000 --- a/.travis.yml +++ /dev/null @@ -1,91 +0,0 @@ -# -# Travis CI control file for building Phoenix -# - -language: python - -matrix: - include: - - os: linux - dist: trusty - sudo: required - python: 2.7 - - os: linux - dist: trusty - sudo: required - python: 3.4 - - os: linux - dist: trusty - sudo: required - python: 3.5 - - os: linux - dist: trusty - sudo: required - python: 3.6 - -# We should try this too -# - os: osx -# osx_image: xcode7.3 -# python: 2.7 -# - os: osx -# osx_image: xcode7.3 -# python: 3.4 -# - os: osx -# osx_image: xcode7.3 -# python: 3.5 -# - os: osx -# osx_image: xcode7.3 -# python: 3.6 - - - - # redundant specification of `sudo` and `python` because of travis-ci.org's way of parsing `.travis.yml` - -# Available build steps: -# 1. before_install -# 2. install -# 3. before_script -# 4. script -# 5. after_success or after_failure -# 6. after_script -# 7. OPTIONAL before_deploy -# 8. OPTIONAL deploy -# 9. OPTIONAL after_deploy - - - -addons: - apt: - packages: - - libwebkitgtk-dev - - libjpeg-dev - - libtiff-dev - - libgtk2.0-dev - - libsdl1.2-dev - - libgstreamer-plugins-base0.10-dev - - freeglut3 - - freeglut3-dev - - libnotify-dev - - libsm-dev - - libgtk-3-dev - - libwebkitgtk-3.0-dev - - libxtst-dev - - -install: - - echo "****** travis install step" - - pip install -U pip - - pip install -U -r requirements.txt - - pip list - - -script: - - echo "****** travis script step" - - python build.py dox - - python build.py build_wx --jobs=4 - - python build.py etg --nodoc - - python build.py sip - - python build.py build_py --jobs=4 - - python build.py bdist_wheel - - sudo python build.py install - # TODO: Add running of the tests