How to run a pipeline step only when pushing to a new branch?
2021-01-07
GitHub sends push hook when pushing to a new branch and merging a PR. How can we distinguish between them?
We are running integration test by triggering a downstream build when a PR is merged into specific branches. In the downstream repository, we pull all the docker images which has been built and pushed from upstream. The thing is we also used the drone-convert-pathschanged to only publish what modules has been changed.
So, what happens when pushing to a new release-* branch?
How to trigger build steps based on modified directory?
2020-06-26
Using monorepo with multiple micro services, every single commit will trigger a full lint/test/build/publish for every service. What can I do to limit the scope?
To do that, we can use git diff to show changes between commits:
if [[ -n "${DRONE_PULL_REQUEST}" ]]; then
most_recent_before="origin/${DRONE_TARGET_BRANCH}"
elif [[ "${DRONE_BUILD_EVENT}" = "push" && ("${DRONE_COMMIT_BRANCH}" = "master" || "${DRONE_COMMIT_BRANCH}" = "release-"*) ]]; then
if [[ "${DRONE_COMMIT_BEFORE}" = "$zero" ]]; then
exit 0
else
most_recent_before="${DRONE_COMMIT_BEFORE}"
fi
fi
modified_files=$(git --no-pager diff --name-only "${DRONE_COMMIT_SHA}".."${most_recent_before}");
Quan Tong