Дженкинс должен выполнить этап сборки, если какие-либо файлы в определенном каталоге были изменены с момента последней фиксации (не триггер FS) - PullRequest
0 голосов
/ 27 мая 2020

Я настраиваю свой первый сервер Jenkins как интересный маленький проект и чтобы облегчить себе жизнь

Он выполняет сборку приложения Play Framework, когда происходит фиксация моего репозитория bitbucket, и запускает приложение успешно

Я хотел бы добавить шаг в процесс, посредством которого, если таковой имеется. sql файл в каталоге $ WORKSPACE / sql был создан или обновлен в последней фиксации, то есть sql файл будет выполнен для нашей базы данных.

Фактическое выполнение должно быть достаточно простым теоретически - выполнить команду оболочки .. Но я не уверен, как настроить jenkins для выполнения проверки 'есть ли новые или изменено sql файлов в этом каталоге '

Любая помощь будет принята с благодарностью

Спасибо

Тим

1 Ответ

0 голосов
/ 28 мая 2020

Так что мне, возможно, еще нужно уточнить это, но я решил это с помощью команд оболочки

git diff-tree --no-commit-id --name-only -r HEAD | grep -i .sql | while read -r line; do
echo "processing $line"
/opt/mssql-tools/bin/sqlcmd -S <redacted> -U sa -P <redacted> -d <redacted> -i $WORKSPACE/$line
done

Итак, что это делает, это использует git diff-tree для перечисления всех измененных файлов в фиксации , затем grep фильтрует файлы sql. Затем мы l oop и (в моем случае в качестве сервера ms sql) используем sqlcmd для последующего выполнения скрипта в базе данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...