Skip to content

Commit

Permalink
Merge pull request #2437 from tardyp/release
Browse files Browse the repository at this point in the history
release notes for 0.9.0
  • Loading branch information
tardyp committed Oct 5, 2016
2 parents b4f9ac2 + f5d33dd commit 6adda91
Show file tree
Hide file tree
Showing 5 changed files with 254 additions and 32 deletions.
184 changes: 184 additions & 0 deletions .bbtravis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
# BBTravis CI configuration file

language: python

# Available Python versions:
# http://about.travis-ci.org/docs/user/ci-environment/#Python-VM-images
python:
- "2.7"

env:
global:
- BUILDBOT_TEST_DB_URL=sqlite://
matrix:
# lint, docs and coverage first as they're more likely to find issues
- TWISTED=latest SQLALCHEMY=latest TESTS=lint
- TWISTED=latest SQLALCHEMY=latest TESTS=docs
- TWISTED=latest SQLALCHEMY=latest TESTS=coverage

# add js tests in separate job. Start it early because it is quite long
- TWISTED=latest SQLALCHEMY=latest TESTS=js

- TWISTED=14.0.2 SQLALCHEMY=latest TESTS=trial
- TWISTED=15.4.0 SQLALCHEMY=latest TESTS=trial
- TWISTED=latest SQLALCHEMY=latest TESTS=trial
# Configuration when SQLite database is persistent between running tests
# (by default in other tests in-memory SQLite database is used which is
# recreated for each test).
# Helps to detect issues with incorrect database setup/cleanup in tests.
#- TWISTED=latest SQLALCHEMY=latest TESTS=trial BUILDBOT_TEST_DB_URL=sqlite:////tmp/test_db.sqlite
# Configuration that runs tests with real MySQL database (TODO does not work yet with our docker image)
#- TWISTED=latest SQLALCHEMY=latest TESTS=trial BUILDBOT_TEST_DB_URL=mysql+mysqldb://travis@127.0.0.1/bbtest
#- TWISTED=latest SQLALCHEMY=latest TESTS=trial BUILDBOT_TEST_DB_URL=mysql+mysqldb://travis@127.0.0.1/bbtest&storage_engine=InnoDB
# Configuration that runs tests with real PostgreSQL database with pg8000 and psycopg2 drivers
#- TWISTED=latest SQLALCHEMY=latest TESTS=trial BUILDBOT_TEST_DB_URL=postgresql+psycopg2:///bbtest?user=postgres
#- TWISTED=latest SQLALCHEMY=latest TESTS=trial BUILDBOT_TEST_DB_URL=postgresql+pg8000:///bbtest?user=postgres

# Test different versions of SQLAlchemy
- TWISTED=15.5.0 SQLALCHEMY=0.8.0 TESTS=trial
- TWISTED=15.5.0 SQLALCHEMY=latest TESTS=trial

# Configuration to run `python setup.py test` to check this test runner.
# - TWISTED=latest SQLALCHEMY=latest TESTS=setuppy_test

cache:
directories:
- $HOME/.cache/pip
- www/base/node_modules
- www/codeparameter/node_modules
- www/console_view/node_modules
- www/waterfall_view/node_modules
- www/nestedexample/node_modules
- www/base/libs
- www/codeparameter/libs
- www/console_view/libs
- www/waterfall_view/libs
- www/nestedexample/libs

matrix:
fast_finish: true
include:
# Tests of buildbot-worker on python 2.6
# Specify SQLALCHEMY=latest to avoid errors installing.
#- python: "2.6"
# env: TWISTED=14.0.2 TESTS=trial_worker SQLALCHEMY=latest
#- python: "2.6"
# env: TWISTED=15.4.0 TESTS=trial_worker SQLALCHEMY=latest
# python 3 tests
# - python: "3.4"
# env: TWISTED=latest SQLALCHEMY=latest TESTS=py3

