Можно ли вызвать разные задачи для разных измененных файлов в конвейере битбакета? - PullRequest
0 голосов
/ 07 сентября 2018

Например.

Мой репозиторий содержит три папки: «project1», «project2» и «core».

Когда я изменяю файлы в папке «core», я хочу вызвать «npm run test Project1» и «npm run test project2».

Если я изменил файлы "project1", я хочу проверить только "project 1". Если я изменил "poject2" - я хочу проверить только "project2".

Я не хочу разделять эти папки на отдельные репозитории или использовать подмодули и поддеревья git. А также я не хочу каждый раз проверять все.

Я слышал, что в teamcity такая задача называется триггерами.

Поддерживает ли «конвейер битбакета» эту функцию?

1 Ответ

0 голосов
/ 20 сентября 2018

Мне удалось сделать это с помощью пользовательского сценария bash, например:

for DIFF in `git diff --name-only HEAD^1 HEAD`
do
    FOLDER=`echo $DIFF | awk -F/ '{print $1}'`
    if [ $FOLDER = functions ]
    then

    fi
done

Первая строка дает вам список путей файлов, которые были изменены в последнем коммите, третья строка похожа на разделение javascript, с помощью которого я разделяю путь на символе "/" и получаю первую часть об этом (таким образом, я просто получаю внешнюю папку diff), наконец, я оцениваю имя папки и делаю что-то соответственно, здесь вы помещаете все необходимые условия

...