INFRA-144 CI for test image ; readme

This commit is contained in:
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 Normal file
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 FROM python:3.6
ENV WD /testcases/ ENV WD /
ENV NEOFSCLI_VERSION '0.7.1' ENV NEOFSCLI_VERSION '0.7.1'
RUN apt-get update \ RUN apt-get update \
&& pip3 install robotframework==3.2.1 && pip3 install robotframework==3.2.1
#RUN cd /tmp \ 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 \ && 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 \ && tar xfz neofs-cli_${NEOFSCLI_VERSION}_linux_x86_64.tar.gz \
# && mv neofs-cli /usr/local/bin && mv neofs-cli /usr/local/bin \
&& rm -rf /tmp/neofs-cli
WORKDIR ${WD} WORKDIR ${WD}
COPY ./ ${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 Тестовый образ имеет единственную версию -- `latest`. Ради экономии
* Version хранилища на машине-сборщике перед сборкой все ранее собранные образы
* [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo) удаляются.
### How do I get set up? ### #### Локальная сборка
Чтобы локально собрать образ, нужно, стоя в корне репо, выполнить
* Summary of set up команду:
* Configuration ```
* Dependencies drone exec --trusted --secret-file=secrets.txt --volume /var/run/docker.sock
* Database configuration ```
* How to run tests В результате будет прогнан полный пайплайн, за исключением пуша образа в
* Deployment instructions docker registry. Чтобы запушить образ, нужно указать пароль к реджистри в
файле `secrets.txt`.
### Contribution guidelines ###
* Writing tests
* Code review
* Other guidelines
### Who do I talk to? ###
* Repo owner or admin
* Other community or team contact

5
images_cleanup.sh Executable file
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 Library ${RESOURCES}/assertions.py
*** Variables *** *** Variables ***
${OBJECT} ${TESTSUITES}/test_file ${OBJECT} ${ABSOLUTE_FILE_PATH}/test_file
${READ_OBJECT} ${TESTSUITES}/read_file ${READ_OBJECT} ${ABSOLUTE_FILE_PATH}/read_file
*** Test cases *** *** Test cases ***
Read and Write to NeoFS Read and Write to NeoFS

View file

@ -3,4 +3,6 @@
ROOT='../..' ROOT='../..'
RESOURCES="%s/resources/lib" % 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 Normal file
View file

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