You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@couchdb.apache.org by ba...@apache.org on 2016/01/26 15:34:31 UTC

couchdb-ci git commit: add Ubuntu 14.04 with default Erlang

Repository: couchdb-ci
Updated Branches:
  refs/heads/master 376ecb854 -> c95a6e7f2


add Ubuntu 14.04 with default Erlang

this also splits the Ansible code into multiple roles that can be reused
and combined.


Project: http://git-wip-us.apache.org/repos/asf/couchdb-ci/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-ci/commit/c95a6e7f
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-ci/tree/c95a6e7f
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-ci/diff/c95a6e7f

Branch: refs/heads/master
Commit: c95a6e7f2791b8c0d93047b2f8a78dd4674e49fb
Parents: 376ecb8
Author: Bastian Krol <ba...@apache.org>
Authored: Mon Jan 25 17:26:18 2016 +0100
Committer: Bastian Krol <ba...@apache.org>
Committed: Tue Jan 26 15:28:27 2016 +0100

----------------------------------------------------------------------
 .../docker-inventories/ubuntu-14.04-erlang-18   | 19 +++++
 .../ubuntu-14.04-erlang-default                 | 19 +++++
 ansible/docker-inventories/ubuntu-worker        | 29 -------
 ansible/roles/common/files/build-ci.sh          | 36 +++++++++
 ansible/roles/common/tasks/couchdb.yml          | 70 +++++++++++++++++
 ansible/roles/common/tasks/main.yml             | 18 +++++
 ansible/roles/erlang-18/tasks/main.yml          | 46 +++++++++++
 ansible/roles/erlang-default/tasks/main.yml     | 30 ++++++++
 .../roles/ubuntu-1404/tasks/dependencies.yml    | 58 ++++++++++++++
 ansible/roles/ubuntu-1404/tasks/main.yml        | 18 +++++
 ansible/roles/ubuntu-worker/files/build-ci.sh   | 36 ---------
 ansible/roles/ubuntu-worker/tasks/couchdb.yml   | 70 -----------------
 .../roles/ubuntu-worker/tasks/dependencies.yml  | 80 --------------------
 ansible/roles/ubuntu-worker/tasks/main.yml      | 19 -----
 ansible/run-ansible-local.sh                    |  6 +-
 ansible/site.yml                                | 15 +++-
 .../ubuntu-14.04-erlang-18.sh                   | 28 +++++++
 .../ubuntu-14.04-erlang-default.sh              | 28 +++++++
 bin/enter-container/ubuntu-14.04-erlang-18      | 20 +++++
 bin/enter-container/ubuntu-14.04-erlang-default | 20 +++++
 bin/print-erlang-version.sh                     |  3 +
 bin/publish-container/ubuntu-14.04-erlang-18.sh |  1 +
 .../ubuntu-14.04-erlang-default.sh              |  1 +
 .../ubuntu-14.04-erlang-18                      | 20 +++++
 .../ubuntu-14.04-erlang-default                 | 20 +++++
 build-container.sh                              | 20 -----
 docker/ubuntu-14.04-erlang-18/Dockerfile        | 37 +++++++++
 docker/ubuntu-14.04-erlang-default/Dockerfile   | 37 +++++++++
 docker/ubuntu-worker/Dockerfile                 | 37 ---------
 enter-container.sh                              | 26 -------
 jenkins/build.sh                                |  4 +
 push-container.sh                               |  1 -
 readme.markdown                                 | 28 ++-----
 run-build-in-container.sh                       | 20 -----
 34 files changed, 555 insertions(+), 365 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/docker-inventories/ubuntu-14.04-erlang-18
