diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index c2a4705e5..f341d7de8 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -31,6 +31,55 @@ jobs: steps: - name: Check out repo uses: actions/checkout@v4 + - name: Install enroot + run: | + version="3.5.0" + + # Install only required dependencies (curl, pigz, zstd are likely already installed) + sudo dnf install -y jq squashfs-tools parallel + + # Download pre-built packages + curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot-${version}-1.el8.x86_64.rpm + curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot+caps-${version}-1.el8.x86_64.rpm + + # Install packages + sudo rpm -ivh enroot-${version}-1.el8.x86_64.rpm enroot+caps-${version}-1.el8.x86_64.rpm + + rm -f enroot*.rpm + + # Create user-writable directories for enroot + mkdir -p ${HOME}/.local/share/enroot/{runtime,cache,data,temp} + + # Create a system-wide config for enroot (since GITHUB_ENV doesn't work for spawned processes) + sudo mkdir -p /etc/enroot + sudo tee /etc/enroot/enroot.conf > /dev/null <> $GITHUB_ENV + echo "ENROOT_CACHE_PATH=${HOME}/.local/share/enroot/cache" >> $GITHUB_ENV + echo "ENROOT_DATA_PATH=${HOME}/.local/share/enroot/data" >> $GITHUB_ENV + echo "ENROOT_TEMP_PATH=${HOME}/.local/share/enroot/temp" >> $GITHUB_ENV + - name: Test enroot installation + run: | + # Verify enroot is installed and check version + enroot version + + # Test importing a simple image + enroot import -o /tmp/test_alpine.sqsh docker://alpine:latest + ls -lh /tmp/test_alpine.sqsh + + # Create and test container + enroot create --name test_alpine /tmp/test_alpine.sqsh + enroot start test_alpine echo "Hello from enroot!" + enroot remove -f test_alpine + rm -f /tmp/test_alpine.sqsh + + echo "Enroot test successful!" - name: Setup conda env uses: conda-incubator/setup-miniconda@v2 with: diff --git a/tests/unit_tests/test_coder.py b/tests/unit_tests/test_coder.py index 7acaeef2c..3288ae533 100644 --- a/tests/unit_tests/test_coder.py +++ b/tests/unit_tests/test_coder.py @@ -8,7 +8,6 @@ Unit tests for forge.actors.coder.SandboxedPythonCoder. """ import os -import tempfile import uuid from contextlib import asynccontextmanager from unittest.mock import Mock, patch @@ -31,8 +30,7 @@ async def create_mock_coder( unique_id = str(uuid.uuid4())[:8] container_name = f"test_sandbox_{unique_id}" - with tempfile.NamedTemporaryFile(suffix=".sqsh", delete=False) as temp_image: - image_path = temp_image.name + image_path = f"/tmp/test_mock_image_{unique_id}.sqsh" coder = None try: