На момент написания статьи, у drone.io есть неприятная особенность — он не обновляет Pull Request при изменениях в слияемых ветках. То есть, при поступлении хука от SCM он заново запускает сборку со старым репозиторием.
Для того, чтобы заставить Drone обновить PR, добавьте в начало pipeline в .drone.yml следующий текст:
update_pr:
image: plugins/git
commands:
- export BRANCH_SRC=origin/${DRONE_COMMIT_REFSPEC%%:*} BRANCH_DST=origin/${DRONE_BRANCH}
- cp -rpf .git .git.bak
- git fetch && git checkout $BRANCH_SRC && git merge --no-commit $BRANCH_DST
- rm -rf .git && mv -f .git.bak .git
when:
event: pull_request
Данный сниппет подразумевает, что remote во время сборки называется origin (по умолчанию).