----------------------------------------------------------------------
diff --git a/ansible/docker-inventories/ubuntu-14.04-erlang-18 b/ansible/docker-inventories/ubuntu-14.04-erlang-18
new file mode 100644
index 0000000..c2a2b1a
--- /dev/null
+++ b/ansible/docker-inventories/ubuntu-14.04-erlang-18
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+[ubuntu-14.04-erlang-18]
+localhost

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/docker-inventories/ubuntu-14.04-erlang-default
----------------------------------------------------------------------
diff --git a/ansible/docker-inventories/ubuntu-14.04-erlang-default b/ansible/docker-inventories/ubuntu-14.04-erlang-default
new file mode 100644
index 0000000..67eab3d
--- /dev/null
+++ b/ansible/docker-inventories/ubuntu-14.04-erlang-default
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+[ubuntu-14.04-erlang-default]
+localhost

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/docker-inventories/ubuntu-worker
----------------------------------------------------------------------
diff --git a/ansible/docker-inventories/ubuntu-worker b/ansible/docker-inventories/ubuntu-worker
deleted file mode 100644
index 5855984..0000000
--- a/ansible/docker-inventories/ubuntu-worker
+++ /dev/null
@@ -1,29 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-#   under the License.
-
-# Alternative ansible hosts file (aka inventory) for running Ansible on
-# localhost. This is used when running Ansible inside Docker instead of
-# using it as a Vagrant provisioner. The purpose of this is to set the Ansible
-# role.
-#
-# This makes Ansible run role ubuntu-worker on localhost.
-# Use ansible-playbook with options
-# --inventory-file=docker-inventories/ubuntu-worker and
-# additionally --connection=local to avoid using an ssh connection.
-
-[ubuntu-workers]
-localhost

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/roles/common/files/build-ci.sh
----------------------------------------------------------------------
diff --git a/ansible/roles/common/files/build-ci.sh b/ansible/roles/common/files/build-ci.sh
new file mode 100755
index 0000000..db6993e
--- /dev/null
+++ b/ansible/roles/common/files/build-ci.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+set -e
+
+# create a distribution tarball from the current git master branch
+cd /usr/src/couchdb-checkout
+git reset --hard
+git pull
+./configure --with-curl
+make dist
+
+# use the created tarball to build CouchDB and run tests
+cp apache-couchdb-*.tar.gz /usr/src/couchdb
+
+cd /usr/src/couchdb
+tar -xf apache-couchdb-*.tar.gz
+cd apache-couchdb-*
+./configure --with-curl
+make all check

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/roles/common/tasks/couchdb.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/common/tasks/couchdb.yml b/ansible/roles/common/tasks/couchdb.yml
new file mode 100644
index 0000000..c87ab5b
--- /dev/null
+++ b/ansible/roles/common/tasks/couchdb.yml
@@ -0,0 +1,70 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+- name: create couchdb group
+  group:
+    name: couchdb
+    state: present
+
+- name: create couchdb user
+  user:
+    name: couchdb
+    createhome: yes
+    group: couchdb
+    state: present
+
+- name: install grunt-cli
+  npm:
+    name: grunt-cli
+    global: yes
+    state: present
+
+- name: get CouchDB sources from git
+  git:
+    repo: git://git.apache.org/couchdb.git
+    dest: /usr/src/couchdb-checkout
+    accept_hostkey: yes
+    force: yes
+    # which branch/tag do we actually want to build? I'd say master.
+    # version: developer-preview-2.0
+
+- name: set permissions on couchdb build
+  file:
+    path: /usr/src/couchdb-checkout
+    state: directory
+    owner: couchdb
+    group: couchdb
+    recurse: yes
+
+# 1) `make dist` will be run in /usr/src/couchdb-checkout (this is directly
+#     pulled from git
+# 2) the resulting tarball will be extracted to /usr/src/couchdb, where
+#    `make all check` is run.
+- name: create directory for make check all
+  file:
+    path: /usr/src/couchdb
+    state: directory
+    owner: couchdb
+    group: couchdb
+
+- name: copy build script
+  copy:
+    src: build-ci.sh
+    dest: /home/couchdb/build-ci.sh
+    owner: couchdb
+    group: couchdb
+    mode: 0755

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/roles/common/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/common/tasks/main.yml b/ansible/roles/common/tasks/main.yml
new file mode 100644
index 0000000..a8ba3e3
--- /dev/null
+++ b/ansible/roles/common/tasks/main.yml
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+- include: couchdb.yml

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/roles/erlang-18/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/erlang-18/tasks/main.yml b/ansible/roles/erlang-18/tasks/main.yml
new file mode 100644
index 0000000..354256a
--- /dev/null
+++ b/ansible/roles/erlang-18/tasks/main.yml
@@ -0,0 +1,46 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+- name: import the Erlang Solutions key into apt
+  apt_key:
+    url: http://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc
+    state: present
+    # validate_certs: no
+
+- name: add Erlang Solutions deb repository
+  apt_repository:
+    repo: 'deb http://packages.erlang-solutions.com/ubuntu trusty contrib'
+    state: present
+
+# apt-get update
+- name: update apt cache
+  apt:
+    update_cache: yes
+
+- name: install Erlang 18.x
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - erlang-dev=1:18.2
+  - erlang-nox=1:18.2
+  - erlang=1:18.2
+
+# required for make check and make dialyze
+- name: install packages required to build CouchDB
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - erlang-eunit=1:18.2
+  - erlang-dialyzer=1:18.2

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/roles/erlang-default/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/erlang-default/tasks/main.yml b/ansible/roles/erlang-default/tasks/main.yml
new file mode 100644
index 0000000..3902b4b
--- /dev/null
+++ b/ansible/roles/erlang-default/tasks/main.yml
@@ -0,0 +1,30 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+- name: install default Erlang version
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - erlang-dev
+  - erlang-nox
+  - erlang
+
+# required for make check and make dialyze
+- name: install packages required to build CouchDB
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - erlang-eunit
+  - erlang-dialyzer

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/roles/ubuntu-1404/tasks/dependencies.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/ubuntu-1404/tasks/dependencies.yml b/ansible/roles/ubuntu-1404/tasks/dependencies.yml
new file mode 100644
index 0000000..1aa1ade
--- /dev/null
+++ b/ansible/roles/ubuntu-1404/tasks/dependencies.yml
@@ -0,0 +1,58 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+# apt-get update
+- name: update apt cache
+  apt:
+    update_cache: yes
+
+- name: install auxiliary packages
+  apt: name={{item}} state=present
+  with_items:
+  - apt-transport-https
+  - curl
+  - git
+  - pkg-config
+  - python
+
+# dependencies for make couch, except erlang
+- name: install packages required to build CouchDB
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - build-essential
+  - ca-certificates
+  - libcurl4-openssl-dev
+  - libicu-dev
+  - libmozjs185-dev
+
+# required for make check and make dialyze
+- name: install packages required to build CouchDB
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - shunit2
+
+# required for make docs
+- name: install packages required to build CouchDB
+  apt: name={{item}} state=present install_recommends=no
+  with_items:
+  - help2man
+  - python-sphinx
+  - texlive-latex-base
+  - texlive-latex-recommended
+  - texlive-latex-extra
+  - texlive-fonts-recommended
+  - texinfo

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/roles/ubuntu-1404/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/ubuntu-1404/tasks/main.yml b/ansible/roles/ubuntu-1404/tasks/main.yml
new file mode 100644
index 0000000..bd28a4b
--- /dev/null
+++ b/ansible/roles/ubuntu-1404/tasks/main.yml
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+- include: dependencies.yml

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/roles/ubuntu-worker/files/build-ci.sh
----------------------------------------------------------------------
diff --git a/ansible/roles/ubuntu-worker/files/build-ci.sh b/ansible/roles/ubuntu-worker/files/build-ci.sh
deleted file mode 100755
index db6993e..0000000
--- a/ansible/roles/ubuntu-worker/files/build-ci.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-#   under the License.
-
-set -e
-
-# create a distribution tarball from the current git master branch
-cd /usr/src/couchdb-checkout
-git reset --hard
-git pull
-./configure --with-curl
-make dist
-
-# use the created tarball to build CouchDB and run tests
-cp apache-couchdb-*.tar.gz /usr/src/couchdb
-
-cd /usr/src/couchdb
-tar -xf apache-couchdb-*.tar.gz
-cd apache-couchdb-*
-./configure --with-curl
-make all check

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/roles/ubuntu-worker/tasks/couchdb.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/ubuntu-worker/tasks/couchdb.yml b/ansible/roles/ubuntu-worker/tasks/couchdb.yml
deleted file mode 100644
index c87ab5b..0000000
--- a/ansible/roles/ubuntu-worker/tasks/couchdb.yml
+++ /dev/null
@@ -1,70 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-#   under the License.
-
-- name: create couchdb group
-  group:
-    name: couchdb
-    state: present
-
-- name: create couchdb user
-  user:
-    name: couchdb
-    createhome: yes
-    group: couchdb
-    state: present
-
-- name: install grunt-cli
-  npm:
-    name: grunt-cli
-    global: yes
-    state: present
-
-- name: get CouchDB sources from git
-  git:
-    repo: git://git.apache.org/couchdb.git
-    dest: /usr/src/couchdb-checkout
-    accept_hostkey: yes
-    force: yes
-    # which branch/tag do we actually want to build? I'd say master.
-    # version: developer-preview-2.0
-
-- name: set permissions on couchdb build
-  file:
-    path: /usr/src/couchdb-checkout
-    state: directory
-    owner: couchdb
-    group: couchdb
-    recurse: yes
-
-# 1) `make dist` will be run in /usr/src/couchdb-checkout (this is directly
-#     pulled from git
-# 2) the resulting tarball will be extracted to /usr/src/couchdb, where
-#    `make all check` is run.
-- name: create directory for make check all
-  file:
-    path: /usr/src/couchdb
-    state: directory
-    owner: couchdb
-    group: couchdb
-
-- name: copy build script
-  copy:
-    src: build-ci.sh
-    dest: /home/couchdb/build-ci.sh
-    owner: couchdb
-    group: couchdb
-    mode: 0755

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/roles/ubuntu-worker/tasks/dependencies.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/ubuntu-worker/tasks/dependencies.yml b/ansible/roles/ubuntu-worker/tasks/dependencies.yml
deleted file mode 100644
index 2de5faf..0000000
--- a/ansible/roles/ubuntu-worker/tasks/dependencies.yml
+++ /dev/null
@@ -1,80 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-#   under the License.
-
-- name: import the Erlang Solutions key into apt
-  apt_key:
-    url: http://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc
-    state: present
-    # validate_certs: no
-
-- name: add Erlang Solutions deb repository
-  apt_repository:
-    repo: 'deb http://packages.erlang-solutions.com/ubuntu trusty contrib'
-    state: present
-
-# apt-get update
-- name: update apt cache
-  apt:
-    update_cache: yes
-
-- name: install auxiliary packages
-  apt: name={{item}} state=present
-  with_items:
-  - apt-transport-https
-  - curl
-  - git
-  - pkg-config
-  - python
-
-# required for make couch
-- name: install packages required to build CouchDB
-  apt: name={{item}} state=present install_recommends=no
-  with_items:
-  - build-essential
-  - ca-certificates
-  - erlang-dev=1:18.2
-  - erlang-nox=1:18.2
-  - erlang=1:18.2
-  - libcurl4-openssl-dev
-  - libicu-dev
-  - libmozjs185-dev
-
-# required for make check and make dialyze
-- name: install packages required to build CouchDB
-  apt: name={{item}} state=present install_recommends=no
-  with_items:
-  - erlang-eunit
-  - erlang-dialyzer
-  - shunit2
-
-# required for make docs
-- name: install packages required to build CouchDB
-  apt: name={{item}} state=present install_recommends=no
-  with_items:
-  - help2man
-  - python-sphinx
-  - texlive-latex-base
-  - texlive-latex-recommended
-  - texlive-latex-extra
-  - texlive-fonts-recommended
-  - texinfo
-
-# More packages found in klaemo's Dockerfile... not sure if required, apparently not?
-# - erlang-manpages
-# - libnspr4
-# - libnspr4-0d
-# - libnspr4-dev

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/roles/ubuntu-worker/tasks/main.yml
----------------------------------------------------------------------
diff --git a/ansible/roles/ubuntu-worker/tasks/main.yml b/ansible/roles/ubuntu-worker/tasks/main.yml
deleted file mode 100644
index 8754985..0000000
--- a/ansible/roles/ubuntu-worker/tasks/main.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-#   under the License.
-
-- include: dependencies.yml
-- include: couchdb.yml

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/run-ansible-local.sh
----------------------------------------------------------------------
diff --git a/ansible/run-ansible-local.sh b/ansible/run-ansible-local.sh
index 17ba0c5..8aa5858 100755
--- a/ansible/run-ansible-local.sh
+++ b/ansible/run-ansible-local.sh
@@ -9,9 +9,7 @@
 # with the License.  You may obtain a copy of the License at
 #
 #   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