# Dependencies installation commands
install:
- pip install -U pip
# codecov is the interface to codecov.io; see after_success
# Install MySQL-python for tests that uses real MySQL
# Install psycopg2 and pg8000 for tests that uses real PostgreSQL
- |
# pip installs
set -e
[ $TWISTED = latest ] || pip install Twisted==$TWISTED
[ $SQLALCHEMY = latest ] || pip install sqlalchemy==$SQLALCHEMY
[ $TESTS != trial -a $TESTS != coverage -a $TESTS != lint -a $TESTS != js ] || \
pip install -e pkg \
-e 'master[tls,test]' \
-e worker \
MySQL-python \
psycopg2 \
pg8000 \
codecov
[ $TESTS != trial_worker ] || pip install -e worker
[ $TESTS != trial -a $TESTS != coverage ] || pip install --pre buildbot_www
[ $TESTS != py3 ] || pip install -e worker future
[ $python != 2.6 ] || pip install 'astroid<1.3.0'
[ $TESTS != lint ] || pip install sphinx 'pylint==1.1.0' 'flake8~=2.6.0' 'astroid==1.3.8'
[ $TESTS != docs ] || pip install -e './master[docs]'
[ $TESTS != setuppy_test ] || ! (pip list | grep Twisted)
[ $TESTS != setuppy_test ] || pip install autobahn Twisted
before_script:
# create real database for tests
- condition: '"mysql" in BUILDBOT_TEST_DB_URL'
cmd: mysql -e 'create database bbtest;'
- condition: '"postgresql" in BUILDBOT_TEST_DB_URL'
cmd: psql -c 'create database bbtest;' -U postgres

# Tests running commands
script:
# make frontend_install_tests takes 17 min, so we only do it post submit
- title: frontend tests
condition: TESTS == "js" and TRAVIS_PULL_REQUEST
cmd: make frontend

- title: full frontend tests
condition: TESTS == "js" and not TRAVIS_PULL_REQUEST
cmd: make frontend_install_tests

- title: master and worker tests
condition: TESTS == "trial"
cmd: trial --reporter=text --rterrors buildbot.test buildbot_worker.test

- title: worker tests
condition: TESTS == "trial_worker"
cmd: trial --reporter=text --rterrors buildbot_worker.test

# run tests under coverage for latest only (it's slower..)
- title: coverage tests
condition: TESTS == "coverage"
cmd: coverage run --rcfile=.coveragerc $(which trial) --reporter=text --rterrors buildbot.test buildbot_worker.test

- title: py3 tests
condition: TESTS == "py3"
cmd: trial --reporter=text --rterrors buildbot_worker.test"

# Run additional tests in their separate job (TODO pylint crashes on our docker image)
# - title: pylint
# condition: TESTS == "lint"
# cmd: make pylint

- title: flake8
condition: TESTS == "lint"
cmd: make flake8

- title: isort
condition: TESTS == "lint"
cmd: isort --check -df `git ls-files |grep '.py$'`

# Build documentation
- title: docs
condition: TESTS == "docs"
cmd: make docs

# Run spell checker on documentation
- title: spelling
condition: TESTS == "docs"
cmd: make -C master/docs SPHINXOPTS=-W spelling

# Runs Sphinx' external link checker only on post submit build (it is too unstable)
- title: linkcheck
condition: TESTS == "docs" and not TRAVIS_PULL_REQUEST
cmd: make -C master/docs SPHINXOPTS=-q linkcheck

notifications:
email: false

after_success:
- |
# codecov
[ $TESTS != coverage ] || codecov
after_script:
# List installed packages along with their versions.
- "pip list"

sudo: false
branches:
# Only build main-line branches.
only:
- master
- eight
git:
depth: 300
22 changes: 17 additions & 5 deletions master/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,26 +1,38 @@
# buildbot/buildbot-master

# please follow docker best practices
# https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
#
# Provides a base alpine 3.4 image with latest buildbot master installed
# Alpine base build is ~130MB vs ~500MB for the ubuntu build

# Note that the UI and worker packages are the latest version published on pypi (including rc/beta)
# This is to avoid pulling node inside this container

FROM alpine:3.4
MAINTAINER Buildbot maintainers

# Last build date - this can be updated whenever there are security updates so
# that everything is rebuilt
ENV security_updates_as_of 2016-06-20
ENV security_updates_as_of 2016-08-25

COPY . /usr/src/buildbot
# We install as much as possible python packages from the distro in order to avoid
# having to pull gcc for building native extensions
# Some packages are at the moment (06/2016) only available on @testing
# Some packages are at the moment (08/2016) only available on @testing
RUN \
echo @testing http://nl.alpinelinux.org/alpine/edge/testing >> /etc/apk/repositories && \
echo @edge http://nl.alpinelinux.org/alpine/edge/community >> /etc/apk/repositories && \
apk add --no-cache \
python \
py-pip \
py-psycopg2 py-twisted py-cryptography \
py-service_identity@testing py-sqlalchemy@testing \
gosu@testing dumb-init@testing\
py-psycopg2 \
py-twisted \
py-cryptography@edge \
py-service_identity@edge \
py-sqlalchemy@edge \
gosu@testing \
dumb-init@edge\
py-jinja2 && \
python -m ensurepip && \
rm -r /usr/lib/python*/ensurepip && \
Expand Down
28 changes: 20 additions & 8 deletions master/Dockerfile.ubuntu
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# buildbot/buildbot-master-ubuntu

