1. 10 Dec, 2020 2 commits
  2. 08 Dec, 2020 3 commits
  3. 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
  4. 07 Dec, 2020 4 commits
    • Georges Racinet's avatar
      Heptapod CI: gate gitlab-prebuilds with variable · 663dfccf451f
      Georges Racinet authored
      We will do something less manual later on, but right now
      this is a major waste of time while tuning the pipeline.
      
      --HG--
      branch : heptapod-stable
      663dfccf451f
    • 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: 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
  5. 03 Dec, 2020 1 commit
  6. 17 Nov, 2020 1 commit
  7. 30 Oct, 2020 1 commit
    • Georges Racinet's avatar
      Heptapod CI: now running for Merge Requests · 4d26d7c5b353
      Georges Racinet authored
      The big drawback of the manual triggering is that we have
      to allow failures, which makes it dangerous for MRs with the
      "Merge when pipeline succeeds button" (happened with !119).
      
      Now we're running for MR events, still keeping the manual option
      in other cases, but without a default rule in order to be spared
      warnings.
      
      --HG--
      branch : heptapod
      4d26d7c5b353
  8. 10 Oct, 2020 1 commit
  9. 02 Oct, 2020 1 commit
    • Georges Racinet's avatar
      Heptapod CI: verbose RSpec output · 736d5195c5fb
      Georges Racinet authored
      This switches RSpec to the "documentation" format (groups and
      example names), which helps being sure that an expected test has
      really been run.
      
      --HG--
      branch : heptapod
      736d5195c5fb
  10. 09 Sep, 2020 1 commit
    • Georges Racinet's avatar
      Heptapod CI: avoiding duplicate rspec jobs. · a9796784cbbe
      Georges Racinet authored
      We'd rather not use Detached Merge Request pipelines as in earlier
      GitLab versions than to launch these heavy jobs twice.
      
      As explained in the comment, we really want the `rspec` job to run
      for pushes not MR related.
      
      --HG--
      branch : heptapod
      a9796784cbbe
  11. 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
  12. 29 Aug, 2020 1 commit
    • Georges Racinet's avatar
      Heptapod CI: changing cache key · 250158f844b4
      Georges Racinet authored
      Various dependencies differ between GitLab 13.1.4 and 13.3.0,
      we don't want the caches to play back-and-forth depending on the
      branch.
      
      --HG--
      branch : heptapod
      250158f844b4
  13. 27 Jul, 2020 1 commit
    • Georges Racinet's avatar
      heptapod-ci: installing HGitaly · 1dfaabbeaa28
      Georges Racinet authored
      We'll still need to run `hgitaly-serve` to write RSpec tests
      relying on HGitaly, but at this point we should have all
      dependencies to do so.
      
      --HG--
      branch : heptapod
      1dfaabbeaa28
  14. 29 Jul, 2020 1 commit
    • Georges Racinet's avatar
      heptapod-ci: avoid useless builds · 985a861e0e3d
      Georges Racinet authored
      Because our subset of tests is somewhat limited, it does not
      make much sense to run them in all cases, especially with the
      RSpec job being already 20-30mn long.
      
      Keeping a manual triggering for special cases though.
      
      --HG--
      branch : heptapod
      985a861e0e3d
  15. 28 Jul, 2020 1 commit
    • Georges Racinet's avatar
      heptapod-ci: providing frontend assets · ae8a0ce1233e
      Georges Racinet authored
      Closes #318.
      
      Some tests will trigger templating that doesn't like assets
      to be missing. This is what happens with pipeline tests because
      of the content of email notifications are produced.
      
      We'll readd the pipeline tests separately
      
      --HG--
      branch : heptapod
      ae8a0ce1233e
  16. 27 Jul, 2020 3 commits
    • Georges Racinet's avatar
      heptapod-ci: dumping version information as read from the Rails app · d07a455ce0cb
      Georges Racinet authored
      This helps being sure that we are, e.g., on Python 3.8.3
      
      --HG--
      branch : heptapod
      d07a455ce0cb
    • Georges Racinet's avatar
      heptapod-ci: switching to Python3.8 with our own base image · 5683f86aa4a8
      Georges Racinet authored
      --HG--
      branch : heptapod
      5683f86aa4a8
    • Georges Racinet's avatar
      heptapod-ci: preparations for tests involving Mercurial · 3e78a99421fa
      Georges Racinet authored
      This is done by a separate Python script originally because
      it'd otherwise be an escaping nightmare with sed commands as
      `prepare_build.sh` issues (especially because we'd need
      an absolute path, and hence to escape $PWD).
      
      Now this script does the following:
      
      - create a virtualenv
      - install all py-heptapod needed dependencies, for now
        in a Python2 virtual environment. We'll have to provide
        a recent Python3 for HGitaly later.
      - configure GitLab for Mercurial operation.
      
      This is done after `TestEnv.init` because the later would
      cancel our changes in `config/gitlab.yml`
      
      Note also that putting the local `test.hgrc` file in `tmp/tests`
      would not work: something inside the `bin/rspec` run would delete
      it before the time when the actual tests need it.
      
      --HG--
      branch : heptapod
      3e78a99421fa
  17. 25 Jul, 2020 5 commits
    • Georges Racinet's avatar
      heptapod-ci: fixing Gitaly tests install · 5f6241ea5cfa
      Georges Racinet authored
      Unless in first job execution in this particular runner,
      the `tmp/tests/gitaly` directory was not empty at the time of
      `TestEnv.init`: it still had stale Unix Domain sockets, and
      this seems to prevent checkouting the sources and makes the
      whole build fail.
      
      We should also compare how aggressively Heptapod Runner does
      `hg clean` compared to `git clean`, there's maybe something to
      fix here.
      
      --HG--
      branch : heptapod
      5f6241ea5cfa
    • Georges Racinet's avatar
      heptapod-ci: attempt to use the cache · ed0725bcc9e3
      Georges Racinet authored
      See in particular the long comment about the key policy.
      
      We don't have a distributed (S3) setup at the moment on
      foss.h.n, but we have few runners and they are persistent.
      
      --HG--
      branch : heptapod
      ed0725bcc9e3
    • Georges Racinet's avatar
      heptapod-ci: added a debugging line · 2cf161723894
      Georges Racinet authored
      This will be useful for flakiness in `gitaly-test-build`.
      
      --HG--
      branch : heptapod
      2cf161723894
    • Georges Racinet's avatar
      A separate script to launch Heptapod sanctioned RSpec tests · ba0ff15fdf38
      Georges Racinet authored
      and of course we want to run it in the CI.
      
      This runs in about 5 minutes on my workstation in HDK context
      (hence with almost every dependency already provided).
      
      We'll add new test patterns to this list as we make them pass.
      Later on we'll probably want to split it, maybe run several jobs
      etc.
      
      --HG--
      branch : heptapod
      ba0ff15fdf38
    • Georges Racinet's avatar
      Very crude first CI setup for Heptapod Rails application · 7a407860a9a8
      Georges Racinet authored
      For the sake of demonstration, this just runs the RSpec
      tests for `Gitlab::Git::Repository`. We'll follow up with
      a bigger subset of all available RSpec tests.
      
      This reuses some of the very rich upstream setup and is
      for now vastly inefficient. Notably:
      
      - we don't cache the Gitaly and Workhorse builds. Upstream
        uses a separate job for that, of which we reused some parts.
      - we don't run tests in parallel.
      
      All of these have to be investigated separately, and may
      require some tweaking of foss.heptapod.net and/or creation of
      a base CI image for Heptapod (we have less moving parts than
      upstream, with notably the set of gems and Gitaly version that
      never changes in the `heptapod` and `heptapod-stable` branches).
      
      --HG--
      branch : heptapod
      7a407860a9a8