From d52066e2b12d0f5470f6b35e7a1961846bde4e5c Mon Sep 17 00:00:00 2001 From: Winter Date: Thu, 15 May 2025 17:24:53 -0400 Subject: [PATCH] ci/eval/compare: manage the "by: package-maintainer" label While OfBorg is still adding these, it takes a much longer time to do so compared to the eval action. Since we're adding rebuild labels, I think it'd be nice to just do it within the eval action. --- .github/workflows/eval.yml | 7 +++++-- ci/eval/compare/default.nix | 11 ++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml index ce9378e62320..994bb4bbf8cf 100644 --- a/.github/workflows/eval.yml +++ b/.github/workflows/eval.yml @@ -154,9 +154,12 @@ jobs: --arg beforeResultDir ./targetResult \ --arg afterResultDir "$(realpath prResult)" \ --arg touchedFilesJson ./touched-files.json \ + --arg githubAuthorId "$AUTHOR_ID" \ -o comparison cat comparison/step-summary.md >> "$GITHUB_STEP_SUMMARY" + env: + AUTHOR_ID: ${{ github.event.pull_request.user.id }} - name: Upload the combined results if: steps.targetRunId.outputs.targetRunId @@ -211,10 +214,10 @@ jobs: - name: Labelling pull request if: ${{ github.event_name == 'pull_request_target' && github.repository_owner == 'NixOS' }} run: | - # Get all currently set rebuild labels + # Get all currently set labels that we manage gh api \ /repos/"$REPOSITORY"/issues/"$NUMBER"/labels \ - --jq '.[].name | select(startswith("10.rebuild"))' \ + --jq '.[].name | select(startswith("10.rebuild") or . == "11.by: package-maintainer")' \ | sort > before # And the labels that should be there diff --git a/ci/eval/compare/default.nix b/ci/eval/compare/default.nix index 7b677c6d01f3..267cab8c0986 100644 --- a/ci/eval/compare/default.nix +++ b/ci/eval/compare/default.nix @@ -10,6 +10,7 @@ beforeResultDir, afterResultDir, touchedFilesJson, + githubAuthorId, byName ? false, }: let @@ -114,7 +115,15 @@ let # Adds "10.rebuild-*-stdenv" label if the "stdenv" attribute was changed ++ lib.mapAttrsToList (kernel: _: "10.rebuild-${kernel}-stdenv") ( lib.filterAttrs (_: kernelRebuilds: kernelRebuilds ? "stdenv") rebuildsByKernel - ); + ) + # Adds the "11.by: package-maintainer" label if all of the packages directly + # changed are maintained by the PR's author. (https://github.com/NixOS/ofborg/blob/df400f44502d4a4a80fa283d33f2e55a4e43ee90/ofborg/src/tagger.rs#L83-L88) + ++ lib.optional ( + maintainers ? ${githubAuthorId} + && lib.all (lib.flip lib.elem maintainers.${githubAuthorId}) ( + lib.flatten (lib.attrValues maintainers) + ) + ) "11.by: package-maintainer"; } );