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
|
||||
|
||||
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
|
||||
|
|
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
|
||||
* 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`.
|
||||
|
|
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
|
||||
|
||||
*** 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
|
||||
|
|
|
@ -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
Normal file
1
secrets.txt
Normal file
|
@ -0,0 +1 @@
|
|||
docker_passwd=<docker registry password>
|
Loading…
Reference in a new issue