Project: brw-reporter

Build now

Configuration

sparrowdo:
  no_sudo: true
  no_index_update: false
  bootstrap: false
  format: default
  repo: https://sparrowhub.io/repo
disabled: false
keep_builds: 1000
allow_manual_run: true

vars:
  -
        name: action
        type: select
        values: [ "list" ]
        group: [ list ]
  -
        name: action
        type: select
        values: [ "compare" ]
        group: [ compare ]
  -
        name: action
        type: select
        values: [ "failed" ]
        group: [ failed ]
  -
        name: only-with-failed-tests
        default: false
        type: checkbox
        group: [ failed ]

  -
        name: new
        values: [ "head", "2025.11", "2025.10", "2025.08", "2025.06.1", "2025.06", "2025.05", "2025.04" ]
        type: select
        default: "2025.11"
        group: [ compare ]

  -
        name: version
        values: [ "head", "2025.11", "2025.10", "2025.08", "2025.06.1", "2025.06", "2025.05", "2025.04" ]
        type: select
        default: "2025.11"
        group: [ failed ]

  -
        name: old
        values: [ "head", "2025.11", "2025.10", "2025.08", "2025.06.1", "2025.06", "2025.05", "2025.04" ]
        type: select
        default: "2025.10"
        group: [ compare ]

  

group_vars:
  - list
  - compare
  - failed

Job

use Sparky::JobApi;
use URI::Encode;

my $action = tags()<action>;

my %rel-to-sha = %(
  "2025.11"   => "fe0e20c28859ea709eefad19af452c9d35dff20d",
  "2025.10"   => "3f8de27bcb2ee987a2997de8fe314c460b7e53f9",
  "2025.08"   => "0310b2a586e6a80d2cced05675abe76a1ba73e02",
  "2025.06.1" => "cf048a948a850ec7e5923021fe9fc9112056199d",
  "2025.06" => "bc4329b15b5085387189864452cd062222bdfbea",
  "2025.05" => "c8ffd6dbdd63f6cf90d4832204e0a0d26217bc3e",
  "2025.04" => "57778e432003df466d8c797070345b81cb1ffdbf",
  "head"    => "63bc8b839300eff9f13bac2cae62bd108207b510",
);

if $action eq "list" {

  task-run "list", "brownie-report", %(
    :$action,
  );

} elsif $action eq "compare" {

  say "new: {tags()<new>} | old: {tags()<old>}";
  say "=======================================";
  
  my $new = %rel-to-sha{tags()<new>};

  my $old = %rel-to-sha{tags()<old>};

  my $s = task-run "report", "brownie-report", %(
    :$action,
    :$new,
    :$old,
    :fail-only,
  );

  my $me = Sparky::JobApi.new(:mine);

  my @m;

  for $s<list><> -> $m {
    my $module = $m<module>;
    "report.txt".IO.spurt($m<report>);
    $me.put-file("report.txt","{uri_encode_component($module)}.log");
    push @m, $module;
  }

  say "module list to copy/paste to orchestrator to rerun:";

  say @m.join(",");

} elsif $action eq "failed" {

  my $fail-only = tags()<only-with-failed-tests> || False;

  say "rakudo: {tags()<version>}";
  say "modules failed";
  say "only-with-failed-tests: {$fail-only}";
  say "=======================================";
  
  my $version = %rel-to-sha{tags()<version>};

  my $s = task-run "report", "brownie-report", %(
    :$action,
    :$version,
    :$fail-only,
  );

  my $me = Sparky::JobApi.new(:mine);
  
  my @m; 
  for $s<list><> -> $m {
    my $module = $m<module>;
    "report.txt".IO.spurt($m<report>);
    $me.put-file("report.txt","{uri_encode_component($module)}.log");
    push @m, $module;
  }

  say "module list to copy/paste to orchestrator to rerun:";

  say @m.join(",");


} else {

  die "unsupported action: $action"

}