XMLWordPrintable

    Details

    • Type: Epic
    • Status: Resolved
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: GitHub
    • Tags:
    • Sprint:
      DevOps-12, DevOps-13, DevOps-14, DevOps-15, DevOps-16, DevOps-17

      Description

      1) Set the maintenance branches as "protected" on GitHub.
      https://help.github.com/articles/about-protected-branches/

      First version can focus on the main repository but we'll later have to automate the branch protection on a repository list extracted from the modules (see scripts.nxutils.Repository.eval_modules and scripts.nxutils.Repository.eval_addons)

      2) Make the T&P create a Pull Request instead of pushing a merge/rebase when the target is a maintenance branch.
      https://developer.github.com/v3/pulls/#create-a-pull-request

      After PR is created, one can change the content of the source branch, the PR is updated and the status re-evaluated.

      3) Run code review tools on the PR. Main candidates seems to be:
      https://github.com/integrations/reviewninja
      https://github.com/integrations/reviewable

      4) Make the PR merge-ability dependent on some specific status corresponding to the code review results.
      https://help.github.com/articles/enabling-required-status-checks/

      For instance, with reviewninja, we would configure GitHub to require "two ninja stars" for the PR being merged. Ninja stars are granted by the reviewers.

      Bonus:

      3.1) as well as automated quality checks in the mean time. For instance:
      https://github.com/integrations/codacy
      https://github.com/integrations/codecov
      https://github.com/integrations/versioneye
      https://github.com/integrations/sideci
      https://codeclimate.com/features

      3.2) and Nuxeo long-time running tests (FT) which could be removed from the T&P first execution and delayed (and parallelized) since the branch is protected.

      5) we may need to also setup a GitHub hook for executing some automated actions when the PR status changes to become merge-able, like... merging the pull-request, sending notifications...
      That can also be done in the first place by a recurrent script like the one which cleans the old branches.

      6) once that tooling is setup, we could make the T&P propose two options: Build, Test & create a PR, or Build, Test & get Code Review (+ all other checks) on my branch but don't (automatically) merge it yet.

      7) or we can invert the process and start the workflow from the PR or even the branch push (on a given Git namespace), then create job, tests, status and so on. The T&P would mainly become dynamically instantiated job; still manually available on purpose.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                jcarsique Julien Carsique
                Reporter:
                jcarsique Julien Carsique
                Participants:
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: