blob: a46b539ee3a0c912c3de2354db03acff9fb15641 [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>
Andrew Geisslercd1b0ac2019-05-30 11:18:45 -05009# default is ubuntu:bionic
Andrew Geissler0205e8d2016-08-10 07:46:19 -050010
11set -uo pipefail
12
13DOCKER_IMG_NAME=${1:-"openbmc/ubuntu-robot-qemu"}
Andrew Geisslercd1b0ac2019-05-30 11:18:45 -050014DISTRO=${2:-"ubuntu:bionic"}
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 \
Andrew Geisslercd1b0ac2019-05-30 11:18:45 -050067 python3-pip \
68 ipmitool
Andrew Geissler0205e8d2016-08-10 07:46:19 -050069
Andrew Geisslercd1b0ac2019-05-30 11:18:45 -050070RUN pip3 install \
Andrew Geissler0205e8d2016-08-10 07:46:19 -050071 tox \
Andrew Geisslercd1b0ac2019-05-30 11:18:45 -050072 requests \
Michael Sheposa4d6d3d2019-08-15 17:11:56 -050073 retrying \
Matthew Barth04881eb2019-09-30 13:28:18 -050074 websocket-client \
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 \
Andrew Geisslercd1b0ac2019-05-30 11:18:45 -050081 redfish \
George Keishing26dd8e12019-02-26 12:31:11 -060082 beautifulsoup4 --upgrade \
George Keishing882254f2019-03-05 13:55:29 -060083 lxml \
George Keishing428553d2019-04-02 10:04:11 -050084 jsonschema \
85 redfishtool
Andrew Geissler0205e8d2016-08-10 07:46:19 -050086
Andrew Geissler0205e8d2016-08-10 07:46:19 -050087RUN grep -q ${GROUPS} /etc/group || groupadd -g ${GROUPS} ${USER}
88RUN grep -q ${UID} /etc/passwd || useradd -d ${HOME} -m -u ${UID} -g ${GROUPS} \
89 ${USER}
90USER ${USER}
91ENV HOME ${HOME}
92RUN /bin/bash
93EOF
94)
95
96################################# docker img # #################################
97
98# Build above image
99docker build -t ${DOCKER_IMG_NAME} - <<< "${Dockerfile}"