46 lines
905 B
Ruby
Executable File
46 lines
905 B
Ruby
Executable File
# frozen_string_literal: true
|
|
|
|
require "tap"
|
|
require "utils/github"
|
|
|
|
require_relative "ci_matrix"
|
|
|
|
pr_url, = ARGV
|
|
|
|
labels = if pr_url
|
|
pr = GitHub.open_api(pr_url)
|
|
pr.fetch("labels").map { |l| l.fetch("name") }
|
|
else
|
|
[]
|
|
end
|
|
|
|
tap = Tap.from_path(Dir.pwd)
|
|
|
|
runner = CiMatrix.random_runner[:name]
|
|
syntax_job = {
|
|
name: "syntax",
|
|
tap: tap.name,
|
|
runner: runner,
|
|
}
|
|
|
|
matrix = [syntax_job]
|
|
|
|
unless labels.include?("ci-syntax-only")
|
|
cask_jobs = CiMatrix.generate(tap, labels: labels)
|
|
|
|
if cask_jobs.any?
|
|
# If casks were changed, skip `audit` for whole tap.
|
|
syntax_job[:skip_audit] = true
|
|
|
|
# The syntax job only runs `style` at this point, which should work on Linux.
|
|
syntax_job[:runner] = "ubuntu-latest"
|
|
end
|
|
|
|
matrix += cask_jobs
|
|
end
|
|
|
|
syntax_job[:name] += " (#{syntax_job[:runner]})"
|
|
|
|
puts JSON.pretty_generate(matrix)
|
|
puts "::set-output name=matrix::#{JSON.generate(matrix)}"
|