Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add configuration for CI: Travis-CI and AppVeyor #112

Closed
wants to merge 7 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
86 changes: 86 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
# Travis integration file.
# Seattle supports Python 2.5 through 2.7, per
# seattle.poly.edu/wiki/ProgrammersPage
#
Copy link
Contributor

Choose a reason for hiding this comment

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

ProgrammersPage only mentions Python v2.5/v2.6
Either change on ProgrammersPage or link to https://seattle.poly.edu/wiki/BuildInstructions

Copy link
Collaborator

Choose a reason for hiding this comment

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

Addressed in https://github.com/SeattleTestbed/docs/blob/master/Contributing/BuildInstructions.md which supersedes the Trac wiki page.

However, we should note that we include Python 2.5 for testing still because it is what PlanetLab runs.

# Travis provides OS X and Linux (specifically Ubuntu) OS instances.
# The result of this configuration will be five separate builds on
# Travis-CI VMs, 3 python versions on Linux and 2 on OS X.

# Primarily because of some manual fiddling to get python 2.5 tests
# to work, we require the following directive - we need
# non-container-based infrastructure so that Travis allows us to use
# sudo.
sudo: required

matrix:
Copy link
Collaborator

Choose a reason for hiding this comment

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

Let's add a comment subsection mentioning that the following block is for Linux VMs. (See below for OS X, where this comment exists).

include:
# Linux Instances follow, one for each dash.
- language: python # Language to initiate linux VM
python: '2.7' # Version of python to use
os: linux # The OS of the VM
env: Python='2.7' PythonBin="python" # These are environment variables we'll use.
# In particular, PythonBin will specify the location of the python binary to use.
# The "Python" env variable there is redundant except for OS X runs below.
install: # tool installation
sudo apt-get update;

- language: python
python: '2.6'
os: linux
env: Python='2.6' PythonBin="python"
install:
sudo apt-get update;

# Because Travis-CI no longer offers the 2.5 environment by default,
# we'll manually install 2.5.... It's not even available on the common
# ubuntu repos, so we'll use the well-known deadsnakes repo.
- language: python
os: linux
env: Python='2.5' PythonBin="/usr/bin/python2.5"
install:
sudo add-apt-repository "ppa:fkrull/deadsnakes" -y;
sudo apt-get update;
sudo apt-get install python2.5;

# OS X Instances follow
# There is no OS X + PYTHON combination available by default, so we
# use the "language: generic" directive and we'll install python
# ourselves through some install directives.
# See references:
# github.com/travis-ci/travis-ci/issues/2312
# docs.travis-ci.com/user/languages/python
# docs.travis-ci.com/user/multi-os/#Python-example-%28unsupported-languages%29
# OS X Python current version (currently 2.7.11)
- language: generic
os: osx
env: Python='2.7' PythonBin="python"
install:
#brew update;
brew install python;

# OS X python 2.6.9
Copy link
Collaborator

Choose a reason for hiding this comment

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

Version doesn't match install command.

# We have to use pyenv to compile and install Python 2.6.9
# ourselves for OS X, as Travis-CI offers no OS X Python
# environments, and homebrew no longer offers a python26
# recipe.
- language: generic
os: osx
env: Python='2.6.9' PythonBin="/Users/travis/.pyenv/versions/2.6.9/bin/python"
install:
#brew update;
#brew install python26; # This is no longer available.
pyenv install 2.6.9;
pyenv global 2.6.9;

# These are the commands we'll run for each build, posting the python
# version we're *really* running, initializing to obtain needed common
# seattle projects, building the current seattle project, and running
# the seattle unit testing framework, with all tests.
script:
- $PythonBin --version;
- cd ./scripts;
- $PythonBin initialize.py;
- $PythonBin build.py -t;
- cd ../RUNNABLE;
- $PythonBin utf.py -a;

55 changes: 55 additions & 0 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Seattle supports Python 2.5 through 2.7, per https://seattle.poly.edu/wiki/ProgrammersPage
Copy link
Contributor

Choose a reason for hiding this comment

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

Same (change link) applies here.

# AppVeyor provides Windows-based testing.
# On Windows, we currently test on Python 2.6 and 2.7.
# The result of the current configuration should be 4 runs:
# 32bit platform, Python 2.6
# 64bit platform, Python 2.6
# 32bit platform, Python 2.7
# 64bit platform, Python 2.7

build: false

# Default OS is Windows Server 2012 R2
# As an example, uncommenting the 3 lines below would
# result in builds being run both on the current version
# of Windows Server 2012 R2 and the previous version of
# Windows Server 2012 R2.
#os:
# - Previous Windows Server 2012 R2
# - Windows Server 2012 R2

environment:
matrix:
# Run on each of the following two Python setups.
- PYTHON: "C:\\Python27"
PYTHON_VERSION: "2.7.x"

- PYTHON: "C:\\Python26"
PYTHON_VERSION: "2.6.x"

# AppVeyor no longer supports Python 2.5 by default. If necessary, we can
# try to figure out how to get it running, but it is not currently a
# priority.
#- PYTHON: "C:\\Python25"
# PYTHON_VERSION: "2.5.x"

# Run each on 32-bit and 64-bit platforms.
platform:
- x86
- x64

# These are the commands we'll run for each build, posting the python
# version we're *really* running, initializing to obtain needed common
# seattle projects, building the current seattle project, and running
# the seattle unit testing framework, with all tests.
test_script:
- "%PYTHON%\\python --version"
- "cd scripts"
- "%PYTHON%\\python initialize.py"
- "%PYTHON%\\python build.py -t"
Copy link
Contributor

Choose a reason for hiding this comment

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

Why not execute initialize.py and build.py under the custom build_script: section? This is just semantics, but semantics are nice.

- "cd ../RUNNABLE"
- "%PYTHON%\\python utf.py -a"


skip_commits:
message: /(Update README*|Created.*\.(png|jpg|jpeg|bmp|gif))/