Tinkoff/Nginx-builder

добавить опцию "зачистки поляны"

stepansantalov opened this issue · 5 comments

Последующие сборки спотыкаются об оставшиеся от предыдущих артефакты (исходники, пакеты).
1 Хочется иметь возможность все это зачищать (например ./main.py clear -f config.yaml).
2 Хочется иметь возможность "не спотыкаться" об имеющиеся исходники и перезаписывать пакет.

Скиньте пример лога когда инструмент спотыкается.
Чем вы пользуетесь для сборки?

Debian Stretch 9.8

stepan@temmik:/Nginx-builder$ ./main.py build -f banana-config.yaml -r 0.02
builder - INFO - Parse yaml file: banana-config.yaml
builder - INFO - /usr/src/nginx dir already exist
builder - INFO - Download scripts for build deb package
builder - INFO - Downloading nginx src...
builder - INFO - --> http://nginx.org/download/nginx-1.16.0.tar.gz
builder - INFO - Downloading 3d-party modules...
builder - INFO - Module nginx_cookie_flag will download by branch
builder - INFO - -- Done: nginx_cookie_flag
builder - INFO - Downloading dependencies
builder - INFO - Building .deb package
builder - ERROR - Destination path '/usr/src/nginx/debian/modules' already exists
stepan@temmik:
/Nginx-builder$ rm -rf /usr/src/nginx/debian/modules
stepan@temmik:~/Nginx-builder$ ./main.py build -f banana-config.yaml -r 0.02
builder - INFO - Parse yaml file: banana-config.yaml
builder - INFO - /usr/src/nginx dir already exist
builder - INFO - Download scripts for build deb package
builder - INFO - Downloading nginx src...
builder - INFO - --> http://nginx.org/download/nginx-1.16.0.tar.gz
builder - INFO - Downloading 3d-party modules...
builder - INFO - /usr/src/nginx/modules dir already exist
builder - INFO - Module nginx_cookie_flag will download by branch
builder - ERROR - Cmd('git') failed due to: exit code(128)
cmdline: git clone --branch=master -v https://github.com/AirisX/nginx_cookie_flag_module.git /usr/src/nginx/modules/nginx_cookie_flag
stderr: 'fatal: destination path '/usr/src/nginx/modules/nginx_cookie_flag' already exists and is not an empty directory.
'
Пока совсем /user/src/nginx не зачистишь, сборка не пойдет.
Если не использовать номер ревизии пакета, то собранный пакет не перезапишется.

Инструмент предполагался для автоматической сборки в динамических окружениях, можете ли вы добавить команду rm -rf /usr/src/nginx первым шагом перед сборкой? Это решило бы вашу проблему 100%. Либо вы можете использовать встроенные средства вашего ci/cd инструмента для очистки рабочей директории перед сборкой пакета.
Мы не можем брать на себя ответственность за то что будем удалять что-то из директории /usr/src/nginx

Если у вас остались еще вопросы дайте немного больше информации о своей системе ci/cd и почему вариант с rm -rf для вас не подходит.

Вполне подходит, кажется, я просто сильно начал губу раскатывать ).
Хотя, наверное таки о возможности зафорсить эти остановки подумать можно.
Спасибо.

Если что-то делать не "на чистую" появляется очень много "depends on" поэтому свои сборки, к примеру, мы проводим в докер контейнере таким образом мы получаем вполне себе однообразный процесс без проблем.
Как говориться, только что залитый и только что почищенный сервера похожи, но в большинстве случаев не идентичны.