diff --git a/.jenkins.sh b/.jenkins.sh new file mode 100644 index 0000000000000000000000000000000000000000..ea4251e443b9f2c64a64b2ce6164dbce2dcceea6 --- /dev/null +++ b/.jenkins.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# Copyright ETSI 2018 +# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt + +#set -vx +#set -e + +cd "$(dirname "$0")" + +run_dir="$(pwd)" + +./scripts/build-container.sh +./scripts/run-container.sh "${run_dir}" + +exit $? diff --git a/scripts/build-container.sh b/scripts/build-container.sh new file mode 100755 index 0000000000000000000000000000000000000000..df57c1fd6f5674e0cdab446fb395dee5fcdd3865 --- /dev/null +++ b/scripts/build-container.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# Copyright ETSI 2019 +# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt + +#set -e +set -vx + +DOCKER_FILE=./scripts/docker/Dockerfile +if [ -f ${DOCKER_FILE} ] +then + #check and build stf569-rf image + DOCKER_ID=`docker ps -a | grep -e stf569-rf | awk '{ print $1 }'` + if [ ! -z "${DOCKER_ID}" ] + then + docker rm --force stf569-rf + fi + docker build --tag stf569-rf --force-rm -f ${DOCKER_FILE} . + if [ "$?" != "0" ] + then + echo "Docker build failed: $?" + exit -1 + fi + docker image ls -a + docker inspect stf569-rf:latest + if [ "$?" != "0" ] + then + echo "Docker inspect failed: $?" + exit -2 + fi +else + exit -3 +fi + +# That's all Floks +exit 0 + diff --git a/scripts/docker/Dockerfile b/scripts/docker/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..d770424edaa4e9b20430af79be2eecb33ada8c61 --- /dev/null +++ b/scripts/docker/Dockerfile @@ -0,0 +1,49 @@ +FROM ubuntu:16.04 + +MAINTAINER ETSI STF 569 + +LABEL description="SFT569 Robot Framework Docker Image" + +ENV TERM=xterm +ENV HOSTNAME docker-robot-STF569 + + +ARG ssh_prv_key + + + +RUN DEBIAN_FRONTEND=noninteractive apt update \ + && apt install python3 -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-STF569" > /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.txt \ + && chmod +x /home/etsi/dev/robot/scripts/* + +CMD tail -f /dev/null + + diff --git a/scripts/launch-validation.sh b/scripts/launch-validation.sh old mode 100644 new mode 100755 diff --git a/scripts/run-all.bash b/scripts/run-all.bash old mode 100644 new mode 100755 index 310b9d41d1cf1dff8d2b17cbd16a050d229fd97f..38edbc4e6190888b7ebab02e43f62ca74551eadb --- a/scripts/run-all.bash +++ b/scripts/run-all.bash @@ -2,7 +2,9 @@ ## Launch robot tests validator -/bin/bash /scripts/launch-validation.sh > logs/robot_stdout.log 2> logs/robot_stderr.log +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 @@ -18,4 +20,19 @@ 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 \ No newline at end of file +fi + + +if [ ! -z logs/errors.log ]; then + cat logs/errors.log +fi + +if [ ! -z logs/failures.log ]; then + cat logs/failures.log +fi + +if [ ! -z logs/erros.log ] || [ ! -z logs.failures.log ]; then + echo "Errors are found. Job failed" + exit 1 +fi + diff --git a/scripts/run-container.sh b/scripts/run-container.sh new file mode 100755 index 0000000000000000000000000000000000000000..72b31e053421d8ff67c3a1e6eecb9d1807fc01ff --- /dev/null +++ b/scripts/run-container.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# Copyright ETSI 2019 +# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt + +#set -e +#set -vx + +docker run stf569-rf:latest "/bin/bash" \ + -c "cd /home/etsi/dev/robot \ + && sh scripts/run-all.bash \ + && ls -ltr logs/" + +# That's all Floks +exit $? +