From f2b7be752735ac8ef6fe1f0dcff4f1494af95eae Mon Sep 17 00:00:00 2001 From: Alexander Lutay Date: Wed, 12 Oct 2016 17:12:30 +0200 Subject: [PATCH] TT#2723 Add initial Dockerfile for nmp tests * using release-trunk-jessie for nodejs backport Change-Id: I1448740423c12db48190667c29652a813d40bdba --- t/Dockerfile | 37 +++++++++++++++++++++++++++++++++++++ t/testrunner | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 t/Dockerfile create mode 100755 t/testrunner diff --git a/t/Dockerfile b/t/Dockerfile new file mode 100644 index 0000000..a37d6cb --- /dev/null +++ b/t/Dockerfile @@ -0,0 +1,37 @@ +# DOCKER_NAME=janus-client-jessie +FROM docker.mgm.sipwise.com/sipwise-jessie:latest + +# Important! Update this no-op ENV variable when this Dockerfile +# is updated with the current date. It will force refresh of all +# of the base images and things like `apt-get update` won't be using +# old cached versions when the Dockerfile is built. +ENV REFRESHED_AT 2016-10-14 + +# TODO - the release-trunk-jessie is too dynamic yet, though required build deps +RUN echo "deb https://deb.sipwise.com/autobuild/ release-trunk-jessie main" >>/etc/apt/sources.list + +RUN apt-get update +RUN apt-get install --assume-yes \ + curl \ + nodejs \ + nodejs-legacy \ + npm + +RUN echo "cd /code && ./t/testrunner" >/root/.bash_history + +WORKDIR /code + +################################################################################ +# Instructions for usage +# ---------------------- +# When you want to build the base image from scratch (jump to the next section if you don't want to build yourself!): +# % docker build --tag="janus-client-jessie" . +# % docker run --rm -i -t -v $(pwd)/..:/code:ro janus-client-jessie:latest bash +# +# Use the existing docker image: +# % docker pull docker.mgm.sipwise.com/janus-client-jessie +# % docker run --rm -i -t -v $(pwd)/..:/code:ro docker.mgm.sipwise.com/janus-client-jessie:latest bash +# +# Inside docker: +# cd /code && ./t/testrunner +################################################################################ diff --git a/t/testrunner b/t/testrunner new file mode 100755 index 0000000..87a3b99 --- /dev/null +++ b/t/testrunner @@ -0,0 +1,40 @@ +#!/bin/bash + +if ! [ -f /.dockerenv ] && ! grep -q 'devices:/docker' /proc/1/cgroup ; then + echo "Not running inside docker, exiting to avoid data damage." >&2 + exit 1 +fi + +set -e +set -u + +echo "JFYI, usage: $0 [] [junit]" + +OUTPUT_DIRECTORY="${1:-/results/}" +mkdir -p "${OUTPUT_DIRECTORY}" +results="${OUTPUT_DIRECTORY}/test_results.tap" +echo "1..1" > "${results}" +echo "ok 1 - All OK" >> "${results}" + +code_ro="/code" +code_rw="/code_rw" + +# We need to make a copy here becuase in nature of npm is +# to use current folder for dependencies installation. +# It is dangerous as sources should not be chnaged during the test. +mkdir -p "${code_rw}" +cp -a "${code_ro}"/* "${code_rw}" +cd "${code_rw}" + +if ! npm install ; then + echo "1..1" > "${results}" + echo "not ok 1 - 'nmp install' failed" >> "${results}" + exit 1 +fi + +if ! npm test ; then + echo "1..1" > "${results}" + echo "not ok 1 - 'nmp test' failed" >> "${results}" + exit 1 +fi +