firstBitMarksistskaya / jenkins-lib

Jenkins shared library для 1С:Предприятие 8
MIT License
158 stars 67 forks source link

Добавить проверку перед созданием архива 1Cv8.1CD.zip #87

Closed rusdaurov closed 6 months ago

rusdaurov commented 2 years ago

Если не очищать каталог до/после сборки падает на при создании архива 1Cv8.1CD.zip IMG_20220603_184418

nixel2007 commented 2 years ago

Можешь попробовать в vars/zipInfoBase.groovy добавить следующий код перед операцией zip?

    if (fileExits('1Cv8.1CD.zip')) {
        fileOperations([fileDeleteOperation(includes: '1Cv8.1CD.zip')])
    }
ivanmolodec commented 2 years ago

Для этого правда придется подключить file operations plugin, но можно вот из этой фича-ветки подобрать https://github.com/ivanmolodec/jenkins-lib/tree/feature-edt-validate-settings

nixel2007 commented 2 years ago

Для этого правда придется подключить file operations plugin, но можно вот из этой фича-ветки подобрать https://github.com/ivanmolodec/jenkins-lib/tree/feature-edt-validate-settings

Он не нужен в градле в явном виде. Главное чтобы на сервере стоял.

rusdaurov commented 2 years ago

image пока так

nixel2007 commented 2 years ago

Вот я слепошара. fileExists конечно же.

rusdaurov commented 2 years ago

Работает, но тут другая беда, image и я думаю что лучше, прописать по всем файлам или clean before checkout?

ivanmolodec commented 2 years ago

Работает, но тут другая беда, image и я думаю что лучше, прописать по всем файлам или clean before checkout?

У меня стоит clean before checkout, но если дженкинс на винде, то в некоторых случаях он из-за этого падает с ошибкой т.к. файлы ещё заняты ОС

nixel2007 commented 2 years ago

Работает, но тут другая беда, image и я думаю что лучше, прописать по всем файлам или clean before checkout?

Лучше прописать по всем файлам, так как clean before checkout в целом может замедлять сборку. Возможно имеет смысл дропать весь каталог build целиком.

rusdaurov commented 2 years ago

Работает, но тут другая беда, image и я думаю что лучше, прописать по всем файлам или clean before checkout?

Лучше прописать по всем файлам, так как clean before checkout в целом может замедлять сборку. Возможно имеет смысл дропать весь каталог build целиком.

Вижу в некоторых шагах есть https://github.com/rusdaurov/jenkins-lib/blob/9fc54dc240b0b5178cc75adfdc76dbdc9e8febe1/src/ru/pulsar/jenkins/library/steps/DesignerToEdtFormatTransformation.groovy#L37

добавить нужно будет в 'pre-stage'?
dir(path) deleteDir() только я не пойму зависим ли мы от текущего каталога дальше и стоит ли его вернуть?

rusdaurov commented 2 years ago

и в разных шагах будем удалять почти одно и то же же

nixel2007 commented 2 years ago

только я не пойму зависим ли мы от текущего каталога дальше и стоит ли его вернуть?

При каждом выделении агента есть вероятность попасть на протухшие данные в build. Библиотека построена на принципе передачи нужных данных между стейджами через stash, так что думаю, что на каждом выделении агента нужно смотреть, что нужно дропать. Либо дропать целиком build, но тогда это надо задокументировать.

rusdaurov commented 2 years ago

ух.. казалось бы

rusdaurov commented 2 years ago

пока так https://github.com/rusdaurov/jenkins-lib/commit/80996725974229894fbafce1846f7c32857d397d проверил на шагах которые могу прогнать все зеленное (хотя едт ругается зеленым цветом), остальное затирается при выполнении команды, возник вопрос по поводу https://github.com/firstBitMarksistskaya/jenkins-lib/blob/911be3c7ba4ce3c9c8704dd3dfa6887c21e8552d/vars/pipeline1C.groovy#L82, и наверно стоит при первом выполнении чего либо на агентах удалять build