From 520360d80b0af02f9afc806e3bb5c1400b641cba Mon Sep 17 00:00:00 2001
From: Nicolas Martinelli <nim@odoo.com>
Date: Thu, 19 Feb 2015 18:02:19 +0100
Subject: [PATCH] [ADD] Packaging: nightly tests: src dockerfile

Creation of a Dockerfile for the src package for nightly tests.
Remove unnecessary libraries installation from the Debian Dockerfile.
---
 setup/package.dfdebian | 16 +---------------
 setup/package.dfsrc    | 42 ++++++++++++++++++++++++++++++++++++++++++
 setup/package.py       | 13 +++++++++++--
 3 files changed, 54 insertions(+), 17 deletions(-)
 create mode 100644 setup/package.dfsrc

diff --git a/setup/package.dfdebian b/setup/package.dfdebian
index f59233e4db43..7a96a560792c 100644
--- a/setup/package.dfdebian
+++ b/setup/package.dfdebian
@@ -19,19 +19,9 @@ ENV LC_ALL C.UTF-8
 RUN apt-get update -qq &&  \
 	apt-get upgrade -qq -y && \
 	apt-get install \
+		adduser \
 		postgresql \
-		postgresql-server-dev-all \
 		postgresql-client \
-		adduser \
-		libxml2-dev \
-		libxslt1-dev \
-		libldap2-dev \
-		libsasl2-dev \
-		libssl-dev \
-		libjpeg-dev \
-		python-dev \
-		python-pip \
-		build-essential \
 		python \
 		python-dateutil \
 		python-decorator \
@@ -65,8 +55,4 @@ RUN apt-get update -qq &&  \
 		python-yaml -y && \
 	rm -rf /var/lib/apt/lists/*
 
-COPY requirements.txt /opt/release/requirements.txt
-
-RUN pip install -r /opt/release/requirements.txt
-
 RUN echo "PS1=\"[\u@nightly-tests] # \"" > ~/.bashrc
diff --git a/setup/package.dfsrc b/setup/package.dfsrc
new file mode 100644
index 000000000000..3b1f4cdfd096
--- /dev/null
+++ b/setup/package.dfsrc
@@ -0,0 +1,42 @@
+# Please note that this Dockerfile is used for testing nightly builds and should
+# not be used to deploy Odoo
+FROM debian:stable
+MAINTAINER Odoo S.A. <info@odoo.com>
+
+# Change policy-rc.d so that services start automatically once installed
+RUN echo "#!/bin/sh\nexit 0" > /usr/sbin/policy-rc.d
+
+RUN apt-get update && \
+	apt-get install -y locales && \
+	rm -rf /var/lib/apt/lists/*
+
+# Reconfigure locales such that postgresql uses UTF-8 encoding
+RUN dpkg-reconfigure locales && \
+    locale-gen C.UTF-8 && \
+    /usr/sbin/update-locale LANG=C.UTF-8
+ENV LC_ALL C.UTF-8
+
+RUN apt-get update -qq &&  \
+	apt-get upgrade -qq -y && \
+	apt-get install \
+		postgresql \
+		postgresql-server-dev-all \
+		postgresql-client \
+		adduser \
+		libxml2-dev \
+		libxslt1-dev \
+		libldap2-dev \
+		libsasl2-dev \
+		libssl-dev \
+		libjpeg-dev \
+		python-dev \
+		python-pip \
+		build-essential \
+		python -y && \
+	rm -rf /var/lib/apt/lists/*
+
+COPY requirements.txt /opt/release/requirements.txt
+
+RUN pip install -r /opt/release/requirements.txt
+
+RUN echo "PS1=\"[\u@nightly-tests] # \"" > ~/.bashrc
diff --git a/setup/package.py b/setup/package.py
index bdd5470e5072..24f7afa1e657 100755
--- a/setup/package.py
+++ b/setup/package.py
@@ -288,7 +288,16 @@ def build_exe(o):
 # Stage: testing
 #----------------------------------------------------------
 def _prepare_testing(o):
-    if not o.no_tarball or not o.no_debian:
+    if not o.no_tarball:
+        subprocess.call(["mkdir", "docker_src"], cwd=o.build_dir)
+        subprocess.call(["cp", "package.dfsrc", os.path.join(o.build_dir, "docker_src", "Dockerfile")],
+                        cwd=os.path.join(o.odoo_dir, "setup"))
+        # Use rsync to copy requirements.txt in order to keep original permissions
+        subprocess.call(["rsync", "-a", "requirements.txt", os.path.join(o.build_dir, "docker_src")],
+                        cwd=os.path.join(o.odoo_dir))
+        subprocess.call(["docker", "build", "-t", "odoo-%s-src-nightly-tests" % version, "."],
+                        cwd=os.path.join(o.build_dir, "docker_src"))
+    if not o.no_debian:
         subprocess.call(["mkdir", "docker_debian"], cwd=o.build_dir)
         subprocess.call(["cp", "package.dfdebian", os.path.join(o.build_dir, "docker_debian", "Dockerfile")],
                         cwd=os.path.join(o.odoo_dir, "setup"))
@@ -305,7 +314,7 @@ def _prepare_testing(o):
                         cwd=os.path.join(o.build_dir, "docker_centos"))
 
 def test_tgz(o):
-    with docker('odoo-%s-debian-nightly-tests' % version, o.build_dir, o.pub) as wheezy:
+    with docker('odoo-%s-src-nightly-tests' % version, o.build_dir, o.pub) as wheezy:
         wheezy.release = '*.tar.gz'
         wheezy.system("service postgresql start")
         wheezy.system('/usr/local/bin/pip install /opt/release/%s' % wheezy.release)
-- 
GitLab