INFRA-144 CI for test image ; readme

robot-tests-backup
anastasia prasolova 2020-05-20 15:26:13 +03:00
parent 6dd650100c
commit b23a49211b
7 changed files with 72 additions and 35 deletions

35
.drone.yml 100644
View File

@ -0,0 +1,35 @@
---
kind: pipeline
type: docker
name: robot-image
steps:
- name: cleanup and build
image: docker:19.03.5
environment:
PASSWORD:
from_secret: docker_passwd
IMG_NAME: 'registry.nspcc.ru/docker-local/robot'
volumes:
- name: docker_sock
path: /var/run/docker.sock
commands:
- ./images_cleanup.sh
- docker build --no-cache -t $IMG_NAME:latest ./
- docker login registry.nspcc.ru -u admin -p "$PASSWORD"
- docker push $IMG_NAME:latest
trigger:
branch:
- master
event:
- push
# host volume mount requires a repository to be `trusted`
# in drone; this option enables in repository settings
# by admin user
volumes:
- name: docker_sock
host:
path: /var/run/docker.sock

View File

@ -1,17 +1,16 @@
FROM python:3.6
ENV WD /testcases/
ENV WD /
ENV NEOFSCLI_VERSION '0.7.1'
RUN apt-get update \
&& pip3 install robotframework==3.2.1
#RUN cd /tmp \
# && wget https://github.com/nspcc-dev/neofs-cli/releases/download/v0.7.1/neofs-cli_${NEOFSCLI_VERSION}_linux_x86_64.tar.gz \
# && tar xfz neofs-cli_${NEOFSCLI_VERSION}_linux_x86_64.tar.gz \
# && mv neofs-cli /usr/local/bin
RUN cd /tmp \
&& wget https://github.com/nspcc-dev/neofs-cli/releases/download/v0.7.1/neofs-cli_${NEOFSCLI_VERSION}_linux_x86_64.tar.gz \
&& tar xfz neofs-cli_${NEOFSCLI_VERSION}_linux_x86_64.tar.gz \
&& mv neofs-cli /usr/local/bin \
&& rm -rf /tmp/neofs-cli
WORKDIR ${WD}
COPY ./ ${WD}
# temporary hack due to slow github servers
RUN mv ${WD}/neofs-cli /usr/local/bin

View File

@ -1,29 +1,24 @@
# README #
### Сборка образа с тестами
This README would normally document whatever steps are necessary to get your application up and running.
Чтобы тесты из этого репозитория были доступны к запуску из Drone CI,
они должны быть упакованы в docker-имадж. Это делается в рамках CI,
сконфигурированного в этом репозитории. Вся сборка "тестового образа"
описывается в файлах `Dockerfile` и `.drone.yml` и осуществляется на
каждый пуш в master.
### What is this repository for? ###
В докерфайле указана версия `neofs-cli`, который используется в запусках
тестов. Каждый раз при сборке имаджа `neofs-cli` скачивается заново.
* Quick summary
* Version
* [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo)
Тестовый образ имеет единственную версию -- `latest`. Ради экономии
хранилища на машине-сборщике перед сборкой все ранее собранные образы
удаляются.
### How do I get set up? ###
* Summary of set up
* Configuration
* Dependencies
* Database configuration
* How to run tests
* Deployment instructions
### Contribution guidelines ###
* Writing tests
* Code review
* Other guidelines
### Who do I talk to? ###
* Repo owner or admin
* Other community or team contact
#### Локальная сборка
Чтобы локально собрать образ, нужно, стоя в корне репо, выполнить
команду:
```
drone exec --trusted --secret-file=secrets.txt --volume /var/run/docker.sock
```
В результате будет прогнан полный пайплайн, за исключением пуша образа в
docker registry. Чтобы запушить образ, нужно указать пароль к реджистри в
файле `secrets.txt`.

View File

@ -0,0 +1,5 @@
#!/bin/sh
for i in `docker images | grep robot | awk '{ print $3 }'`; do
docker rmi -f $i
done

View File

@ -5,8 +5,8 @@ Library ${RESOURCES}/kws_module.py
Library ${RESOURCES}/assertions.py
*** Variables ***
${OBJECT} ${TESTSUITES}/test_file
${READ_OBJECT} ${TESTSUITES}/read_file
${OBJECT} ${ABSOLUTE_FILE_PATH}/test_file
${READ_OBJECT} ${ABSOLUTE_FILE_PATH}/read_file
*** Test cases ***
Read and Write to NeoFS

View File

@ -3,4 +3,6 @@
ROOT='../..'
RESOURCES="%s/resources/lib" % ROOT
TESTSUITES="%s/testsuites/integration" % ROOT
# path from repo root is required for object put and get
# in case when test is run from root in docker
ABSOLUTE_FILE_PATH="/robot/testsuites/integration"

1
secrets.txt 100644
View File

@ -0,0 +1 @@
docker_passwd=<docker registry password>