class WarpEngine::AssetCoverage
Compares the assets of the releases in the catalog with what their platform expects, for the warp_engine:builds:check task: one Row per release (or per software without a release).
Constants
- Row
-
The coverage of one release: the
software, therelease(nilwhen the software has none), itsWarpEngine::Platform(nilwhen unknown), theexpected,optionalandpresentasset kinds, andci_kinds, the kinds theCIadapter builds for the platform (nilwhen it does not say).
Attributes
The filters given to #initialize.
The filters given to #initialize.
The filters given to #initialize.
Public Class Methods
# File app/services/warp_engine/asset_coverage.rb, line 57 def initialize(name: nil, platform: nil, releases: :latest) @name = name.presence @platform = platform.presence @releases = releases == :all ? :all : :latest end
- name
-
only the software of this name (blank for all)
- platform
-
only the softwares of this platform (blank for all)
- releases
-
:latest(default) checks the latest non-dev release of each software,:allevery release
Public Instance Methods
Source
# File app/services/warp_engine/asset_coverage.rb, line 76 def incomplete_rows = rows.select { |row| row.released? && !row.complete? }
The released rows that miss any kind (Row#complete? is false).
Source
# File app/services/warp_engine/asset_coverage.rb, line 73 def missing_rows = rows.select(&:actionable?)
The rows with a missing kind the CI could build (Row#actionable?).
Source
# File app/services/warp_engine/asset_coverage.rb, line 68 def rows @rows ||= scope.flat_map { |software| rows_for(software) } end
The Row of every selected release of the kept softwares matching the filters, by software name.
Source
# File app/services/warp_engine/asset_coverage.rb, line 82 def totals counted = rows.select(&:released?) { softwares: rows.map { |row| row.software.id }.uniq.size, releases: counted.size, expected: counted.sum { |row| row.expected.size }, present: counted.sum { |row| (row.expected & row.present).size }, missing: counted.sum { |row| row.buildable_missing.size }, manual_missing: counted.sum { |row| row.manual_missing.size }, unexpected: counted.sum { |row| row.unexpected.size }, incomplete_softwares: missing_rows.map { |row| row.software.id }.uniq.size, without_release: rows.count { |row| !row.released? }, unknown_platform: rows.count(&:unknown_platform?) } end
Returns a Hash of counts over rows: softwares, releases, expected, present, missing (buildable), manual_missing, unexpected, incomplete_softwares, without_release and unknown_platform. The asset counts cover released rows only.