Commit 44dc31e6 authored by Jörg Thalheim's avatar Jörg Thalheim
Browse files

ci/eval/compare: truncate step summary to 1024k

parent f5a372cf
Loading
Loading
Loading
Loading
+21 −6
Original line number Diff line number Diff line
@@ -4,12 +4,27 @@ def truncate(xs; n):
  end;

def itemize_packages(xs):
  # we truncate the list to stay below the GitHub limit of 1MB per step summary.
  truncate(xs; 3000) | map("- [\(.)](https://search.nixos.org/packages?channel=unstable&show=\(.)&from=0&size=50&sort=relevance&type=packages&query=\(.))") | join("\n");
  truncate(xs; 2000) |
    map("- [\(.)](https://search.nixos.org/packages?channel=unstable&show=\(.)&from=0&size=50&sort=relevance&type=packages&query=\(.))")  |
    join("\n");

def get_title(s; xs):
  s + " (" + (xs | length | tostring) + ")";

def section(title; xs):
  "<details> <summary>" + title + " (" + (xs | length | tostring) + ")</summary>\n\n" + itemize_packages(xs) + "</details>";
  "<details> <summary>" + get_title(title; xs) + "</summary>\n\n" + itemize_packages(xs) + "</details>";

def fallback_document(content; n):
  if content | utf8bytelength > n then
    get_title("Added packages"; .attrdiff.added) + "\n\n" +
    get_title("Removed packages"; .attrdiff.removed) + "\n\n" +
    get_title("Changed packages"; .attrdiff.changed)
  else content
  end;

# we truncate the list to stay below the GitHub limit of 1MB per step summary.
fallback_document(
  section("Added packages"; .attrdiff.added) + "\n\n" +
  section("Removed packages"; .attrdiff.removed) + "\n\n" +
section("Changed packages"; .attrdiff.changed)
  section("Changed packages"; .attrdiff.changed); 1000 * 1000
)