Test simple push with PostReceive

It seems that because of gitlab-shell interactions, we should test a simple push and ensure that PostReceive completes successfully without any errors.

This would help prevent https://gitlab.com/gitlab-org/gitlab-ee/issues/2822 occurring in the first place.

Then, ideally we should probably check that each of the updates that happen in GitTagPushService / GitPushService have been performed:

  • ProcessCommitWorker: https://gitlab.com/gitlab-org/gitlab-ce/issues/52707

    • a commit with Closes #1234 effectively closes the related issue

    • a commit with Closes #1234 effectively creates a cross-reference in the related issue

  • UpdateMergeRequestsWorker: https://gitlab.com/gitlab-org/gitlab-ce/issues/52708

    • the commit appears in the commits list of the MR

    • the commit content appears in the diff of the MR

  • EventCreateService: #155 (closed) => https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/16423

    • a new event is created and appears in the Activity page
  • Ci::CreatePipelineService: #229 (closed) => Covered by https://gitlab.com/gitlab-org/gitlab-ce/blob/3a1843f9470e8916d65e182f33c1e5f53b217140/qa/qa/specs/features/project/pipelines_spec.rb#L28-100

    • a new pipeline is created and appears in the Pipelines page (no need to check that the pipeline is picked up by a runner in this test)
  • SystemHookPushWorker

    • a trigger that we've set up is effectively called (we'll have to find how to check that): we could spin up a simple web app in a Docker container that would write the last body it receives to a file on POST, and return it on GET, so that we could curl it to ensure that what it returns is the information of the commit that we just pushed to GitLab...
  • AfterBranchDeleteService

    • this ones requires an environment to be started: deleting the branch should stop the environment
  • check that the number of commits shown in the Project page is updated

  • more checks for EE

Edited Oct 15, 2018 by Rémy Coutable
Assignee Loading
Time tracking Loading