From 8d9ff4c94e69dca48612805c93481b95aee4e940 Mon Sep 17 00:00:00 2001 From: Allen Wang <9057208+allenwang28@users.noreply.github.com> Date: Fri, 17 Oct 2025 13:54:19 -0700 Subject: [PATCH 01/13] install enroot for gpu unit tests --- .github/workflows/gpu_test.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index c2a4705e5..04e78eecd 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -31,6 +31,13 @@ jobs: steps: - name: Check out repo uses: actions/checkout@v4 + - name: Install enroot + run: | + arch=$(dpkg --print-architecture) + curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v3.5.0/enroot_3.5.0-1_${arch}.deb + curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v3.5.0/enroot+caps_3.5.0-1_${arch}.deb + sudo apt-get install -y ./*.deb + rm -f enroot*.deb - name: Setup conda env uses: conda-incubator/setup-miniconda@v2 with: From 3b67809186e406c57adaecc779506b544fee0b16 Mon Sep 17 00:00:00 2001 From: Allen Wang <9057208+allenwang28@users.noreply.github.com> Date: Fri, 17 Oct 2025 14:27:49 -0700 Subject: [PATCH 02/13] v2 --- .github/workflows/gpu_test.yaml | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index 04e78eecd..3efec9569 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -33,11 +33,27 @@ jobs: uses: actions/checkout@v4 - name: Install enroot run: | - arch=$(dpkg --print-architecture) - curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v3.5.0/enroot_3.5.0-1_${arch}.deb - curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v3.5.0/enroot+caps_3.5.0-1_${arch}.deb - sudo apt-get install -y ./*.deb - rm -f enroot*.deb + arch=$(uname -m) + version="3.5.0" + + # Install dependencies + sudo yum install -y jq squashfs-tools parallel || sudo apt-get install -y jq squashfs-tools parallel || true + + # Download and install enroot + curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot-${version}-1.${arch}.rpm || \ + curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot_${version}-1_amd64.deb + + curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot+caps-${version}-1.${arch}.rpm || \ + curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot+caps_${version}-1_amd64.deb + + # Install based on available package manager + if command -v rpm &> /dev/null; then + sudo rpm -ivh enroot*.rpm + elif command -v dpkg &> /dev/null; then + sudo dpkg -i enroot*.deb + fi + + rm -f enroot* - name: Setup conda env uses: conda-incubator/setup-miniconda@v2 with: From 803c21e0c433729ce69570c65f3d8da5795c5280 Mon Sep 17 00:00:00 2001 From: Allen Wang <9057208+allenwang28@users.noreply.github.com> Date: Fri, 17 Oct 2025 14:42:50 -0700 Subject: [PATCH 03/13] another --- .github/workflows/gpu_test.yaml | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index 3efec9569..e51b8f9fc 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -33,27 +33,19 @@ jobs: uses: actions/checkout@v4 - name: Install enroot run: | - arch=$(uname -m) version="3.5.0" # Install dependencies - sudo yum install -y jq squashfs-tools parallel || sudo apt-get install -y jq squashfs-tools parallel || true + sudo yum install -y jq squashfs-tools parallel gcc make || sudo apt-get install -y jq squashfs-tools parallel gcc make || true - # Download and install enroot - curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot-${version}-1.${arch}.rpm || \ - curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot_${version}-1_amd64.deb - - curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot+caps-${version}-1.${arch}.rpm || \ - curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot+caps_${version}-1_amd64.deb - - # Install based on available package manager - if command -v rpm &> /dev/null; then - sudo rpm -ivh enroot*.rpm - elif command -v dpkg &> /dev/null; then - sudo dpkg -i enroot*.deb - fi - - rm -f enroot* + # Download and build enroot from source + curl -fSsL -o enroot-${version}.tar.gz https://github.com/NVIDIA/enroot/archive/refs/tags/v${version}.tar.gz + tar -xzf enroot-${version}.tar.gz + cd enroot-${version} + make + sudo make install + cd .. + rm -rf enroot-${version} enroot-${version}.tar.gz - name: Setup conda env uses: conda-incubator/setup-miniconda@v2 with: From 0d0dbb7665c4a0844dcfa4f1ef4228d2905c7743 Mon Sep 17 00:00:00 2001 From: Allen Wang <9057208+allenwang28@users.noreply.github.com> Date: Fri, 17 Oct 2025 15:00:24 -0700 Subject: [PATCH 04/13] try --- .github/workflows/gpu_test.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index e51b8f9fc..d2f9dd3ed 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -36,16 +36,16 @@ jobs: version="3.5.0" # Install dependencies - sudo yum install -y jq squashfs-tools parallel gcc make || sudo apt-get install -y jq squashfs-tools parallel gcc make || true + yum install -y jq squashfs-tools parallel || apt-get install -y jq squashfs-tools parallel || true - # Download and build enroot from source - curl -fSsL -o enroot-${version}.tar.gz https://github.com/NVIDIA/enroot/archive/refs/tags/v${version}.tar.gz - tar -xzf enroot-${version}.tar.gz - cd enroot-${version} - make - sudo make install - cd .. - rm -rf enroot-${version} enroot-${version}.tar.gz + # Download pre-built packages + curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot-${version}-1.x86_64.rpm + curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot+caps-${version}-1.x86_64.rpm + + # Install packages + rpm -ivh enroot-${version}-1.x86_64.rpm enroot+caps-${version}-1.x86_64.rpm + + rm -f enroot*.rpm - name: Setup conda env uses: conda-incubator/setup-miniconda@v2 with: From 8c862a9d5ff72f865e475a71390da22903399c48 Mon Sep 17 00:00:00 2001 From: Allen Wang <9057208+allenwang28@users.noreply.github.com> Date: Fri, 17 Oct 2025 15:13:09 -0700 Subject: [PATCH 05/13] anotha one --- .github/workflows/gpu_test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index d2f9dd3ed..9c1c389fd 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -36,7 +36,7 @@ jobs: version="3.5.0" # Install dependencies - yum install -y jq squashfs-tools parallel || apt-get install -y jq squashfs-tools parallel || true + 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.x86_64.rpm From c781e23322837f9ebc5178268abee515269e1a73 Mon Sep 17 00:00:00 2001 From: Allen Wang <9057208+allenwang28@users.noreply.github.com> Date: Fri, 17 Oct 2025 15:20:20 -0700 Subject: [PATCH 06/13] sudo --- .github/workflows/gpu_test.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index 9c1c389fd..8f09968ff 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -36,14 +36,14 @@ jobs: version="3.5.0" # Install dependencies - dnf install -y jq squashfs-tools parallel + 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.x86_64.rpm curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot+caps-${version}-1.x86_64.rpm # Install packages - rpm -ivh enroot-${version}-1.x86_64.rpm enroot+caps-${version}-1.x86_64.rpm + sudo rpm -ivh enroot-${version}-1.x86_64.rpm enroot+caps-${version}-1.x86_64.rpm rm -f enroot*.rpm - name: Setup conda env From 8e51e7daccbbce6850ab4b76ddd5cefc89939867 Mon Sep 17 00:00:00 2001 From: Allen Wang <9057208+allenwang28@users.noreply.github.com> Date: Fri, 17 Oct 2025 15:28:46 -0700 Subject: [PATCH 07/13] again --- .github/workflows/gpu_test.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index 8f09968ff..9b3164eb3 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -39,11 +39,11 @@ jobs: 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.x86_64.rpm - curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot+caps-${version}-1.x86_64.rpm + 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.x86_64.rpm enroot+caps-${version}-1.x86_64.rpm + sudo rpm -ivh enroot-${version}-1.el8.x86_64.rpm enroot+caps-${version}-1.el8.x86_64.rpm rm -f enroot*.rpm - name: Setup conda env From f8e4aef0dd7a57b670e931f72c492e77884107d7 Mon Sep 17 00:00:00 2001 From: Allen Wang <9057208+allenwang28@users.noreply.github.com> Date: Fri, 17 Oct 2025 16:34:35 -0700 Subject: [PATCH 08/13] perms --- .github/workflows/gpu_test.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index 9b3164eb3..2fe2d2bd4 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -46,6 +46,17 @@ jobs: sudo rpm -ivh enroot-${version}-1.el8.x86_64.rpm enroot+caps-${version}-1.el8.x86_64.rpm rm -f enroot*.rpm + + # Configure enroot to use user-writable directories + mkdir -p ${HOME}/.config/enroot + cat > ${HOME}/.config/enroot/enroot.conf < Date: Fri, 17 Oct 2025 16:45:25 -0700 Subject: [PATCH 09/13] perms? --- .github/workflows/gpu_test.yaml | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index 2fe2d2bd4..ad9be0018 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -47,16 +47,13 @@ jobs: rm -f enroot*.rpm - # Configure enroot to use user-writable directories - mkdir -p ${HOME}/.config/enroot - cat > ${HOME}/.config/enroot/enroot.conf <> $GITHUB_ENV + echo "ENROOT_CACHE_PATH=${HOME}/.local/share/enroot/cache" >> $GITHUB_ENV + echo "ENROOT_DATA_PATH=${HOME}/.local/share/enroot/data" >> $GITHUB_ENV - name: Setup conda env uses: conda-incubator/setup-miniconda@v2 with: From ddb7aec75f11db33066215608414c572f2f846f7 Mon Sep 17 00:00:00 2001 From: Allen Wang <9057208+allenwang28@users.noreply.github.com> Date: Fri, 17 Oct 2025 19:04:26 -0700 Subject: [PATCH 10/13] try again? --- .github/workflows/gpu_test.yaml | 35 ++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index ad9be0018..47e32f52a 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -36,7 +36,10 @@ jobs: version="3.5.0" # Install dependencies - sudo dnf install -y jq squashfs-tools parallel + # - jq, squashfs-tools, parallel: core enroot dependencies + # - fuse-overlayfs: for container filesystem operations + # - curl, pigz, zstd: for image import operations + sudo dnf install -y jq squashfs-tools parallel fuse-overlayfs curl pigz zstd # Download pre-built packages curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot-${version}-1.el8.x86_64.rpm @@ -48,12 +51,38 @@ jobs: rm -f enroot*.rpm # Create user-writable directories for enroot - mkdir -p ${HOME}/.local/share/enroot/{runtime,cache,data} + mkdir -p ${HOME}/.local/share/enroot/{runtime,cache,data,temp} - # Configure enroot via environment variables (these override defaults) + # 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: From f86cf4e9f8d581789b5d12ce1de2252f4424acb1 Mon Sep 17 00:00:00 2001 From: Allen Wang <9057208+allenwang28@users.noreply.github.com> Date: Fri, 17 Oct 2025 19:12:28 -0700 Subject: [PATCH 11/13] no fuseoverlay --- .github/workflows/gpu_test.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index 47e32f52a..8d2ef2679 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -37,9 +37,8 @@ jobs: # Install dependencies # - jq, squashfs-tools, parallel: core enroot dependencies - # - fuse-overlayfs: for container filesystem operations # - curl, pigz, zstd: for image import operations - sudo dnf install -y jq squashfs-tools parallel fuse-overlayfs curl pigz zstd + sudo dnf install -y jq squashfs-tools parallel curl pigz zstd # Download pre-built packages curl -fSsL -O https://github.com/NVIDIA/enroot/releases/download/v${version}/enroot-${version}-1.el8.x86_64.rpm From 13a0b22c8d53ab8e7a188381e6db6b1e7042a829 Mon Sep 17 00:00:00 2001 From: Allen Wang <9057208+allenwang28@users.noreply.github.com> Date: Fri, 17 Oct 2025 19:17:19 -0700 Subject: [PATCH 12/13] simplify packages --- .github/workflows/gpu_test.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/gpu_test.yaml b/.github/workflows/gpu_test.yaml index 8d2ef2679..f341d7de8 100644 --- a/.github/workflows/gpu_test.yaml +++ b/.github/workflows/gpu_test.yaml @@ -35,10 +35,8 @@ jobs: run: | version="3.5.0" - # Install dependencies - # - jq, squashfs-tools, parallel: core enroot dependencies - # - curl, pigz, zstd: for image import operations - sudo dnf install -y jq squashfs-tools parallel curl pigz zstd + # 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 From dc73c91628b0d679fa9efec47b4dc0b445f06b12 Mon Sep 17 00:00:00 2001 From: Allen Wang <9057208+allenwang28@users.noreply.github.com> Date: Fri, 17 Oct 2025 20:11:18 -0700 Subject: [PATCH 13/13] s --- tests/unit_tests/test_coder.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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: