blob: dcb305abd72f3e74bfd0c696dba16f3fd5c2d8d0 [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 \
64 openssl
Andrew Geissler0205e8d2016-08-10 07:46:19 -050065
66RUN easy_install \
67 tox \
68 pip \
69 requests
70
71RUN pip install \
Alanny Lopez8594e432017-05-17 15:42:59 -050072 json2yaml \
Andrew Geissler0205e8d2016-08-10 07:46:19 -050073 robotframework \
74 robotframework-requests \
75 robotframework-sshlibrary \
Sunil M55d0d752018-03-22 07:04:17 -050076 robotframework-scplibrary \
George Keishing0e5dd8a2018-12-02 23:17:59 -060077 pysnmp \
78 redfish
Andrew Geissler0205e8d2016-08-10 07:46:19 -050079
Rahul Maheshwari6b9bb1e2017-03-13 06:56:12 -050080RUN wget https://sourceforge.net/projects/ipmitool/files/ipmitool/1.8.18/ipmitool-1.8.18.tar.bz2
81RUN tar xvfj ipmitool-*.tar.bz2
82RUN ./ipmitool-1.8.18/configure
83RUN make
84RUN make install
85
Andrew Geissler0205e8d2016-08-10 07:46:19 -050086RUN grep -q ${GROUPS} /etc/group || groupadd -g ${GROUPS} ${USER}
87RUN grep -q ${UID} /etc/passwd || useradd -d ${HOME} -m -u ${UID} -g ${GROUPS} \
88 ${USER}
89USER ${USER}
90ENV HOME ${HOME}
91RUN /bin/bash
92EOF
93)
94
95################################# docker img # #################################
96
97# Build above image
98docker build -t ${DOCKER_IMG_NAME} - <<< "${Dockerfile}"