1. 08 Dec, 2020 11 commits
  2. 06 Dec, 2020 1 commit
    • Georges Racinet's avatar
      Heptapod CI: running RSpec tests in parallel · ddefe30b3c6f
      Georges Racinet authored
      Starting with 6 jobs should give us pipelines around 15 minutes,
      but perhaps we'll need to cache download.heptapod.net
      
      Worth of notice is that for the `parallel` directive, GitLab chose
      the exact environment variables expected by knapsack.
      
      Lately we've needed a tremendous
      amount of retries on one example (#384), that explains
      the very high `RETRIES` setting.
      
      --HG--
      branch : heptapod-stable
      ddefe30b3c6f
  3. 08 Dec, 2020 1 commit
    • Georges Racinet's avatar
      RSpec tests: parallel launch with Knapsack · baa204a5c885
      Georges Racinet authored
      Knapsack is the sharding tool also used by upstream GitLab.
      To balance the shards, it uses a time table (the report file).
      Our main difference with upstream is that we have a checked in
      report file instead of maintaining it from the CI in a S3 bucket.
      
      Updates will have to be done manually. There is a companion
      `heptapod-rspec-parallel` script in the HDK (for lack of a better
      place) that can leverage knapsack to run the tests
      across several entire HDK workspaces.
      
      --HG--
      branch : heptapod-stable
      baa204a5c885
  4. 07 Dec, 2020 8 commits
    • Georges Racinet's avatar
      Heptapod CI: adding frontend assets to the prebuild · b0f35669d1c9
      Georges Racinet authored
      Closes #382
      
      --HG--
      branch : heptapod-stable
      b0f35669d1c9
    • Georges Racinet's avatar
      Heptapod CI: prebuilding Gitaly and other deps, pushed on download.h.n · 5fc14f94261f
      Georges Racinet authored
      if it works, we'll probably just keep the result and enable the job
      only on GitLab version bumps (perhaps with the `changes` directive)
      
      --HG--
      branch : heptapod-stable
      5fc14f94261f
    • Georges Racinet's avatar
      Heptapod CI: installing proper versions of HGitaly & py-heptapod · bf0b1d7eaa6c
      Georges Racinet authored
      Heads up: in release branches, the tests are expected to pass
      for the versions specified in `python/requirements.txt`.
      
      Was spotted while working on the Gitaly prebuild, but really
      has to be fixed: we were running the tests always against the
      default branch of the Python dependencies (HGitaly and py-heptapod).
      
      There is a complication with tags, and especially release
      branches. For the latter, there is no simple way to know
      which is the appropriate branch of the Python deps. Shortly
      after the beginning of the release branch, it would clearly
      be `default`, but after the swap of branches in the Rails app,
      it would be `stable`.
      
      For tags, the tests are run against the exact versions specified
      in `python/requirements.txt`, that was easy.
      For release branches, we just do the same. This is a lesser evil.
      Hence now, pushes to release branches are expected to make the
      appropriate version bumps (this was already quite often the case).
      
      --HG--
      branch : heptapod-stable
      bf0b1d7eaa6c
    • Georges Racinet's avatar
      Heptapod CI: refactoring of hgitaly-test-build · e9eab32a7d58
      Georges Racinet authored
      Now there's a separate function to update configuration
      files, will be useful for next change.
      
      --HG--
      branch : heptapod-stable
      e9eab32a7d58
    • Georges Racinet's avatar
      Heptapod CI: match HGitaly build/spawn with Gitaly · 56a1a392e87d
      Georges Racinet authored
      This creates and preserves the `tmp/tests/hgitaly` subdir
      and separates for CI the install (build) and startup (spawn)
      phases.
      
      By putting `hgitaly.socket` in that preserved directory,
      it also fixes test runs on developer machines involving
      several spec files (previously, the socket was destroyed
      at the end of each spec file)
      
      This is heavier than strictly needed for HGitaly, but
      matching what is already done for Gitaly will help us
      schedule differently (prepare phase, straight download), and
      prebuilding just Gitaly, but with `TestEnv` that actually starts
      HGitaly is an unmaintanable mess.
      
      --HG--
      branch : heptapod-stable
      56a1a392e87d
    • Georges Racinet's avatar
      Heptapod CI: fixed URL for initial cloning of py-heptapod/hgitaly (!) · 3cf6af5d98ac
      Georges Racinet authored
      The only conclusion is that it worked because almost all the runners
      already had them (spotted on a case where concurrent-1 got used)
      
      --HG--
      branch : heptapod-stable
      3cf6af5d98ac
    • Georges Racinet's avatar
      Heptapod CI/CD: split out push script for reuse · 15b390d2bc98
      Georges Racinet authored
      --HG--
      branch : heptapod-stable
      15b390d2bc98
    • Georges Racinet's avatar
      Heptapod CI/CD: known SSH hosts for sftp · a623efe9f792
      Georges Racinet authored
      about time.
      
      --HG--
      branch : heptapod-stable
      a623efe9f792
  5. 13 Dec, 2020 2 commits
    • Georges Racinet's avatar
      RSpec tests: introducing "scopes" in parallel runs · e3b221981d54
      Georges Racinet authored
      The new `HEPTAPOD_RSPEC_SCOPE` will be used to define several
      subsets of tests to run.
      
      The default is what we are currently
      running in CI for everyday development (Merge Requests on
      `heptapod` and `heptapod-stable` branches).
      
      The 'extended' scope will be used in release preparation, and
      will grow a lot from now on.
      
      --HG--
      branch : heptapod
      e3b221981d54
    • Georges Racinet's avatar
      RSpec parallel tests: exclusion tags · 20544f19c65b
      Georges Racinet authored
      These are the same tags used by upstream in the "unit" RSpec job
      (with a much wider pattern, of which ours is a small fraction).
      
      --HG--
      branch : heptapod
      20544f19c65b
  6. 11 Dec, 2020 1 commit
  7. 02 Dec, 2020 2 commits
    • Georges Racinet's avatar
      pipeline-emails: resist recipients being nil, RSpec tests and CI · f95f97278d0e
      Georges Racinet authored
      In practice, the feature will work for the "Pipeline Emails"
      integration, because these are triggered separately from
      regular pipeline emails, with exactly the list as given in
      the integration config.
      
      Turns out that in all RSpec tests/examples about pipeline
      emails, the list of recipients was actually `nil`, because
      that is the email of the testing user. The case hence
      seems articial, but let's not break because of that.
      
      In the new test we don't use the `deliver_to` from `EmailSpec`
      because it apparently actually reconstructs the envelop-to
      from To and Bcc values.
      
      Finally, the test in spec/models was explicitely looking
      for recipients in the Bcc field, it had to be adapted after
      CI complained.
      
      --HG--
      branch : heptapod
      f95f97278d0e
    • Raphaël Gomès's avatar
      tests: add spec test for remote mirrors in the heptapod tests · cf6a93485ee3
      Raphaël Gomès authored
      --HG--
      branch : heptapod
      cf6a93485ee3
  8. 27 Nov, 2020 1 commit
  9. 21 Oct, 2020 1 commit
  10. 10 Nov, 2020 2 commits
  11. 07 Nov, 2020 2 commits
    • Georges Racinet's avatar
      multi-vcs: restrict Project creation Web UI according to app setting · 1c314c133569
      Georges Racinet authored
      In the helper, we're now making the distinction between all
      possible values and those that are enabled in the application settings.
      
      In the default value, we're in particular treating the corner case
      where the library-level default is not allowed by Application Settings.
      It is not expected with the current possible values to happen often,
      but one may even imagine people restricting to Git as part as a
      transition plan from upstream GitLab CE to Heptapod.
      
      We don't want to do the same for the API, because the default
      is quite arbitrary in that case, and it's not guaranteed a
      human being would be witnessing its value.
      
      --HG--
      branch : heptapod
      1c314c133569
    • Georges Racinet's avatar
      multi-vcs: application settings panel to set VCS types on new projects · dfa98ee0aa7a
      Georges Racinet authored
      This allows to fill in the new `vcs_types` field.
      
      --HG--
      branch : heptapod
      dfa98ee0aa7a
  12. 26 Oct, 2020 2 commits
  13. 13 Oct, 2020 1 commit
    • Georges Racinet's avatar
      Heptapod CI: upgrading hg-evolve · 9431f6af7970
      Georges Racinet authored
      While investigating some failed builds, I found that the
      HGitaly repo couldn't be updated for them (failed pull) and
      that upgrading hg-evolve fixed that, as well as the whole build.
      
      --HG--
      branch : heptapod
      9431f6af7970
  14. 19 Sep, 2020 1 commit
  15. 21 Sep, 2020 1 commit
    • Georges Racinet's avatar
      Packaging: pulling tag definition before tarball creation · dacd39dfd1f8
      Georges Racinet authored
      Closes #345. The selective pull we're adding should be
      enough in most cases with our current branching strategy.
      
      Since we can't really test it without polluting the tags,
      and it's not a really big problem if it doesn't work, we're
      allowing the pull to fail. This can be made stricter in a
      follow-up.
      
      --HG--
      branch : heptapod
      dacd39dfd1f8
  16. 26 Sep, 2020 1 commit
    • Georges Racinet's avatar
      Gitlab class: fixing the tests · 44ad2e7178f6
      Georges Racinet authored
      These will from now be launched by CI.
      
      The previously split methods made this easier, although
      we needed one more, to have a constant `Pathname` instance
      to mock.
      
      --HG--
      branch : heptapod-stable
      44ad2e7178f6
  17. 03 Sep, 2020 1 commit
    • Georges Racinet's avatar
      Heptapod CI: job to produce and push heptapod-rails tarballs · c1c4a4f5926a
      Georges Racinet authored
      The job is manual and non-blocking if from a regular push or
      from the Web UI.
      
      It is in a separate stage because it felt just wrong to label
      it as 'test'.
      
      For the time being, we're making it not depend on tests to pass,
      because that's too much of a pain while we are working on the
      packaging itself. We may want that in the future, though, for
      final validation before release.
      
      Closes: #339
      
      --HG--
      branch : heptapod
      c1c4a4f5926a
  18. 20 Aug, 2020 1 commit