Filtering builds

Max Moroz's Avatar

Max Moroz

20 Apr, 2017 01:58 AM

What is the semantics for build filtering when I force push or rebase? The documentation implies that AppVeyor compares the current commit to the last commit for which the build was performed, and then checks whether that change meets the filtering rule. But for a forced push / rebase, the last commit for which the build was run is no longer available. What does AppVeyor do in this case?

The only safe thing to do would be to assume that the build has to be done unconditionally, as if no filters were defined. If that's the case, maybe it's worth updating the docs?

  1. 1 Posted by Ilya Finkelshte... on 20 Apr, 2017 08:02 PM

    Ilya Finkelshteyn's Avatar

    Hi Max,

    Just to confirm that we are talking about Setting up commits filtering part in our documentation.
    All information used in those filters is being read by AppVeyor from WebHook payload, which came from Git provider (GitHub, BitBucket, etc.) after push or pull request happen. AppVeyor does not compare anything itself.


  2. 2 Posted by Max Moroz on 20 Apr, 2017 10:57 PM

    Max Moroz's Avatar

    Thank you Ilya! Yes, I meant commit filtering that you linked.

    Your filtering rules are specified in terms of files changed. So I was expecting you obtain some diff for each push.

    The payload contains head and before keys, but not the diff. So I thought you would take the diff between the two commits. In this case, I wanted to know how you deal with rebase or a push --force, which result in before commit becoming unreachable and so absent from the cloned repo.

    The only diffs I found in the Webhook payloads are for PRs, not for pushes.

  3. Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 02:16 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac