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
This commit is contained in:
Robin Dunn
2018-02-23 21:23:44 -08:00
committed by GitHub
parent 72f079f30c
commit 056134ea24
2 changed files with 92 additions and 91 deletions

92
.circleci/config.yml Normal file
View File

@@ -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"

View File

@@ -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