1. 28 Mar, 2019 1 commit
  2. 20 Mar, 2019 2 commits
    • Tiger Watson's avatar
      Create framework for build prerequisites · 00f0d356
      Tiger Watson authored
      Introduces the concept of Prerequisites for a CI build.
      If a build has unmet prerequisites it will go through the
      :preparing state before being made available to a runner.
      
      There are no actual prerequisites yet, so current
      behaviour is unchanged.
      00f0d356
    • Tiger Watson's avatar
      Add :preparing status to HasStatus · 42ca9c6f
      Tiger Watson authored
      Introduces a new status for builds between :created and :pending
      that will be used when builds require one or more prerequisite
      actions to be completed before being picked up by a runner
      (such as creating Kubernetes resources before deploying).
      
      The existing :created > :pending transition is unchanged, so
      only builds that require preparation will use the :preparing
      status.
      42ca9c6f
  3. 25 Jan, 2019 1 commit
  4. 15 Nov, 2018 1 commit
    • Yorick Peterse's avatar
      Refactor how a few ActiveRecord enums are defined · 590ff80f
      Yorick Peterse authored
      In a few models we define ActiveRecord enums that are redefined in EE
      using the following pattern:
      
          enum :some_enum, {
            ...
          }.merge(EE_ENUM_VALUES)
      
      This particular approach is problematic to deal with, because it
      requires that we `prepend` and EE module _before_ defining the enum.
      This typically translates to the `prepend` being the first line in the
      model in EE, but this can easily lead to merge conflicts when developers
      add more `include` and/or `prepend` lines.
      
      As part of https://gitlab.com/gitlab-org/gitlab-ee/issues/8244 and
      https://gitlab.com/gitlab-org/gitlab-ee/issues/8241 we are moving
      `prepend` to the last line in a file, reducing the chances of running
      into merge conflicts. This poses a bit of a problem with the pattern
      above, because this pattern does not allow us to move the `prepend`
      further down a file.
      
      To resolve this problem, we simply move the Hash value of the enum to a
      separate class method. This method is defined in a separate module where
      necessary, allowing us to use it like so:
      
          enum :failure_reasons, ::SomeModelEnums.failure_reasons
      
      The method in turn is defined in a very straightforward manner:
      
          module SomeModelEnums
            def self.failure_reasons
              {
                ...
              }
            end
          end
      
      This makes it easy for EE to add values without requiring the `prepend`
      to be placed before the `enum` is defined.
      
      For more information, see the following issues and merge requests:
      
      * https://gitlab.com/gitlab-org/gitlab-ee/issues/8244
      * https://gitlab.com/gitlab-org/gitlab-ee/issues/8241
      * https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/8424
      590ff80f
  5. 05 Nov, 2018 1 commit
  6. 01 Nov, 2018 1 commit
  7. 28 Oct, 2018 1 commit
  8. 26 Oct, 2018 1 commit
  9. 02 Oct, 2018 5 commits
  10. 11 Sep, 2018 1 commit
  11. 01 Aug, 2018 2 commits
  12. 26 Jul, 2018 1 commit
  13. 06 Jun, 2018 1 commit
    • Jan Provaznik's avatar
      Enable mapping to nil in enums · 0665a8f7
      Jan Provaznik authored
      Enum in Rails 5 does not map nil values - IOW nil value remains nil,
      even if there is a key with nil value in the enum definition.
      
      This commit overrides the underlying Enum methods so nil value is
      still mapped. This solution is far from being ideal: it uses dynamic
      definition of methods which introduces more magic/confusion
      into the codebase.
      
      It would be better to get rid of the nil value in enums.
      0665a8f7
  14. 15 May, 2018 1 commit
  15. 02 May, 2018 1 commit
  16. 10 Apr, 2018 1 commit
  17. 04 Apr, 2018 1 commit
  18. 01 Mar, 2018 1 commit
  19. 05 Feb, 2018 1 commit
    • Grzegorz Bizon's avatar
      Revert create job service because of load balancing · 5f57c7a5
      Grzegorz Bizon authored
      Currently we still need to run EnsureStageService within a transaction,
      because when it runs within in a transaction we are going to stick to
      the primary database when using database load balancing. Extracting this
      out of the transaction makes it possible to hit into problems with
      replication lag in pipeline commit status API, which can cause a lot of
      trouble.
      5f57c7a5
  20. 31 Jan, 2018 1 commit
  21. 24 Jan, 2018 2 commits
  22. 06 Dec, 2017 1 commit
  23. 27 Nov, 2017 1 commit
  24. 06 Nov, 2017 3 commits
  25. 05 Sep, 2017 5 commits
  26. 24 Jul, 2017 2 commits