Test alpha8 commit candidates before publication
Some checks failed
Candidate compatibility / prepare (push) Failing after 32s
Candidate compatibility / fixture-contract (push) Has been skipped
Candidate compatibility / lockstep clients Ruby 3.2 (push) Has been skipped
Candidate compatibility / lockstep clients Ruby 3.3 (push) Has been skipped
Candidate compatibility / lockstep clients Ruby 3.4 (push) Has been skipped
Candidate compatibility / lockstep clients Ruby 4.0 (push) Has been skipped
Candidate compatibility / image ${{ matrix.id }} (push) Has been skipped
Candidate compatibility / repository (push) Successful in 37s
Watch upstream OpenCode / open-compatibility-pr (push) Failing after 11s
Some checks failed
Candidate compatibility / prepare (push) Failing after 32s
Candidate compatibility / fixture-contract (push) Has been skipped
Candidate compatibility / lockstep clients Ruby 3.2 (push) Has been skipped
Candidate compatibility / lockstep clients Ruby 3.3 (push) Has been skipped
Candidate compatibility / lockstep clients Ruby 3.4 (push) Has been skipped
Candidate compatibility / lockstep clients Ruby 4.0 (push) Has been skipped
Candidate compatibility / image ${{ matrix.id }} (push) Has been skipped
Candidate compatibility / repository (push) Successful in 37s
Watch upstream OpenCode / open-compatibility-pr (push) Failing after 11s
This commit is contained in:
9
scripts/client_candidate_outputs.rb
Normal file
9
scripts/client_candidate_outputs.rb
Normal file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative "../lib/opencode_compat/client_candidate"
|
||||
|
||||
root = File.expand_path("..", __dir__)
|
||||
path = ARGV.fetch(0, File.join(root, "manifests/client-candidate.json"))
|
||||
candidate = OpenCodeCompat::ClientCandidate.load(path)
|
||||
candidate.github_outputs.each { |key, value| puts "#{key}=#{value}" }
|
||||
@@ -1,9 +1,27 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "json"
|
||||
require_relative "../lib/opencode_compat/client_candidate"
|
||||
|
||||
root = File.expand_path("..", __dir__)
|
||||
manifest = JSON.parse(File.read(File.join(root, "manifests/image-matrix.json")))
|
||||
candidate = OpenCodeCompat::ClientCandidate.load(File.join(root, "manifests/client-candidate.json"))
|
||||
candidate.verify!
|
||||
clients = candidate.document.fetch("clients")
|
||||
expected_candidate = {
|
||||
"release_train" => candidate.document.fetch("release_train"),
|
||||
"publication_state" => candidate.document.fetch("publication_state"),
|
||||
"opencode_ruby_commit" => clients.dig("opencode-ruby", "ref"),
|
||||
"opencode_rails_commit" => clients.dig("opencode-rails", "ref")
|
||||
}
|
||||
matrix_candidate = manifest.fetch("client_candidate")
|
||||
unless expected_candidate.all? { |key, value| matrix_candidate[key] == value }
|
||||
abort "image matrix client_candidate must equal the exact client candidate"
|
||||
end
|
||||
unless %w[pending certified].include?(matrix_candidate.fetch("certification_status"))
|
||||
abort "image matrix client_candidate certification_status must be pending or certified"
|
||||
end
|
||||
|
||||
matrix = manifest.fetch("public_ci").map do |target|
|
||||
id = target.fetch("id")
|
||||
profiles = target.fetch("profiles")
|
||||
|
||||
Reference in New Issue
Block a user