1. 18 May, 2017 1 commit
  2. 28 Apr, 2017 2 commits
    • Mathieu Bridon's avatar
      ci: Properly run the C locale tests · 120b2e5a
      Mathieu Bridon authored
      Click is one of our dependencies, through pip-tools. Click does not like
      being used on a non-UTF8 locale.
      
      Now that we synchronize the dependencies in CI jobs with pip-tools
      instead of installing them with pip, Click gets used in the C locale and
      errors out, failing the CI jobs.
      
      This commit changes the job definition so that only the actual tests are
      run with the C locale, not the whole task.
      120b2e5a
    • Mathieu Bridon's avatar
      ci: Massively speed up the job runs · 1c0145a7
      Mathieu Bridon authored
      We currently install the dependencies in the virtual environment when
      running the CI jobs. That is, each job will download and install the
      dependencies with pip at the beginning.
      
      But those dependencies are the same for all the tasks.
      
      This commit speeds everything up by pre-installing the dependencies in
      the Docker images.
      
      The tasks wil then just synchronize their dependencies when they start,
      which in most cases will be almost instantaneous, as long as we keep our
      Docker images up to date.
      1c0145a7
  3. 14 Apr, 2017 1 commit
  4. 13 Apr, 2017 5 commits
    • Mathieu Bridon's avatar
      ci: Run tests on Debian Stretch · a7870ba6
      Mathieu Bridon authored
      Eventually, we're going to move to Debian Stretch as our primary
      deployment target.
      
      It certainly won't happen soon, but everything we can do now helps us
      get ready for that moment.
      a7870ba6
    • Mathieu Bridon's avatar
      ci: Ensure we didn't forget any model migration · 63f65a36
      Mathieu Bridon authored
      In the past we've sometimes merged pull requests, only to realize later
      that a small migration had been missed.
      
      This mostly happens for trivial changes to the model (e.g adding a
      verbose_name or a new value to a choices) or for models based on
      configuration (e.g the list of languages).
      
      With this new job in the CI, we can make sure it never happens again.
      
      Fixes #669
      63f65a36
    • Mathieu Bridon's avatar
      ci: Verify code coverage · 691d6ec8
      Mathieu Bridon authored
      This is the last thing we were missing in the move from our Travis-based
      CI to the new Gitlab one.
      
      We have a pretty high code coverage in Ideascube, this should help
      keeping it that way and improving it.
      
      Gitlab has native integration for coverage report, so we can stop
      relying on Coveralls (a proprietary platform) and still have the cute
      badge.
      
      However, we lose two things:
      
      *   a coverage report right in the pull request page, we need to go see
          the builds associated to the pull request, one of them will have the
          coverage information.
          https://gitlab.com/gitlab-org/gitlab-ce/issues/3694
      
      *   whether a branch increased or decreased the code coverage
          https://gitlab.com/gitlab-org/gitlab-ce/issues/17265
      
      Both are features which might eventually come into Gitlab.
      
      The former is a minor annoyance, but the latter is more problematic. To
      try and avoid decreasing our code coverage, this commit asks pytest to
      fail the build if it gets under 92%.
      
      I hope with time we will increase the global code coverage, and with
      that increase this minimal value.
      691d6ec8
    • Mathieu Bridon's avatar
      ci: Add a job dedicated to quality checks · 4e2709c8
      Mathieu Bridon authored
      With this, the test jobs are slightly faster, since they don't do the
      flakes checks any more.
      
      And we now have a job doing only that, which helps isolating failures in
      the CI.
      4e2709c8
    • Mathieu Bridon's avatar
      ci: Start playing with Gitlab CI · fa32afba
      Mathieu Bridon authored
      With this, we run the tests on our deployment target: Python 3.4 on
      Debian Jessie.
      
      We use our own Docker image for this:
      
          https://hub.docker.com/r/ideascube/ideascube-ci
      
      It's a simple Debian Jessie (from the official image), with the
      development headers and build toolchain pre-installed.
      
      We run the tests both in a UTF-8 and in the C locale, just like we were
      doing in Travis.
      
      Each test runs the flakes linting, which is a bit wasteful. This will
      change in a subsequent commit.
      
      Also, coverage is missing for now.
      
      Fixes #693
      fa32afba