В моем репозитории Bitbucket есть много функций и один Jenkinsfile для запуска одного задания для развертывания этих функций Python.Мне нужно развернуть функции на основе измененных файлов в хранилище.Структура моего репо выглядит следующим образом:
-- functions
-- func1
-- app.py
-- func2.py
-- app.py
-- fun3.py
-- app.py
Что я хочу сделать, так это: когда я изменяю какую-то функцию, разверните только эту функцию, а не другие.Поэтому, когда я фиксирую изменение, мне нужно найти измененный файл и развернуть соответствующую функцию.Внутри jenkinsfile я сделал что-то вроде этого:
sh '''
last_commit=$(git describe --always)
access_token=$(cat BITBUCKET_TOKEN)
changed_file=$(curl https://api.bitbucket.org/1.0/repositories/account/reponame/changesets/$last_commit?access_token=$access_token | jq -r .files[].file)
echo $changed_file > CHANGED_FILE
'''
CHANGED_FILE = readFile 'CHANGED_FILE'
if (CHANGED_FILE.contains('functions/func1')) {
// instructions ...
}
CHANGED_FILE = readFile 'CHANGED_FILE'
if (CHANGED_FILE.contains('functions/func2')) {
// instructions ...
}
Здесь я получаю только последний коммит и получаю из него только один измененный файл.Я хочу знать, какую логику использовать для обработки множества коммитов со многими измененными файлами?Я пытался использовать плагин Webhook, но он не может этого сделать.