+# #   Unless required by applicable law or agreed to in writing, #   software distributed under the License is distributed on an
 #   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 #   KIND, either express or implied.  See the License for the
 #   specific language governing permissions and limitations
@@ -42,7 +40,7 @@ fi
 ANSIBLE_FORCE_COLOR=1 ANSIBLE_NOCOWS=1 \
   ansible-playbook \
   --connection=local \
-  --inventory-file=./docker-inventories/ubuntu-worker \
+  --inventory-file=./docker-inventories/ubuntu-14.04-erlang-18 \
   --sudo \
   $TAG \
   site.yml

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/ansible/site.yml
----------------------------------------------------------------------
diff --git a/ansible/site.yml b/ansible/site.yml
index e5e65d6..880738f 100644
--- a/ansible/site.yml
+++ b/ansible/site.yml
@@ -15,9 +15,18 @@
 #   specific language governing permissions and limitations
 #   under the License.
 
-# Apply common configuration for all Ubuntu workers
-- hosts: ubuntu-workers
+- hosts: ubuntu-14.04-erlang-18
   remote_user: root
   roles:
   - nodesource.node
-  - ubuntu-worker
+  - ubuntu-1404
+  - erlang-18
+  - common
+
+- hosts: ubuntu-14.04-erlang-default
+  remote_user: root
+  roles:
+  - nodesource.node
+  - ubuntu-1404
+  - erlang-default
+  - common

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/bin/create-docker-container/ubuntu-14.04-erlang-18.sh
----------------------------------------------------------------------
diff --git a/bin/create-docker-container/ubuntu-14.04-erlang-18.sh b/bin/create-docker-container/ubuntu-14.04-erlang-18.sh
new file mode 100755
index 0000000..f5b4faf
--- /dev/null
+++ b/bin/create-docker-container/ubuntu-14.04-erlang-18.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+set -e
+
+# The Docker containers need the root directory of this repository as their
+# build context (because they need the Ansible files).
+pushd `dirname $0`/../.. > /dev/null
+
+docker build -f docker/ubuntu-14.04-erlang-18/Dockerfile -t basti1302/couchdb-build-ubuntu-14.04-erlang-18.2 .
+
+popd > /dev/null

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/bin/create-docker-container/ubuntu-14.04-erlang-default.sh
----------------------------------------------------------------------
diff --git a/bin/create-docker-container/ubuntu-14.04-erlang-default.sh b/bin/create-docker-container/ubuntu-14.04-erlang-default.sh
new file mode 100755
index 0000000..b96234f
--- /dev/null
+++ b/bin/create-docker-container/ubuntu-14.04-erlang-default.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+set -e
+
+# The Docker containers need the root directory of this repository as their
+# build context (because they need the Ansible files).
+pushd `dirname $0`/../.. > /dev/null
+
+docker build -f docker/ubuntu-14.04-erlang-default/Dockerfile -t basti1302/couchdb-build-ubuntu-14.04-erlang-default .
+
+popd > /dev/null

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/bin/enter-container/ubuntu-14.04-erlang-18
----------------------------------------------------------------------
diff --git a/bin/enter-container/ubuntu-14.04-erlang-18 b/bin/enter-container/ubuntu-14.04-erlang-18
new file mode 100755
index 0000000..275f3d7
--- /dev/null
+++ b/bin/enter-container/ubuntu-14.04-erlang-18
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+docker run -it basti1302/couchdb-build-ubuntu-14.04-erlang-18.2 bash

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/bin/enter-container/ubuntu-14.04-erlang-default
----------------------------------------------------------------------
diff --git a/bin/enter-container/ubuntu-14.04-erlang-default b/bin/enter-container/ubuntu-14.04-erlang-default
new file mode 100755
index 0000000..bb4164b
--- /dev/null
+++ b/bin/enter-container/ubuntu-14.04-erlang-default
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+docker run -it basti1302/couchdb-build-ubuntu-14.04-erlang-default bash

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/bin/print-erlang-version.sh
----------------------------------------------------------------------
diff --git a/bin/print-erlang-version.sh b/bin/print-erlang-version.sh
new file mode 100755
index 0000000..19ed748
--- /dev/null
+++ b/bin/print-erlang-version.sh
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().'  -noshell

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/bin/publish-container/ubuntu-14.04-erlang-18.sh
----------------------------------------------------------------------
diff --git a/bin/publish-container/ubuntu-14.04-erlang-18.sh b/bin/publish-container/ubuntu-14.04-erlang-18.sh
new file mode 100755
index 0000000..9c7a917
--- /dev/null
+++ b/bin/publish-container/ubuntu-14.04-erlang-18.sh
@@ -0,0 +1 @@
+docker push basti1302/couchdb-build-ubuntu-14.04-erlang-18.2

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/bin/publish-container/ubuntu-14.04-erlang-default.sh
----------------------------------------------------------------------
diff --git a/bin/publish-container/ubuntu-14.04-erlang-default.sh b/bin/publish-container/ubuntu-14.04-erlang-default.sh
new file mode 100755
index 0000000..8aaa9b8
--- /dev/null
+++ b/bin/publish-container/ubuntu-14.04-erlang-default.sh
@@ -0,0 +1 @@
+docker push basti1302/couchdb-build-ubuntu-14.04-erlang-default

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/bin/run-build-in-container/ubuntu-14.04-erlang-18
----------------------------------------------------------------------
diff --git a/bin/run-build-in-container/ubuntu-14.04-erlang-18 b/bin/run-build-in-container/ubuntu-14.04-erlang-18
new file mode 100755
index 0000000..d174150
--- /dev/null
+++ b/bin/run-build-in-container/ubuntu-14.04-erlang-18
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+docker run basti1302/couchdb-build-ubuntu-14.04-erlang-18.2

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/bin/run-build-in-container/ubuntu-14.04-erlang-default
----------------------------------------------------------------------
diff --git a/bin/run-build-in-container/ubuntu-14.04-erlang-default b/bin/run-build-in-container/ubuntu-14.04-erlang-default
new file mode 100755
index 0000000..c15e7e6
--- /dev/null
+++ b/bin/run-build-in-container/ubuntu-14.04-erlang-default
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+#   under the License.
+
+docker run basti1302/couchdb-build-ubuntu-14.04-erlang-default

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/build-container.sh
----------------------------------------------------------------------
diff --git a/build-container.sh b/build-container.sh
deleted file mode 100755
index be8dcca..0000000
--- a/build-container.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-#   under the License.
-
-docker build -f docker/ubuntu-worker/Dockerfile -t basti1302/couchdb-build-ubuntu-14.04-erlang-18.2 .

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/docker/ubuntu-14.04-erlang-18/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/ubuntu-14.04-erlang-18/Dockerfile b/docker/ubuntu-14.04-erlang-18/Dockerfile
new file mode 100644
index 0000000..c850390
--- /dev/null
+++ b/docker/ubuntu-14.04-erlang-18/Dockerfile
@@ -0,0 +1,37 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+
+# NOTE: All docker files need to be run from ../../, that is
+# docker build -f /docker/<container>/Dockerfile
+
+# Base Image: Plain Vanilla Ubuntu 14.04 with Ansible installed
+FROM williamyeh/ansible:ubuntu14.04
+
+# Add ansible directory and cd to it
+ADD ./ansible /ansible
+WORKDIR /ansible
+
+# Install Node.js role
+RUN ansible-galaxy install nodesource.node
+
+# Run Ansible to provision container
+RUN ansible-playbook site.yml \
+  --connection=local \
+  --inventory-file=./docker-inventories/ubuntu-14.04-erlang-18
+
+USER couchdb
+
+CMD ["/home/couchdb/build-ci.sh"]

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/docker/ubuntu-14.04-erlang-default/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/ubuntu-14.04-erlang-default/Dockerfile b/docker/ubuntu-14.04-erlang-default/Dockerfile
new file mode 100644
index 0000000..4acfd3d
--- /dev/null
+++ b/docker/ubuntu-14.04-erlang-default/Dockerfile
@@ -0,0 +1,37 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing,
+#   software distributed under the License is distributed on an
+#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#   KIND, either express or implied.  See the License for the
+#   specific language governing permissions and limitations
+
+# NOTE: All docker files need to be run from ../../, that is
+# docker build -f /docker/<container>/Dockerfile
+
+# Base Image: Plain Vanilla Ubuntu 14.04 with Ansible installed
+FROM williamyeh/ansible:ubuntu14.04
+
+# Add ansible directory and cd to it
+ADD ./ansible /ansible
+WORKDIR /ansible
+
+# Install Node.js role
+RUN ansible-galaxy install nodesource.node
+
+# Run Ansible to provision container
+RUN ansible-playbook site.yml \
+  --connection=local \
+  --inventory-file=./docker-inventories/ubuntu-14.04-erlang-default
+
+USER couchdb
+
+CMD ["/home/couchdb/build-ci.sh"]

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/docker/ubuntu-worker/Dockerfile
----------------------------------------------------------------------
diff --git a/docker/ubuntu-worker/Dockerfile b/docker/ubuntu-worker/Dockerfile
deleted file mode 100644
index 8051cd6..0000000
--- a/docker/ubuntu-worker/Dockerfile
+++ /dev/null
@@ -1,37 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-
-# NOTE: All docker files need to be run from ../../, that is
-# docker build -f /docker/ubuntu-worker/Dockerfile
-
-# Base Image: Plain Vanilla Ubuntu 14.04 with Ansible installed
-FROM williamyeh/ansible:ubuntu14.04
-
-# Add ansible directory and cd to it
-ADD ./ansible /ansible
-WORKDIR /ansible
-
-# Install Node.js role
-RUN ansible-galaxy install nodesource.node
-
-# Run Ansible to provision container
-RUN ansible-playbook site.yml \
-  --connection=local \
-  --inventory-file=./docker-inventories/ubuntu-worker
-
-USER couchdb
-
-CMD ["/home/couchdb/build-ci.sh"]

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/enter-container.sh
----------------------------------------------------------------------
diff --git a/enter-container.sh b/enter-container.sh
deleted file mode 100755
index 8818304..0000000
--- a/enter-container.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env bash
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-#   under the License.
-
-CONTAINER=$1
-if [[ -z $CONTAINER ]]; then
-  CONTAINER="couchdb-build-ubuntu-14.04-erlang-18.2"
-  echo "No container ID provided, using default ID $CONTAINER"
-fi
-
-docker run -it $CONTAINER bash

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/jenkins/build.sh
----------------------------------------------------------------------
diff --git a/jenkins/build.sh b/jenkins/build.sh
index 90c49b4..ed60b1d 100755
--- a/jenkins/build.sh
+++ b/jenkins/build.sh
@@ -54,6 +54,10 @@ case $ERLANG in
     echo "Using Erlang 18.2"
     DOCKER_IMAGE=$DOCKER_IMAGE"erlang-18.2"
     ;;
