INFRA-144 CI for test image ; readme
This commit is contained in:
parent
6dd650100c
commit
b23a49211b
7 changed files with 72 additions and 35 deletions
35
.drone.yml
Normal file
35
.drone.yml
Normal 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
|
13
Dockerfile
13
Dockerfile
|
@ -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
|
|
||||||
|
|
45
README.md
45
README.md
|
@ -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
5
images_cleanup.sh
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
for i in `docker images | grep robot | awk '{ print $3 }'`; do
|
||||||
|
docker rmi -f $i
|
||||||
|
done
|
|
@ -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
|
||||||
|
|
|
@ -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
1
secrets.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
docker_passwd=<docker registry password>
|
Loading…
Reference in a new issue