Commit 12909de9 authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Adding pipeline for MEC Robot test suite

parent 8a956f90
Loading
Loading
Loading
Loading
Loading
+13 −2
Original line number Original line Diff line number Diff line
@@ -16,10 +16,21 @@ Build stfubuntu docker image:
    - changes:
    - changes:
        - common/Dockerfile.sftubuntu
        - common/Dockerfile.sftubuntu
              
              
Build TTCN-3 Test Suite docker image for devel:
Build TTCN-3 Test Suite docker image:
  stage: build
  stage: build
  before_script: cd GS32-3
  before_script: cd GS32-3
  script: docker build -t etsiforge/mec-ts .
  script: docker build -t etsiforge/mec-ts .
  rules:
  rules:
    - changes:
    - changes:
        - GS32-3/Dockerfile
        - GS32-3/Dockerfile
        
Build Robot Test Suite docker image:
  stage: build
  before_script: cd GS32-3
  script: docker build -t etsiforge/mec-ts -f Dockerfile.robot-ts .
  rules:
    - changes:
        - GS32-3/Dockerfile.robot-ts
        - GS32-3/requirements-robot-ts.txt
        - GS32-3/scripts/launch-validation.sh
        - GS32-3/scripts/run-all.bash
 No newline at end of file
+49 −0
Original line number Original line Diff line number Diff line
FROM ubuntu:16.04

MAINTAINER ETSI CTI

LABEL description="MEC Robot Framework Docker Image"

ENV TERM=xterm
ENV HOSTNAME docker-robot-mec


ARG ssh_prv_key



RUN DEBIAN_FRONTEND=noninteractive apt update \
	&& apt install python3  git -y \
	&& apt install python3-pip -y \
        && apt install openssh-server -y \
    && DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y \
    && DEBIAN_FRONTEND=noninteractive apt-get autoclean \
    && rm -rf /var/lib/apt/lists/*


RUN echo "docker-robot-mec" > /etc/hostname \
    && echo "root:etsi" | chpasswd

RUN useradd --create-home --shell /bin/bash --user-group etsi --groups sudo \
    && echo "etsi:etsi" | chpasswd \
    && adduser etsi sudo \
    && echo "etsi ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers


RUN DEBIAN_FRONTEND=noninteractive \
        && mkdir -p /home/etsi/dev/robot \
        && cd /home/etsi/dev/robot 


ADD . /home/etsi/dev/robot

RUN pip3 install robotframework

RUN DEBIAN_FRONTEND=noninteractive \
	&& cd /home/etsi/dev/robot \
	&& pip3 install -r requirements-robot-ts.txt \
	&& chmod +x /home/etsi/dev/robot/scripts/* 

CMD tail -f /dev/null

+11 −0
Original line number Original line Diff line number Diff line
###### List of required python libraries ######
## To install the libraries, use:
# pip -r requirements.txt

robotframework==3.1
RESTinstance==1.0.0rc4
robotframework-dependencylibrary==1.0.0.post1
robotframework-jsonlibrary==0.3
robotframework-jsonschemalibrary==1.0
robotframework-requests==0.8.0
robotframework-mockserver>=0.0.7
+8 −0
Original line number Original line Diff line number Diff line
#!/bin/bash

echo "Starting check on ROBOT CODE"

for FILE in $(find . -name "*.robot"); do
	echo "Syntax check on ${FILE}"
	robot --dryrun -d /tmp ${FILE}
done
+38 −0
Original line number Original line Diff line number Diff line
#!/bin/bash

## Launch robot tests validator

mkdir logs

/bin/bash scripts/launch-validation.sh > logs/robot_stdout.log 2> logs/robot_stderr.log

## Filter failed Keywords
grep -r10n "| FAIL |" logs/robot_stdout.log  | grep -v "Output:" | grep -v "Log:" | grep -v "Report:" > logs/failures.log
rm -f logs/robot_stdout.log


## Filter Errors on code
grep -rn " ERROR " logs/robot_stderr.log | grep -v "File has no tests or tasks" > logs/errors.log
rm -f logs/robot_stderr.log


ERRORS=`awk 'END{print NR}' logs/errors.log logs/failures.log`
if [ "${ERRORS}" -eq 0 ]; then
	rm -f logs/errors.log
	rm -f logs/failures.log
fi


if [ -f logs/errors.log ]; then
	cat logs/errors.log
fi

if [ -f logs/failures.log ]; then
	cat logs/failures.log
fi

if [ -f logs/erros.log ] || [ -f logs.failures.log ]; then
	echo "Errors are found. Job failed"
	exit 1
fi