Skip to content
This repository has been archived by the owner on Aug 26, 2022. It is now read-only.

Commit

Permalink
Merge pull request #4239 from mozilla/no-ansible-1352232
Browse files Browse the repository at this point in the history
bug 1352232: Remove Ansible from py27 build
  • Loading branch information
jgmize committed May 19, 2017
2 parents 5c69670 + c0e6ec2 commit 46e9ab9
Show file tree
Hide file tree
Showing 5 changed files with 98 additions and 48 deletions.
61 changes: 46 additions & 15 deletions .travis.yml
Expand Up @@ -2,38 +2,69 @@ sudo: required
branches:
only:
- master
cache: pip
cache:
pip: True
directories:
- node_modules
- downloads
language: python
python:
- "2.7"
services:
- docker
- memcached
- mysql
env:
global:
- DATABASE_URL=mysql://root:@127.0.0.1:3306/kuma
- DJANGO_SETTINGS_MODULE=kuma.settings.travis
- DOCKER_COMPOSE_VERSION=1.9.0
# ES_VERSION must come before ES_DOWNLOAD_URL
- ES_VERSION=2.4.5
- ES_DOWNLOAD_URL=https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/$ES_VERSION/elasticsearch-$ES_VERSION.tar.gz
- PIPELINE_CSSMIN_BINARY=$TRAVIS_BUILD_DIR/node_modules/.bin/cssmin
- PIPELINE_CSS_COMPRESSOR=pipeline.compressors.cssmin.CSSMinCompressor
- PIPELINE_JS_COMPRESSOR=pipeline.compressors.uglifyjs.UglifyJSCompressor
- PIPELINE_SASS_BINARY=$TRAVIS_BUILD_DIR/node_modules/.bin/node-sass
- PIPELINE_UGLIFYJS_BINARY=$TRAVIS_BUILD_DIR/node_modules/.bin/uglifyjs
matrix:
- TOXENV=py27
CREATE_DB=kuma
INSTALL_PIPELINE=1
INSTALL_ELASTICSEARCH=1
PYTHONHASHSEED=0
- TOXENV=flake8
- TOXENV=docs
- TOXENV=locales DOCKER_COMPOSE_VERSION=1.9.0
- TOXENV=docker DOCKER_COMPOSE_VERSION=1.9.0 UID=0
- TOXENV=locales
INSTALL_DOCKER_COMPOSE=1
- TOXENV=docker
INSTALL_DOCKER_COMPOSE=1
UID=0
- TOXENV=stylelint
global:
- DJANGO_SETTINGS_MODULE=kuma.settings.travis
- DEBIAN_FRONTEND=noninteractive
- DATABASE_URL=mysql://root:kuma@localhost:3306/kuma
- CFLAGS=-O0
# TODO: make this default when http://bugzil.la/1127798 is fixed
- TOXENV=py27
CREATE_DB=kuma
INSTALL_PIPELINE=1
INSTALL_ELASTICSEARCH=1

matrix:
allow_failures:
- env: TOXENV=locales DOCKER_COMPOSE_VERSION=1.9.0
before_install:
- scripts/travis-install
- pip install -U pip
- env: TOXENV=locales INSTALL_DOCKER_COMPOSE=1
- env: TOXENV=py27 CREATE_DB=kuma INSTALL_PIPELINE=1 INSTALL_ELASTICSEARCH=1
install:
- pip install -r requirements/travis.txt
- if [[ $TOXENV == 'py27' ]]; then ansible-playbook -vvv --tags=mysql,pipeline --connection=local --inventory-file=provisioning/inventory provisioning/travis.yml; fi
- nvm install 6
- nvm use 6
script: tox -v
- scripts/travis-install
- pip install -U pip
- pip install -r requirements/travis.txt
# Wait for ElasticSearch to be ready
- if [[ "$INSTALL_ELASTICSEARCH" == "1" ]]; then wget -q --waitretry=1 --retry-connrefused -T 10 -O - http://127.0.0.1:9200; fi;
script:
if [[ "$PYTHONHASHSEED" == "0" ]]; then
tox -v --hashseed=noset;
else
tox -v;
fi
after_failure:
- dmesg | tail
after_success:
Expand Down
1 change: 0 additions & 1 deletion requirements/travis.txt
@@ -1,6 +1,5 @@
# this is a standalone requirements file used in .travis.yml to install
# Travis CI specific requirements
ansible==1.9.2
codecov==1.6.3
# Keep in sync w/ dev.txt
tox==2.3.1
Expand Down
2 changes: 0 additions & 2 deletions scripts/docker-compose.travis.yml
Expand Up @@ -6,8 +6,6 @@ services:
dockerfile: Dockerfile-base
environment:
- DJANGO_SETTINGS_MODULE
- DEBIAN_FRONTEND
- CFLAGS

