From 0e27bc3f9e23c20ad1e2f0b7399be165710dc5e6 Mon Sep 17 00:00:00 2001 From: Noa Aarts Date: Sat, 30 Nov 2024 08:58:30 +0100 Subject: [PATCH 1/3] github/workflows/eval: add markdown of added, removed and changed --- .github/workflows/eval.yml | 2 +- ci/eval/default.nix | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml index 90be4670e414..a4435345f4cd 100644 --- a/.github/workflows/eval.yml +++ b/.github/workflows/eval.yml @@ -210,7 +210,7 @@ jobs: --arg beforeResultDir ./baseResult \ --arg afterResultDir ./prResult \ -o comparison - + cat comparison/step-summary.md >> "$GITHUB_STEP_SUMMARY" # TODO: Request reviews from maintainers for packages whose files are modified in the PR - name: Upload the combined results diff --git a/ci/eval/default.nix b/ci/eval/default.nix index efd8d6637a2d..775b259bfa87 100644 --- a/ci/eval/default.nix +++ b/ci/eval/default.nix @@ -261,6 +261,11 @@ let --slurpfile after ${afterResultDir}/outpaths.json \ > $out/changed-paths.json + jq -r ' + "## Added\n" + (.attrdiff.added | map("- \(. )") | join("\n")) + "\n" + + "## Removed\n" + (.attrdiff.removed | map("- \(. )") | join("\n")) + "\n" + + "## Changed\n" + (.attrdiff.changed | map("- \(. )") | join("\n")) + "\n" + ' < $out/changed-paths.json > $out/step-summary.md # TODO: Compare eval stats ''; From 8b7ed6e105f377e01f5da3c3a022b65d3b03a023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 1 Dec 2024 07:15:22 +0100 Subject: [PATCH 2/3] github/workflows/eval: limit number of packages in markdown --- ci/eval/default.nix | 6 +----- ci/eval/generate-step-summary.jq | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 5 deletions(-) create mode 100644 ci/eval/generate-step-summary.jq diff --git a/ci/eval/default.nix b/ci/eval/default.nix index 775b259bfa87..ef107d4ce517 100644 --- a/ci/eval/default.nix +++ b/ci/eval/default.nix @@ -261,11 +261,7 @@ let --slurpfile after ${afterResultDir}/outpaths.json \ > $out/changed-paths.json - jq -r ' - "## Added\n" + (.attrdiff.added | map("- \(. )") | join("\n")) + "\n" + - "## Removed\n" + (.attrdiff.removed | map("- \(. )") | join("\n")) + "\n" + - "## Changed\n" + (.attrdiff.changed | map("- \(. )") | join("\n")) + "\n" - ' < $out/changed-paths.json > $out/step-summary.md + jq -r -f ${./generate-step-summary.jq} < $out/changed-paths.json > $out/step-summary.md # TODO: Compare eval stats ''; diff --git a/ci/eval/generate-step-summary.jq b/ci/eval/generate-step-summary.jq new file mode 100644 index 000000000000..f76ea15e365f --- /dev/null +++ b/ci/eval/generate-step-summary.jq @@ -0,0 +1,14 @@ +def truncate(xs; n): + if xs | length > n then xs[:n] + ["..."] + else xs + end; + +def itemize_packages(xs): + truncate(xs; 3000) | map("- \(. )") | join("\n"); + +def section(title; xs): + "## " + title + " (" + (xs | length | tostring) + ")\n" + itemize_packages(xs); + +section("Added"; .attrdiff.added) + "\n\n" + +section("Removed"; .attrdiff.removed) + "\n\n" + +section("Changed"; .attrdiff.changed) From 006691de3c82d0a0701f66242afc674ba3d9a89b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sun, 1 Dec 2024 11:58:30 +0100 Subject: [PATCH 3/3] github/workflows/eval: add nixos package search links and wrap sections in a summary list --- ci/eval/generate-step-summary.jq | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ci/eval/generate-step-summary.jq b/ci/eval/generate-step-summary.jq index f76ea15e365f..28597eaec371 100644 --- a/ci/eval/generate-step-summary.jq +++ b/ci/eval/generate-step-summary.jq @@ -4,11 +4,12 @@ def truncate(xs; n): end; def itemize_packages(xs): - truncate(xs; 3000) | map("- \(. )") | join("\n"); + # 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"); def section(title; xs): - "## " + title + " (" + (xs | length | tostring) + ")\n" + itemize_packages(xs); + "
" + title + " (" + (xs | length | tostring) + ")\n\n" + itemize_packages(xs) + "
"; -section("Added"; .attrdiff.added) + "\n\n" + -section("Removed"; .attrdiff.removed) + "\n\n" + -section("Changed"; .attrdiff.changed) +section("Added packages"; .attrdiff.added) + "\n\n" + +section("Removed packages"; .attrdiff.removed) + "\n\n" + +section("Changed packages"; .attrdiff.changed)