summaryrefslogtreecommitdiff
path: root/qa/qa/resource/project_runner.rb
blob: 173b17550c7b5e82b082e8b24f43e359f9e3f651 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# frozen_string_literal: true

module QA
  module Resource
    class ProjectRunner < RunnerBase
      attribute :project do
        Project.fabricate_via_api! do |resource|
          resource.name = 'project-with-ci-cd'
          resource.description = 'Project with CI/CD Pipelines'
        end
      end

      attribute :token do
        project.runners_token
      rescue NoValueError
        project.reload!.runners_token
      end

      private

      def runner(**kwargs)
        fail_msg = "Wait for runner '#{name}' to register in project '#{project.name}'"
        Support::Retrier.retry_until(max_duration: 60, sleep_interval: 1, message: fail_msg) do
          project.runners(**kwargs).find { |runner| runner[:description] == name }
        end
      end
    end
  end
end