1. 26 Nov, 2020 1 commit
    • Georges Racinet's avatar
      DockerHeptapod: Fixed SSH params · a9cbd203532d
      Georges Racinet authored
      Now that it inherits from OmnibusHeptapod, it had
      the hardcoded expected `git@localhost`, which isn't
      appropriate because DockerHeptapod is meant to be
      used from outside the container (and OmnibusHeptapod can
      be used from inside the container)
      a9cbd203532d
  2. 24 Nov, 2020 1 commit
  3. 25 Nov, 2020 1 commit
  4. 19 Nov, 2020 1 commit
    • Georges Racinet's avatar
      Mercurial native: introspect at Project level · dc2a28b750f8
      Georges Racinet authored
      For the very few tests that need to make a difference, it's
      best not to assume we will use a global flag available on
      the Heptapod project forever. It could very well depend on
      the given project.
      dc2a28b750f8
  5. 03 Nov, 2020 7 commits
  6. 17 Nov, 2020 1 commit
  7. 29 Oct, 2020 2 commits
  8. 15 Oct, 2020 1 commit
  9. 12 Oct, 2020 1 commit
    • Georges Racinet's avatar
      New `--heptapod-hg-native` option · b2a5da28ceb5
      Georges Racinet authored
      This option makes the functional tests create Mercurial native
      projects instead of the default type (currently `hg_git`).
      
      Hence it will be the main tool to validate HGitaly related
      developments. Later on, we might want to introduce dedicated
      CI jobs. Switching to parametrization can also be considered,
      but it wouldn't change so much in CI, because we now have tests
      sharding.
      
      The new flag is stored on the `Heptapod` object, for lack of
      better choice in the short term (arguably, that's not a property
      of the Heptapod server).
      b2a5da28ceb5
  10. 06 Oct, 2020 4 commits
    • Georges Racinet's avatar
      Fixing flake8 and forcing the job in CI. · 56961c493a41
      Georges Racinet authored
      I *kwew* that this job not running on detached MR pipelines was
      going to be a problem. We can live with duplication of that job.
      56961c493a41
    • Georges Racinet's avatar
      Omnibus: stop hardcoding server-side path to hg · 55b1ee0b3b1b
      Georges Racinet authored
      For server-side operations, we should use the one provided by
      the server, obviously.
      
      The immediate need is that it varies amongst installation types
      With The new Omnibus packaging method (omnibus-heptapod!3)
      for Heptapod 0.17, it changes from /usr/local/bin (expected to be on PATH)
      to /opt/gitlab/embedded/bin.
      
      There are several TODOs:
      
      - read `hg_executable` from config, with remote instances being
        the only exceptions (but these wouldn't call server-side subprocesses
        from the tests).
      - provide a direct helper method on `Heptapod`
      - do the same for Git
      55b1ee0b3b1b
    • Georges Racinet's avatar
      git: new CLI option for client-side executable · ee0c40e91d6a
      Georges Racinet authored
      In 7a354d699944, we had the `heptapod` fixture carry the path
      to the client-side Git executable, but that creates confusion
      between the client and server sides (actually more manifest with
      Mercurial, but both should be handled in the same way).
      
      Now we make the client-side Git executable path work as for
      Mercurial, with a command line option and centralization in the
      `utils.git` module.
      
      Finally, we refactor both `utils.git` and `test_ssh` so that the
      latter can use the standard classmethod of `git.LocalRepo`.
      ee0c40e91d6a
    • Georges Racinet's avatar
      hg: new CLI option for client-side executable · 6397162194d8
      Georges Racinet authored
      This seems to be necessary for CI tests inside the Docker
      container, because /opt/gitlab/omnibus/bin is not on the PATH
      of the `git` user.
      6397162194d8
  11. 05 Oct, 2020 4 commits
    • Georges Racinet's avatar
      OmnibusHeptapod: fixing DevToolsActivePort chrome driver problem · fa268a4c73e9
      Georges Racinet authored
      Without this, the tests may crash with the
      "DevToolsActivePort file doesn't exist" error upon initialization
      of ChromeDriver.
      
      Many resources I could find about this are in a context when
      the tests are run as `root`, as I did in the first experiments.
      
      But it can happen also if running a non-privileged user, such
      as `git` in our case.
      
      Of course `--no-sandbox` wouldn't be acceptable for systems
      not entirely dedicated to the task, as is the case with
      `OmnibusHeptapod`, but not `DockerHeptapod` (in the latter,
      the web driver is on the user's system, not in the container).
      
      --HG--
      branch : stable
      fa268a4c73e9
    • Georges Racinet's avatar
      OmnibusHeptapod: new base class to run tests in Omnibus instances · 48a515bc0056
      Georges Racinet authored
      In that case the tests are to be run as the 'git' user, and
      depend on
      
      - availability of sudo
      - a sudoers configuration that gives the 'git' user the
        right to launch `gitlab-ctl` commands.
      
      In particular, this avoids the need to initiate the webdriver
      as root (which can be done but is yet another source of trouble).
      
      --HG--
      branch : stable
      48a515bc0056
    • Georges Racinet's avatar
      Heptapod: made Git executable available as attribute · 7a354d699944
      Georges Racinet authored
      This is from the client side, but still, depending on context,
      the proper one to use may not be on path.
      
      --HG--
      branch : stable
      7a354d699944
    • Georges Racinet's avatar
      Heptapod: factorizing run_shell in base class · 2344f5b0369a
      Georges Racinet authored
      The `execute` method has long been be the fundamental one whose
      implementation varies amongst subclasses.
      
      --HG--
      branch : stable
      2344f5b0369a
  12. 27 Sep, 2020 1 commit
    • Georges Racinet's avatar
      Project.get_merge_request_commit_links now returns the whole row · 911d63829706
      Georges Racinet authored
      We still wait on the link to be displayed, but returning the whole
      `li` element will be useful for finer assertions, e.g., about
      commit SHAs.
      
      The consequence is that the `text` attribute of the returned
      elements is broader, encompassing the commit title, authorship and
      short id.
      
      --HG--
      branch : stable
      911d63829706
  13. 25 Sep, 2020 1 commit
  14. 24 Sep, 2020 1 commit
  15. 08 Sep, 2020 1 commit
    • Georges Racinet's avatar
      services: GitLab Docker image now uses puma · ff3356bc42d2
      Georges Racinet authored
      This has been true at least since 13.1, meaning in particular
      that we didn't stop Rails properly in the backup tests, and
      that explains the high rate of data corruption I personally had
      with them.
      
      --HG--
      branch : stable
      ff3356bc42d2
  16. 28 Aug, 2020 1 commit
    • Georges Racinet's avatar
      Project: adapted webdriver_destroy() for GitLab 13.3 · 623db7fc5767
      Georges Racinet authored
      The confirmation modal has changed a lot (the principle
      stays the same), including the text to type, that we now
      simply copy for better independence (now has a verb and the
      full path).
      
      We've observed the `id` for the `modal` element to differ between
      source and Docker contexts. Using the `<div class="modal-dialog>`
      ancestor wouldn't be appropriate as the corresponding CSS selector
      returns another one.
      623db7fc5767
  17. 04 Aug, 2020 1 commit
  18. 23 Jul, 2020 5 commits
  19. 17 Jul, 2020 2 commits
  20. 16 Jul, 2020 1 commit
    • Georges Racinet's avatar
      Project: high level methods to switch to legacy and back · 2335c75d6a79
      Georges Racinet authored
      Previously we were relying on the global application setting to
      infer if a project is on legacy or hashed storage. This was
      obviously approximative, but on GitLab 13, that setting doesn't
      exist any more and all new projects are on the hashed storage.
      
      We introduce here a new boolean property on the project and
      methods to switch from hashed to legacy and back.
      2335c75d6a79
  21. 03 Jun, 2020 1 commit
  22. 21 Jun, 2020 1 commit