You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.3 KiB
107 lines
2.3 KiB
ARG base_image="docker.io/library/centos:8" |
|
|
|
FROM "${base_image}" as base |
|
|
|
# Make sure Git and Python 3 are installed on your system. |
|
RUN yum install -y git python3 rsync which |
|
|
|
# Check your Python 3 version is greater than 3.6 |
|
RUN python3 -c 'import sys; sys.version_info >= (3, 6)' |
|
|
|
# Ensure Pip is installed and up-to date |
|
RUN curl https://bootstrap.pypa.io/get-pip.py | python3 |
|
|
|
# Check installed Pip version |
|
RUN python3 -m pip --version |
|
|
|
# Ensure basic Python packages are installed and up-to-date |
|
RUN python3 -m pip install --upgrade setuptools wheel virtualenv tox six |
|
|
|
# Check installed Tox version |
|
RUN tox --version |
|
|
|
|
|
# ----------------------------------------------------------------------------- |
|
|
|
FROM base as sources |
|
|
|
# Get Tobiko source code using Git |
|
RUN mkdir -p /src |
|
ADD . /src/tobiko |
|
WORKDIR /src/tobiko |
|
|
|
|
|
# ----------------------------------------------------------------------------- |
|
|
|
FROM sources as bindeps |
|
|
|
# Ensure required binary packages are installed |
|
RUN ./tools/install-bindeps.sh |
|
|
|
# Check bindeps are installed |
|
CMD tox -e bindeps |
|
|
|
|
|
# ----------------------------------------------------------------------------- |
|
|
|
FROM bindeps as py3 |
|
|
|
# Prepare py3 Tox virtualenv |
|
RUN tox -e py3 --notest |
|
|
|
# Run unit yest cases |
|
CMD tox -e py3 |
|
|
|
|
|
# ----------------------------------------------------------------------------- |
|
|
|
FROM py3 as venv |
|
|
|
# Run bash inside py3 Tox environment |
|
CMD tox -e venv |
|
|
|
|
|
# ----------------------------------------------------------------------------- |
|
|
|
FROM py3 as functional |
|
|
|
# Run functional test cases |
|
CMD tox -e functional |
|
|
|
|
|
# ----------------------------------------------------------------------------- |
|
|
|
FROM py3 as scenario |
|
|
|
# Run scenario test cases |
|
CMD tox -e scenario |
|
|
|
|
|
# ----------------------------------------------------------------------------- |
|
|
|
FROM py3 as neutron |
|
|
|
# Run scenario test cases |
|
CMD tox -e neutron |
|
|
|
|
|
# ----------------------------------------------------------------------------- |
|
|
|
FROM py3 as faults |
|
|
|
# Run faults test cases |
|
CMD tox -e faults |
|
|
|
|
|
# ----------------------------------------------------------------------------- |
|
|
|
from bindeps as infrared |
|
|
|
# Set Python 3 as default alternative for python command |
|
RUN alternatives --set python /usr/bin/python3 |
|
|
|
# Prepare infrared Tox virtualenv |
|
RUN tox -e infrared --notest |
|
|
|
# Run Tobiko InfraRed plugin |
|
CMD tox -e infrared
|
|
|