Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions nixpkgs_review/cli/pr.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ def pr_command(args: argparse.Namespace) -> str:
Path,
# Attrs to build for each system
dict[System, list[Attr]],
# PR revision
str | None,
]
] = []

Expand Down Expand Up @@ -113,16 +115,24 @@ def pr_command(args: argparse.Namespace) -> str:
num_parallel_evals=args.num_parallel_evals,
show_header=not args.no_headers,
)
contexts.append((pr, builddir.path, review.build_pr(pr)))
contexts.append(
(pr, builddir.path, review.build_pr(pr), review.head_commit)
)
except NixpkgsReviewError as e:
warn(f"https://github.com/NixOS/nixpkgs/pull/{pr} failed to build: {e}")
assert review is not None

all_succeeded = all(
review.start_review(
attrs, path, pr, args.post_result, args.print_result, args.approve_pr
commit,
attrs,
path,
pr,
args.post_result,
args.print_result,
args.approve_pr,
)
for pr, path, attrs in contexts
for pr, path, attrs, commit in contexts
)

if args.no_shell:
Expand Down
4 changes: 4 additions & 0 deletions nixpkgs_review/report.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@ def to_file_uri(path: Path) -> str:
class Report:
def __init__(
self,
commit: str | None,
attrs_per_system: dict[str, list[Attr]],
extra_nixpkgs_config: str,
only_packages: set[str],
Expand All @@ -246,6 +247,7 @@ def __init__(
*,
checkout: Literal["merge", "commit"] = "merge",
) -> None:
self.commit = commit
self.show_header = show_header
self.max_workers = max_workers
self.attrs = attrs_per_system
Expand Down Expand Up @@ -325,6 +327,8 @@ def markdown(self, pr: int | None) -> str:
option_value
)
msg += f"Command: `{cmd}`\n"
if self.commit:
msg += f"Commit: `{self.commit}`\n"

for system, report in self.system_reports.items():
msg += "\n---\n"
Expand Down
5 changes: 5 additions & 0 deletions nixpkgs_review/review.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ def __init__(
self.extra_nixpkgs_config = extra_nixpkgs_config
self.num_parallel_evals = num_parallel_evals
self.show_header = show_header
self.head_commit: str | None = None

def _process_aliases_for_systems(self, system: str) -> set[str]:
match system:
Expand Down Expand Up @@ -314,6 +315,7 @@ def build(

def build_pr(self, pr_number: int) -> dict[System, list[Attr]]:
pr = self.github_client.pull_request(pr_number)
self.head_commit = pr["head"]["sha"]

packages_per_system: dict[System, set[str]] | None = None
if self.use_github_eval:
Expand Down Expand Up @@ -388,6 +390,7 @@ def build_pr(self, pr_number: int) -> dict[System, list[Attr]]:

def start_review(
self,
commit: str | None,
attrs_per_system: dict[System, list[Attr]],
path: Path,
pr: int | None = None,
Expand All @@ -400,6 +403,7 @@ def start_review(
if pr:
os.environ["PR"] = str(pr)
report = Report(
commit,
attrs_per_system,
self.extra_nixpkgs_config,
checkout=self.checkout.name.lower(), # type: ignore[arg-type]
Expand Down Expand Up @@ -455,6 +459,7 @@ def review_commit(
) -> None:
branch_rev = fetch_refs(self.remote, branch)[0]
self.start_review(
reviewed_commit,
self.build_commit(branch_rev, reviewed_commit, staged),
path,
print_result=print_result,
Expand Down