+  default*)
+    echo "Using Erlang 18.2"
+    DOCKER_IMAGE=$DOCKER_IMAGE"erlang-default"
+    ;;
   *)
     echo "Unknown Erlang version $ERLANG"
     exit 1

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/push-container.sh
----------------------------------------------------------------------
diff --git a/push-container.sh b/push-container.sh
deleted file mode 100755
index 9c7a917..0000000
--- a/push-container.sh
+++ /dev/null
@@ -1 +0,0 @@
-docker push basti1302/couchdb-build-ubuntu-14.04-erlang-18.2

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/readme.markdown
----------------------------------------------------------------------
diff --git a/readme.markdown b/readme.markdown
index 952f313..0734f68 100644
--- a/readme.markdown
+++ b/readme.markdown
@@ -14,19 +14,20 @@ The main purpose of this repository is to provide a number of Docker containers
 
 The current (rough) plan for the build matrix is this:
 
-**OS/Erlang**       | **R16B03-1** | **17.5** | **18.x**
+**OS/Erlang**       | **default ** | **17.5** | **18.x**
 --------------------|--------------|----------|---------
-**Ubuntu 14.04**    | -            | -        | WIP
+**Ubuntu 14.04**    | ✔ (16B03-1)  | -        | ✔
 **Ubuntu latest ?** | -            | -        | -
 **Debian 7**        | -            | -        | -
 **Debian 8**        | -            | -        | -
