31 lines
827 B
Ruby
31 lines
827 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module Resolvers
|
||
|
module Ci
|
||
|
class RunnerPlatformsResolver < BaseResolver
|
||
|
type Types::Ci::RunnerPlatformType, null: false
|
||
|
|
||
|
def resolve(**args)
|
||
|
runner_instructions.map do |platform, data|
|
||
|
{
|
||
|
name: platform, human_readable_name: data[:human_readable_name],
|
||
|
architectures: parse_architectures(data[:download_locations])
|
||
|
}
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def runner_instructions
|
||
|
Gitlab::Ci::RunnerInstructions::OS.merge(Gitlab::Ci::RunnerInstructions::OTHER_ENVIRONMENTS)
|
||
|
end
|
||
|
|
||
|
def parse_architectures(download_locations)
|
||
|
download_locations&.map do |architecture, download_location|
|
||
|
{ name: architecture, download_location: download_location }
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|