Add upload to testrail tool
Change-Id: I9f3c24bec69a9a5eae794cbb4edbd400b6e8b825
Related-prod: PROD-29082
diff --git a/upload2testrail_docker/.dockerignore b/upload2testrail_docker/.dockerignore
new file mode 100644
index 0000000..7c4e434
--- /dev/null
+++ b/upload2testrail_docker/.dockerignore
@@ -0,0 +1,2 @@
+.git
+README.md
\ No newline at end of file
diff --git a/upload2testrail_docker/Dockerfile b/upload2testrail_docker/Dockerfile
new file mode 100644
index 0000000..b0c3406
--- /dev/null
+++ b/upload2testrail_docker/Dockerfile
@@ -0,0 +1,39 @@
+FROM python:2
+LABEL maintainer="Serhii Turivnyi <sturivnyi@mirantis.com>"
+
+RUN apt-get update -qq && \
+apt-get install -q -y \
+ python-dev \
+ python2.7 python-pip \
+ git vim \
+ libvirt-dev && \
+pip install pdbpp && \
+apt-get clean && \
+rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
+
+WORKDIR /opt/
+
+RUN pip install xunit2testrail
+RUN git clone --single-branch --branch for_docker https://github.com/Turivniy/upd_testrail_xml.git
+
+ENV TESTRAIL_PLAN_NAME="[MCP-Q2]System-proposed-2018-02-05"
+ENV TEST_GROUP="openstack"
+ENV TESTRAIL_URL="https://mirantis.testrail.com"
+ENV TESTRAIL_PROJECT='Mirantis Cloud Platform'
+ENV TESTRAIL_MILESTONE='MCP1.1'
+ENV TESTRAIL_SUITE="[MCP1.1_PIKE]Tempest"
+ENV PASTE_BASE_URL=""
+ENV REPORT=/srv/report.xml
+ENV OUTPUT_XUNIT_REPORT=/opt/upd_testrail_xml/output_verification.xml
+ENV PASS=TESTRAIL_PASSWORD
+
+COPY entrypoint.sh /opt/
+
+# Change report filename
+COPY report_to_upload_to_testrail.xml $REPORT
+
+# Change TESTRAIL_PASSWORD and TESTRAIL_USER or use it
+ENV TESTRAIL_PASSWORD="mosqa-eng496F"
+ENV TESTRAIL_USER="mosqa-eng@mirantis.com"
+
+ENTRYPOINT ["/opt/entrypoint.sh"]
diff --git a/upload2testrail_docker/README.md b/upload2testrail_docker/README.md
new file mode 100644
index 0000000..6428a7a
--- /dev/null
+++ b/upload2testrail_docker/README.md
@@ -0,0 +1,19 @@
+upload2testrail_docker
+======================
+
+Uploads xml tests results to the Testrail using Docker
+
+How to use
+----------
+
+#### Edit Dockerfile
+
+Change report filename `report_to_upload.xml` to your report name
+
+Change `TESTRAIL_PASSWORD` and `TESTRAIL_USER`
+
+Execute next following commands
+
+``$ docker build .``
+
+``$ docker run -ti <build_id> sh``
diff --git a/upload2testrail_docker/entrypoint.sh b/upload2testrail_docker/entrypoint.sh
new file mode 100755
index 0000000..92e62f4
--- /dev/null
+++ b/upload2testrail_docker/entrypoint.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+test $DEBUG && set -x && CMD='echo'
+
+if ! [ -a $REPORT ]; then
+ echo "$REPORT is not founded"
+ exit 1
+fi
+
+if ! [ $PASS ]; then
+ echo 'Password ($PASS) is not exported'
+ exit 1
+fi
+
+DATE=`date +%Y%m%d`
+
+if ! [ $TEST_GROUP ]; then
+ TEST_GROUP="${SHORT_TEST_GROUP}.$DATE"
+fi
+
+if [[ "$TESTRAIL_SUITE" =~ 'stepler' ]]; then
+ TESTRAIL_NAME_TEMPLATE='{methodname}'
+else
+ TESTRAIL_NAME_TEMPLATE='{classname}.{methodname}'
+fi
+
+cd /opt/upd_testrail_xml
+/bin/bash update_xml.sh $TESTRAIL_USER $TESTRAIL_PASSWORD $REPORT
+
+cd /opt
+$CMD report -v \
+--testrail-plan-name "$TESTRAIL_PLAN_NAME" \
+--env-description "$TEST_GROUP" \
+--testrail-url "$TESTRAIL_URL" \
+--testrail-user "$TESTRAIL_USER" \
+--testrail-password "$TESTRAIL_PASSWORD" \
+--testrail-project "$TESTRAIL_PROJECT" \
+--testrail-milestone "$TESTRAIL_MILESTONE" \
+--testrail-suite "$TESTRAIL_SUITE" \
+--testrail-name-template '{title}' \
+--xunit-name-template "$TESTRAIL_NAME_TEMPLATE" $OUTPUT_XUNIT_REPORT
+
+EXIT_CODE=$?
+echo "----------------------------------------------------------"
+echo "---------- Report has finished with exit code $EXIT_CODE ----------"
+echo "----------------------------------------------------------"
+test $DEBUG && /bin/bash || exit $EXIT_CODE