+**CentOS 6**        | -            | -        | -
+**CentOS 7**        | -            | -        | -
 **OS X latest**     | -            | -        | -
 **Free BSD**        | -            | -        | -
 **Windows**         | -            | -        | -
 
 ### Open questions
 
-* There is no CentOS/RHEL there, shouldn't it be added?
 * Do we run a CouchDB build on all combinations on each commit? This would probably be too much for the ASF Infra build systems. Do we build them once a day? We need to find a good balance between early feedback and resource consumption here.
 * Do we even want to build the master branch or some other branch/tag? I guess the master branch would be most interesting for now, but not entirely sure. Also, it might make sense to make the branch/tag parameterizable so we could also use this to create releases from a specific tag etc.
 * What exactly do we do in each Jenkins build? Just build CouchDB? Also build docs? Start CouchDB? Run some test suite?
@@ -42,34 +43,21 @@ The current (rough) plan for the build matrix is this:
 Docker
 ------
 
-The docker containers are provisioned via Ansible. That is, the dockerfiles usually only kicks of the Ansible scripts and the actual setup is then done in Ansible. Part of the reason is that the initial idea was to just provision build workers to virtual machines instead of containers. I kept Ansible around to do the heavy lifting because the Ansible syntax is more expressive and flexible than plain vanilla Dockerfiles. The idea is that this will make things a bit easier once we create multiple containers for the build matrix. Also, you could still use the Ansible files to create a Vagrant VM instead of a Docker container.
+The docker containers are provisioned via Ansible. That is, the dockerfiles usually only kicks of the Ansible scripts and the actual setup is then done in Ansible. Part of the reason is that the initial idea was to just provision build workers to virtual machines instead of containers. I kept Ansible around to do the heavy lifting because the Ansible syntax is more expressive and flexible than plain vanilla Dockerfiles. The idea is that this will make things a bit easier once we create multiple containers for the build matrix. Also, you could still use the Ansible files to create a Vagrant VM instead of a Docker container. Last but not least, we plan to target operating systems on which Docker is not an option (FreeBDS, Windows, MacOS), so the final CI setup will use Docker for some points in the matrix but not all.
 
 ### Building the Containers
 
