blob: 63d0b5630e0ef39676df4a9d6b6ec9be8a83f444 [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 \
63 libpcre3
Andrew Geissler0205e8d2016-08-10 07:46:19 -050064
65RUN easy_install \
66 tox \
67 pip \
68 requests
69
70RUN pip install \
Alanny Lopez8594e432017-05-17 15:42:59 -050071 json2yaml \
Andrew Geissler0205e8d2016-08-10 07:46:19 -050072 robotframework \
73 robotframework-requests \
74 robotframework-sshlibrary \
Sunil M55d0d752018-03-22 07:04:17 -050075 robotframework-scplibrary \
76 pysnmp
Andrew Geissler0205e8d2016-08-10 07:46:19 -050077
Rahul Maheshwari6b9bb1e2017-03-13 06:56:12 -050078RUN wget https://sourceforge.net/projects/ipmitool/files/ipmitool/1.8.18/ipmitool-1.8.18.tar.bz2
79RUN tar xvfj ipmitool-*.tar.bz2
80RUN ./ipmitool-1.8.18/configure
81RUN make
82RUN make install
83
Andrew Geissler0205e8d2016-08-10 07:46:19 -050084RUN grep -q ${GROUPS} /etc/group || groupadd -g ${GROUPS} ${USER}
85RUN grep -q ${UID} /etc/passwd || useradd -d ${HOME} -m -u ${UID} -g ${GROUPS} \
86 ${USER}
87USER ${USER}
88ENV HOME ${HOME}
89RUN /bin/bash
90EOF
91)
92
93################################# docker img # #################################
94
95# Build above image
96docker build -t ${DOCKER_IMG_NAME} - <<< "${Dockerfile}"