diff --git a/eval_protocol/evaluation.py b/eval_protocol/evaluation.py index 9c84d34e..128038bf 100644 --- a/eval_protocol/evaluation.py +++ b/eval_protocol/evaluation.py @@ -33,7 +33,7 @@ def __init__( @staticmethod def _parse_ignore_file(ignore_path: str) -> List[str]: - """Parse .gitignore or .dockerignore and return patterns.""" + """Parse .gitignore and return patterns.""" patterns = [] if not os.path.exists(ignore_path): return patterns @@ -128,8 +128,7 @@ def _create_tar_gz_with_ignores(output_path: str, source_dir: str) -> int: source_path = Path(source_dir) gitignore_patterns = Evaluator._parse_ignore_file(str(source_path / ".gitignore")) - dockerignore_patterns = Evaluator._parse_ignore_file(str(source_path / ".dockerignore")) - all_ignore_patterns = gitignore_patterns + dockerignore_patterns + all_ignore_patterns = gitignore_patterns logger.info(f"Creating tar.gz with {len(all_ignore_patterns)} ignore patterns") diff --git a/tests/test_ep_upload_e2e.py b/tests/test_ep_upload_e2e.py index 56de5fea..8a67fd33 100644 --- a/tests/test_ep_upload_e2e.py +++ b/tests/test_ep_upload_e2e.py @@ -13,6 +13,7 @@ import os import shutil import sys +import tarfile import tempfile from pathlib import Path from unittest.mock import MagicMock, patch @@ -566,6 +567,38 @@ async def test_math_correctness(row: EvaluationRow) -> EvaluationRow: shutil.rmtree(test_project_dir, ignore_errors=True) +def test_create_tar_includes_dockerignored_files(tmp_path): + from eval_protocol.evaluation import Evaluator + + project_dir = tmp_path / "project" + project_dir.mkdir() + (project_dir / "requirements.txt").write_text("") + (project_dir / "Dockerfile").write_text("FROM python:3.11\n") + (project_dir / ".dockerignore").write_text("Dockerfile\nignored_dir/\n") + + ignored_dir = project_dir / "ignored_dir" + ignored_dir.mkdir() + (ignored_dir / "data.txt").write_text("package me\n") + + tar_path = tmp_path / "archive.tar.gz" + archive_size = Evaluator._create_tar_gz_with_ignores(str(tar_path), str(project_dir)) + + assert archive_size > 0 + with tarfile.open(tar_path, "r:gz") as tar: + names = tar.getnames() + + project_prefix = project_dir.name + expected_paths = [ + f"{project_prefix}/Dockerfile", + f"{project_prefix}/.dockerignore", + f"{project_prefix}/ignored_dir/data.txt", + f"{project_prefix}/requirements.txt", + ] + + for expected_path in expected_paths: + assert expected_path in names, f"Expected {expected_path} in archive" + + def test_ep_upload_force_flag_triggers_delete_flow( mock_env_variables, mock_gcs_upload,