Skip to content

Commit 4e22292

Browse files
Merge pull request #7 from flofriday/add-repo-cleaning
Fix consecutive build failures
2 parents 5eb115f + 1987a69 commit 4e22292

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

.github/workflows/integration.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,10 @@ jobs:
7474

7575
- name: Verify JIT build works
7676
# Use commit that I know has JIT support with LLVM 20
77-
run: uv run every-python run 42d014086098d3d70cacb4d8993f04cace120c12 --jit -- --version
77+
run: uv run every-python run 42d014086098d3d70cacb4d8993f04cace120c12 --jit -- --version
78+
79+
- name: Verify consecutive builds work
80+
# Use two versions that can only be built if repo cleanup between works
81+
run: |
82+
uv run every-python install v3.12.0
83+
uv run every-python install v3.11.0

every_python/main.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,33 @@ def _get_configure_args(build_dir: Path, enable_jit: bool) -> list[str]:
135135
return args
136136

137137

138+
def _run_clean_repo(
139+
runner: CommandRunner,
140+
verbose: bool,
141+
progress: Progress,
142+
task: TaskID,
143+
) -> None:
144+
"""Run the clean repo step."""
145+
output = get_output()
146+
args = ["clean", "-fdx"]
147+
148+
if verbose:
149+
progress.stop()
150+
output.status(f"Running: git {' '.join(args)}")
151+
else:
152+
progress.update(task, description="Cleaning repo...")
153+
154+
result = runner.run_git(args, repo_dir=REPO_DIR)
155+
156+
if not result.success:
157+
if not verbose:
158+
progress.stop()
159+
output.error(f"Cleaning repo failed: {result.stderr}")
160+
else:
161+
output.error("Cleaning repo failed!")
162+
raise typer.Exit(1)
163+
164+
138165
def _run_configure(
139166
runner: CommandRunner,
140167
build_dir: Path,
@@ -267,6 +294,9 @@ def build_python(commit: str, enable_jit: bool = False, verbose: bool = False) -
267294
output.error(f"Failed to checkout {commit}: {result.stderr}")
268295
raise typer.Exit(1)
269296

297+
# Clean repo
298+
_run_clean_repo(runner, verbose, progress, task)
299+
270300
# Configure
271301
_run_configure(runner, build_dir, enable_jit, verbose, progress, task)
272302

@@ -531,7 +561,7 @@ def bisect(
531561

532562
# Reset any local changes in the repo
533563
runner.run_git(["reset", "--hard"], REPO_DIR)
534-
runner.run_git(["clean", "-fd"], REPO_DIR)
564+
runner.run_git(["clean", "-fdx"], REPO_DIR)
535565

536566
runner.run_git(["bisect", "start"], REPO_DIR, check=True)
537567
runner.run_git(["bisect", "bad", bad_commit], REPO_DIR, check=True)

0 commit comments

Comments
 (0)