web:
<<: *worker
Expand Down
69 changes: 46 additions & 23 deletions scripts/travis-install
@@ -1,34 +1,57 @@
#!/bin/bash
set -e
set -x
set -e # Exit on non-zero status
set -x # Print commands run
set -u # Treat unset variables as an error

export LC_CTYPE=en_US.UTF-8

if [ "$TOXENV" == "py27" ]
# Download ElasticSearch
if [ ${INSTALL_ELASTICSEARCH:-0} -ne 0 ]
then
sudo apt-get update -qq
sudo apt-get -y install build-essential libxml2-dev libxslt-dev libjpeg8 libjpeg8-dev libfreetype6 libfreetype6-dev zlib1g-dev sqlite3 tidy libtidy-dev libtidy-0.99-0 python-dev libffi-dev libssl-dev
sudo ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib
sudo ln -s /usr/lib/`uname -i`-linux-gnu/libz.so /usr/lib
mkdir -p downloads
wget -q -O downloads/elasticsearch-$ES_VERSION.tar.gz $ES_DOWNLOAD_URL
tar -zxf downloads/elasticsearch-$ES_VERSION.tar.gz
fi

# completely and utterly remove Travis' MySQL and let the Ansible role install it
sudo apt-get remove --purge 'mysql*'
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /var/lib/mysql
# Run ElasticSearch in background
(if [ ${INSTALL_ELASTICSEARCH:-0} -ne 0 ]
then
./elasticsearch-$ES_VERSION/bin/elasticsearch 1> elasticsearch.log 2> elasticsearch.err
fi) &

# Install Elasticsearch
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.deb
sudo dpkg -i elasticsearch-1.7.2.deb

# limit elasticsearch / java memory usage to avoid OOM Killer
sudo service elasticsearch stop;
echo "ES_HEAP_SIZE=256m" | sudo tee --append /etc/default/elasticsearch
sudo service elasticsearch start;
# Get database ready
if [ -n "${CREATE_DB:-}" ]
then
mysql -e "CREATE DATABASE IF NOT EXISTS ${CREATE_DB};";
fi

# Install pipeline toolchain
if [ ${INSTALL_PIPELINE:-0} -ne 0 ]
then
npm install
npm install cssmin@0.4.3
npm install uglify-js@2.4.13
fi

if [ "$TOXENV" == "docker" -o "$TOXENV" == "locales" ]
# Install docker-compose
if [ ${INSTALL_DOCKER_COMPOSE:--} -ne 0 ]
then
curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
chmod +x docker-compose
sudo mv docker-compose /usr/local/bin
if [ -x $(command -v docker-compose) ]
then
echo "Overwriting existing docker-compose."
docker-compose -v
else
echo "Installing docker-compose ${DOCKER_COMPOSE_VERSION}."
fi
mkdir -p downloads
DOCKER_COMPOSE_FILE=downloads/docker-compose-${DOCKER_COMPOSE_VERSION}
if [ ! -f $DOCKER_COMPOSE_FILE ]
then
wget -q --waitretry=1 --retry-connrefused -T 10 \
-O downloads/docker-compose-${DOCKER_COMPOSE_VERSION} \
https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m`
fi
chmod +x $DOCKER_COMPOSE_FILE
sudo cp $DOCKER_COMPOSE_FILE /usr/local/bin/docker-compose
fi
13 changes: 6 additions & 7 deletions tox.ini
Expand Up @@ -7,13 +7,12 @@ whitelist_externals = make
deps =
-rrequirements/dev.txt
commands =
make compilejsi18n collectstatic coveragetest target={posargs:kuma}
setenv =
PYTHONPATH = .
CFLAGS = -O0
# TODO: remove once http://bugzil.la/1127798 is fixed
PYTHONHASHSEED = 0
passenv=DJANGO_SETTINGS_MODULE DEBIAN_FRONTEND CFLAGS
make compilejsi18n collectstatic clean
py.test --no-migrations --cov=kuma kuma
passenv =
DATABASE_URL
DJANGO_SETTINGS_MODULE
PIPELINE_*

[testenv:flake8]
basepython = python2.7
Expand Down

0 comments on commit 46e9ab9

Please sign in to comment.