blob: 9e761921146fb1f33882ffdc04086eaed06201c2 [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 \
77 pysnmp
Andrew Geissler0205e8d2016-08-10 07:46:19 -050078
Rahul Maheshwari6b9bb1e2017-03-13 06:56:12 -050079RUN wget https://sourceforge.net/projects/ipmitool/files/ipmitool/1.8.18/ipmitool-1.8.18.tar.bz2
80RUN tar xvfj ipmitool-*.tar.bz2
81RUN ./ipmitool-1.8.18/configure
82RUN make
83RUN make install
84
Andrew Geissler0205e8d2016-08-10 07:46:19 -050085RUN grep -q ${GROUPS} /etc/group || groupadd -g ${GROUPS} ${USER}
86RUN grep -q ${UID} /etc/passwd || useradd -d ${HOME} -m -u ${UID} -g ${GROUPS} \
87 ${USER}
88USER ${USER}
89ENV HOME ${HOME}
90RUN /bin/bash
91EOF
92)
93
94################################# docker img # #################################
95
96# Build above image
97docker build -t ${DOCKER_IMG_NAME} - <<< "${Dockerfile}"