Uploaded image for project: 'Qt Quality Assurance Infrastructure'
  1. Qt Quality Assurance Infrastructure
  2. QTQAINFRA-316

Integrator should gracefully terminate build if someone does force push to gerrit

XMLWordPrintable

    • Icon: Suggestion Suggestion
    • Resolution: Done
    • Icon: P3: Somewhat important P3: Somewhat important
    • None
    • None
    • Gerrit
    • 5

      If a forced push is done on a target repo/branch where pushes are usually done exclusively by CI, various bad things can happen:

      • a change which is STAGED would, at the very least, need to be re-cherry-picked internally (staging rebuild). It's possible this already works, needs to be checked.
      • a change which is INTEGRATING would remain in that state until the build completes, then the staging-approve command run by CI would fail (since the target branch -> build is not a fast-forward, which it must be).

      To solve the problem for INTEGRATING changes, we can have the integrator monitor the target branch for updates from sources other than CI. If a non-CI update occurs, it can fail the build with a comment explaining that it was terminated due to a force push. The monitoring could be done by simple polling, or by gerrit stream-events.

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            jujokini Jukka Jokiniva
            rmcgover Rohan McGovern (Inactive)
            Jukka Jokiniva Jukka Jokiniva
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes