Loading ci/eval/compare/generate-step-summary.jq +21 −6 Original line number Diff line number Diff line Loading @@ -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 ) Loading
ci/eval/compare/generate-step-summary.jq +21 −6 Original line number Diff line number Diff line Loading @@ -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 )