blob: 527831cbd5853fc1a20e08e448310cb6cc440f27 [file] [log] [blame]
Andrew Geissler0205e8d2016-08-10 07:46:19 -05001#!/bin/bash -xe
2#
3# Build the required docker image to run QEMU and Robot test cases
4#
5# Parameters:
6# parm1: <optional, the name of the docker image to generate>
7# default is openbmc/ubuntu-robot-qemu
Andrew Geissler8b8333b2018-05-29 13:51:58 -05008# param2: <optional, the distro to build a docker image against>
9# default is ubuntu:artful
Andrew Geissler0205e8d2016-08-10 07:46:19 -050010
11set -uo pipefail
12
13DOCKER_IMG_NAME=${1:-"openbmc/ubuntu-robot-qemu"}
Andrew Geissler8b8333b2018-05-29 13:51:58 -050014DISTRO=${2:-"ubuntu:artful"}
Andrew Geissler0205e8d2016-08-10 07:46:19 -050015
16# Determine our architecture, ppc64le or the other one
17if [ $(uname -m) == "ppc64le" ]; then
18 DOCKER_BASE="ppc64le/"
19else
20 DOCKER_BASE=""
21fi
22
23################################# docker img # #################################
24# Create docker image that can run QEMU and Robot Tests
25Dockerfile=$(cat << EOF
Andrew Geissler8b8333b2018-05-29 13:51:58 -050026FROM ${DOCKER_BASE}${DISTRO}
Andrew Geissler0205e8d2016-08-10 07:46:19 -050027
28ENV DEBIAN_FRONTEND noninteractive
29
30RUN apt-get update && apt-get install -yy \
31 debianutils \
32 gawk \
33 git \
34 python \
35 python-dev \
36 python-setuptools \
Saqib Khan362ca852017-03-21 10:48:46 -050037 python3 \
38 python3-dev \
39 python3-setuptools \
Andrew Geissler0205e8d2016-08-10 07:46:19 -050040 socat \
41 texinfo \
42 wget \
43 gcc \
44 libffi-dev \
45 libssl-dev \
46 xterm \
47 mwm \
48 ssh \
49 vim \
50 iputils-ping \
51 sudo \
52 cpio \
53 unzip \
54 diffstat \
55 expect \
Rahul Maheshwari6b9bb1e2017-03-13 06:56:12 -050056 curl \
Andrew Geissler7a88f292018-01-04 15:16:02 -060057 build-essential \
58 libpixman-1-0 \
Michael Walshf1e83762018-03-28 15:51:43 -050059 libglib2.0-0 \
Andrew Jeffery6ba68142018-04-05 13:30:52 +093060 sshpass \
61 libasound2 \
62 libfdt1 \
Rahul Maheshwari7285ddb2018-09-20 00:01:40 -050063 libpcre3 \
George Keishingb76c0b62019-02-25 13:16:52 -060064 openssl \
65 libxml2-dev \
George Keishing26dd8e12019-02-26 12:31:11 -060066 libxslt-dev \
67 python3-pip
Andrew Geissler0205e8d2016-08-10 07:46:19 -050068
69RUN easy_install \
70 tox \
71 pip \
George Keishing26dd8e12019-02-26 12:31:11 -060072 requests
Andrew Geissler0205e8d2016-08-10 07:46:19 -050073
74RUN pip install \
Alanny Lopez8594e432017-05-17 15:42:59 -050075 json2yaml \
Andrew Geissler0205e8d2016-08-10 07:46:19 -050076 robotframework \
77 robotframework-requests \
78 robotframework-sshlibrary \
Sunil M55d0d752018-03-22 07:04:17 -050079 robotframework-scplibrary \
George Keishing0e5dd8a2018-12-02 23:17:59 -060080 pysnmp \
George Keishing26dd8e12019-02-26 12:31:11 -060081 redfish
82
83RUN pip3 install \
84 beautifulsoup4 --upgrade \
George Keishing882254f2019-03-05 13:55:29 -060085 lxml \
86 jsonschema
Andrew Geissler0205e8d2016-08-10 07:46:19 -050087
Rahul Maheshwari6b9bb1e2017-03-13 06:56:12 -050088RUN wget https://sourceforge.net/projects/ipmitool/files/ipmitool/1.8.18/ipmitool-1.8.18.tar.bz2
89RUN tar xvfj ipmitool-*.tar.bz2
90RUN ./ipmitool-1.8.18/configure
91RUN make
92RUN make install
93
Andrew Geissler0205e8d2016-08-10 07:46:19 -050094RUN grep -q ${GROUPS} /etc/group || groupadd -g ${GROUPS} ${USER}
95RUN grep -q ${UID} /etc/passwd || useradd -d ${HOME} -m -u ${UID} -g ${GROUPS} \
96 ${USER}
97USER ${USER}
98ENV HOME ${HOME}
99RUN /bin/bash
100EOF
101)
102
103################################# docker img # #################################
104
105# Build above image
106docker build -t ${DOCKER_IMG_NAME} - <<< "${Dockerfile}"