-Right now, this repo can produce exactly one container, based on Ubuntu 14.04 LTS and Erlang 18.2. The plan is to provide more containers soon.
+For each container that this repository can produce there is a shell script in the bin/create-docker-container directory. To build a container, execute the corresponding script.
 
-The Docker containers need the root directory of this repository as their build context (because they need the Ansible files). The Dockerfiles are located in `docker/<name>/Dockerfile`. Thus, to build a container, you need to do something like this:
-
-```
-docker build -f docker/ubuntu-worker/Dockerfile -t couchdb-build-ubuntu-14.04-erlang-18.2 .
-```
-
-There is also a script called `build-container.sh` for your convenience :)
 
 ### Running the CouchDB build on a Container
 
-Just start the container with
-
-```
-docker run couchdb-build-ubuntu-14.04-erlang-18.2
-```
-
-This will start the container which will then immediately start the CouchDB build. (The build script is the container's CMD entrypoing.)
+To run a CouchDB build in a particular container (after it has been build), use the corresponding script in `bin/run-build-in-container/`. This will start the container which will then immediately start the CouchDB build. (The build script is the container's CMD entrypoint.)
 
 Vagrant
 -------
 
-Note: This section on creating the build machines on Vagrant might outdated. Either we bring it up to date to have both possibilities (Docker & Vagrant) or we remove it completely and just go with Docker.
+Note: This section on creating the build machines on Vagrant might be outdated. Either we bring it up to date to have both possibilities (Docker & Vagrant) or we remove it completely and just go with Docker for now.
 
 ### Prerequesites
 

http://git-wip-us.apache.org/repos/asf/couchdb-ci/blob/c95a6e7f/run-build-in-container.sh
----------------------------------------------------------------------
diff --git a/run-build-in-container.sh b/run-build-in-container.sh
deleted file mode 100755
index 4c3bbc7..0000000
--- a/run-build-in-container.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env bash
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-#   Unless required by applicable law or agreed to in writing,
-#   software distributed under the License is distributed on an
-#   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#   KIND, either express or implied.  See the License for the
-#   specific language governing permissions and limitations
-#   under the License.
-
-docker run couchdb-build-ubuntu-14.04-erlang-18.2