# please follow docker best practices
# https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/

# Provides a base Ubuntu (16.04) image with latest buildbot master installed
# (based on twisted dockerfile https://github.com/cyli/docker-twisted)

FROM ubuntu:16.04
MAINTAINER Buildbot maintainers
Expand All @@ -10,19 +12,29 @@ MAINTAINER Buildbot maintainers
# that everything is rebuilt
ENV security_updates_as_of 2016-07-30

# This will make apt-get install without question
ENV DEBIAN_FRONTEND noninteractive

ADD . /usr/src/buildbot
# Install security updates and required packages
RUN apt-get update && \
apt-get -y upgrade && \
apt-get -y install -q \
build-essential \
python-dev libffi-dev libssl-dev python-pip \
python-psycopg2

# Install required python packages, and twisted
RUN pip install --upgrade pip setuptools && \
pip install service_identity pycrypto && \
pip install twisted && \
python-dev \
libffi-dev \
libssl-dev \
python-pip \
python-psycopg2 && \
rm -rf /var/lib/apt/lists/* && \
\
echo Install required python packages, and twisted && \
\
pip install --upgrade pip setuptools && \
pip install \
service_identity \
pycrypto \
twisted && \
pip install --pre "buildbot[bundle]" && \
pip install "/usr/src/buildbot"

Expand Down
9 changes: 2 additions & 7 deletions master/docs/relnotes/0.9.0.rst
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
Release Notes for Buildbot ``0.9.0``
========================================

.. warning::

The following are temporary release notes for unreleased version of buildbot.

The following are the release notes for Buildbot ``0.9.0``.
This version was released on October 6, 2016.

This is a concatenation of important changes done between 0.8.12 and 0.9.0.
This does not contain details of the bug fixes related to the nine beta and rc period.
Expand Down Expand Up @@ -648,6 +645,4 @@ For a more detailed description of the changes made in this version, see the git

.. code-block:: bash
git log v0.9.0b9..v0.9.0rc1
Note that Buildbot-0.8.11 was never released.
git log v0.8.12..v0.9.0
43 changes: 31 additions & 12 deletions worker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,32 +1,51 @@
# buildbot/buildbot-worker

# Provides a base Ubuntu (14.04) image with latest buildbot worker installed
# (based on twisted dockerfile https://github.com/cyli/docker-twisted)
# Provides a base Ubuntu (16.04) image with latest buildbot worker installed
# the worker image is not optimized for size, but rather uses ubuntu for wider package availability

FROM ubuntu:14.04
FROM ubuntu:16.04
MAINTAINER Buildbot maintainers

COPY . /usr/src/buildbot-worker
COPY docker/buildbot.tac /buildbot/buildbot.tac

# Last build date - this can be updated whenever there are security updates so
# that everything is rebuilt
ENV security_updates_as_of 2016-06-20
ENV security_updates_as_of 2016-10-06

# This will make apt-get install without question
ENV DEBIAN_FRONTEND noninteractive

# Install security updates and required packages
RUN apt-get update && \
apt-get -y upgrade && \
apt-get -y install -q \
build-essential \
git \
subversion \
python-dev libffi-dev libssl-dev python-pip

build-essential \
git \
subversion \
python-dev \
libffi-dev \
libssl-dev \
python-pip \
python-virtualenv \
curl && \
rm -rf /var/lib/apt/lists/*
# Test runs produce a great quantity of dead grandchild processes. In a
# non-docker environment, these are automatically reaped by init (process 1),
# so we need to simulate that here. See https://github.com/Yelp/dumb-init
RUN curl -Lo /usr/local/bin/dumb-init https://github.com/Yelp/dumb-init/releases/download/v1.1.3/dumb-init_1.1.3_amd64 && \
chmod +x /usr/local/bin/dumb-init
# Install required python packages, and twisted
RUN pip install service_identity pycrypto && \
pip install twisted && \
RUN pip install \
service_identity \
pycrypto \
twisted && \
pip install /usr/src/buildbot-worker

RUN useradd -ms /bin/bash buildbot && chown -R buildbot /buildbot

USER buildbot

WORKDIR /buildbot

CMD ["twistd", "-ny", "buildbot.tac"]
CMD ["/usr/local/bin/dumb-init", "twistd", "-ny", "buildbot.tac"]

0 comments on commit 6adda91

Please sign in to comment.