diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index f304f684c..e0c1fda75 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -2,9 +2,9 @@ name: Pre-commit on: pull_request: - branches: [main, master] + branches: [main, master, "release/**"] push: - branches: [main, master] + branches: [main, master, "release/**"] jobs: pre-commit: diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 6cc1fd25c..9bcf79962 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,9 +2,9 @@ name: Tests on: pull_request: - branches: [main, master] + branches: [main, master, "release/**"] push: - branches: [main, master] + branches: [main, master, "release/**"] jobs: test: diff --git a/src/inference_endpoint/evaluation/livecodebench/lcb_serve.dockerfile b/src/inference_endpoint/evaluation/livecodebench/lcb_serve.dockerfile index 8105a6c21..83b1b79db 100644 --- a/src/inference_endpoint/evaluation/livecodebench/lcb_serve.dockerfile +++ b/src/inference_endpoint/evaluation/livecodebench/lcb_serve.dockerfile @@ -40,13 +40,18 @@ ENV PATH="/app/venv/bin:$PATH" WORKDIR /app -# enroot/pyxis (no-Docker SLURM clusters) start every container through -# `/bin/sh`; this distroless runtime has none, so the container fails with -# "enroot-switchroot: failed to execute: /bin/sh: No such file or directory". -# Add a static (musl) busybox as /bin/sh so the image also runs under pyxis; -# `docker run` is unaffected. COPY-only — there is no shell here to RUN with. -# busybox:*-musl is multi-arch, so the buildx --platform builds still resolve. +# enroot/pyxis starts containers through /bin/sh (switchroot); nv-sflow's srun +# operator wraps every task in `bash -c` (hardcoded in srun.py). This distroless +# runtime base has neither, so add a static busybox as /bin/sh, then create +# /bin/bash as a thin sh-wrapper via RUN (valid once /bin/sh exists above). +# busybox:*-musl is multi-arch so buildx --platform builds still resolve. +# NOTE: do NOT copy busybox as /bin/bash — busybox-musl omits the bash applet +# and fails with "bash: applet not found" when invoked under that name. COPY --from=busybox:1.37.0-musl /bin/busybox /bin/sh +COPY --chmod=755 <<'EOF' /bin/bash +#!/bin/sh +exec /bin/sh "$@" +EOF COPY --from=build-stage --chmod=0555 /app/venv /app/venv COPY --from=build-stage --chmod=0555 /opt/LiveCodeBench_Datasets /opt/LiveCodeBench_Datasets @@ -56,7 +61,7 @@ COPY generate.py /app/lib/generate.py COPY _server.py /app/server.py # Make lcb_serve.py available as a module -ENV PYTHONPATH="/app:${PYTHONPATH}" +ENV PYTHONPATH="/app" # Launch the WebSocket server with long-running connection support # Default port 13835