Use tower_devel as base image for unit tests

This commit is contained in:
Shane McDonald 2016-11-11 14:41:03 -05:00
parent 5657671fb9
commit 30e5904ab3
4 changed files with 14 additions and 65 deletions

View File

@ -1 +1,2 @@
.git
awx/ui/node_modules

View File

@ -1,39 +1,13 @@
# FROM gcr.io/ansible-tower-engineering/tower_devel:latest
FROM centos
FROM gcr.io/ansible-tower-engineering/tower_devel:latest
RUN yum install -y epel-release
RUN yum install -y bzip2 gcc-c++
RUN yum install -y \
bzip2 \
python-pip \
python-virtualenv \
make \
swig \
git \
libffi-devel \
openssl-devel \
libxml2-devel \
xmlsec1-devel \
xmlsec1-openssl-devel \
gcc \
gcc-c++ \
/usr/bin/pg_config \
openldap-devel \
postgresql-devel \
rabbitmq-server \
libtool-ltdl-devel \
fontconfig
# We need to install dependencies somewhere other than /ansible-tower.
# Anything in /ansible-tower will be overwritten by the bind-mount.
# We switch the WORKDIR to /ansible-tower further down.
WORKDIR "/tmp/"
# NOTE: The following steps work for tower-3.0.0
# RUN curl -LO https://rpm.nodesource.com/pub_0.12/el/7/x86_64/nodejs-0.12.9-1nodesource.el7.centos.x86_64.rpm
# RUN yum install -y nodejs-0.12.9-1nodesource.el7.centos.x86_64.rpm
# RUN rm nodejs-0.12.9-1nodesource.el7.centos.x86_64.rpm
# Remove the 2 lines below and uncomment the 3 lines above to build
# RPMs with the old JS build system.
RUN curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
RUN yum install -y nodejs
# Build front-end deps
# https://github.com/npm/npm/issues/9863
RUN cd $(npm root -g)/npm \
@ -42,41 +16,15 @@ RUN cd $(npm root -g)/npm \
RUN npm install -g npm@3.10.7
# We need to install dependencies somewhere other than /ansible-tower.
# Anything in /ansible-tower will be overwritten by the bind-mount.
# We switch the WORKDIR to /ansible-tower further down.
WORKDIR "/tmp/ansible-tower"
# Copy requirements files
# NOTE: '*' is not used as it invalidates docker caching
COPY requirements/requirements.txt requirements/
COPY requirements/requirements_ansible.txt requirements/
COPY requirements/requirements_dev.txt requirements/
COPY requirements/requirements_jenkins.txt requirements/
# Copy __init__.py so the Makefile can retrieve `awx.__version__`
COPY awx/__init__.py awx/
# Copy Makefile
COPY Makefile .
# Install tower runtime virtualenvs
ENV SWIG_FEATURES="-cpperraswarn -includeall -I/usr/include/openssl"
RUN make requirements
# Install tower test requirements
ENV VENV_BASE=""
RUN make requirements_jenkins
# Build front-end deps
COPY awx/ui/package.json awx/ui/
RUN npm set progress=false
# Copy __init__.py so the Makefile can retrieve `awx.__version__`
COPY awx/__init__.py awx/
RUN make ui-deps
WORKDIR "/ansible-tower"
WORKDIR "/tower_devel"
# This entrypoint script takes care of moving the node_modules
# into the bind-mount, then exec's to whatever was passed as the CMD.

View File

@ -11,4 +11,4 @@ services:
TEST_DIRS: awx/main/tests/unit awx/main/tests/functional
command: ["make test"]
volumes:
- ../../../:/ansible-tower
- ../../../:/tower_devel

View File

@ -1,7 +1,7 @@
#!/bin/bash
set -e
mkdir -p /ansible-tower/awx/ui/
mv -n /tmp/ansible-tower/awx/ui/node_modules /ansible-tower/awx/ui
mkdir -p /tower_devel/awx/ui/
mv -n /tmp/awx/ui/node_modules /tmp/awx/ui/.deps_built /tower_devel/awx/ui
exec $@