From c94e4851afdcf795a43a4a7737079d9d7bb77c87 Mon Sep 17 00:00:00 2001 From: andybrown668 Date: Thu, 9 Apr 2026 16:31:51 +0000 Subject: [PATCH 1/4] ci: install python3-pip before awscurl/tox on minimal runners Made-with: Cursor --- .github/workflows/ci.yml | 9 +++++++++ .github/workflows/e2e-s3tests.yml | 4 ++++ scripts/s3-tests/run.sh | 26 ++++++++++++++++++++++++++ 3 files changed, 39 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a3c50f2bbb..f4546140d8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -234,6 +234,15 @@ jobs: - name: Make binary executable run: chmod +x ./target/debug/rustfs + # Same as e2e-s3tests.yml: provision awscurl (admin API SigV4) and tox before run.sh. + # Minimal images may ship python3 without pip (No module named pip). + - name: Install Python tools + run: | + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip + python3 -m pip install --user --upgrade pip awscurl tox + echo "$HOME/.local/bin" >> "$GITHUB_PATH" + - name: Run implemented s3-tests run: | DEPLOY_MODE=binary \ diff --git a/.github/workflows/e2e-s3tests.yml b/.github/workflows/e2e-s3tests.yml index a2a8829ae5..df2638db49 100644 --- a/.github/workflows/e2e-s3tests.yml +++ b/.github/workflows/e2e-s3tests.yml @@ -78,6 +78,8 @@ jobs: - name: Install Python tools run: | + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip python3 -m pip install --user --upgrade pip awscurl tox echo "$HOME/.local/bin" >> "$GITHUB_PATH" @@ -240,6 +242,8 @@ jobs: - name: Install Python tools run: | + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip python3 -m pip install --user --upgrade pip awscurl tox echo "$HOME/.local/bin" >> "$GITHUB_PATH" diff --git a/scripts/s3-tests/run.sh b/scripts/s3-tests/run.sh index ced0ecbb62..4f4fd37035 100755 --- a/scripts/s3-tests/run.sh +++ b/scripts/s3-tests/run.sh @@ -723,6 +723,32 @@ install_python_package() { local package=$1 local error_output + # Debian/Ubuntu minimal images often have python3 but no pip (No module named pip). + if ! python3 -m pip --version >/dev/null 2>&1; then + if command -v apt-get >/dev/null 2>&1; then + log_warn "python3 has no pip; installing python3-pip via apt..." + if [ "$(id -u)" -eq 0 ]; then + apt-get update -qq + DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip || { + log_error "Failed to install python3-pip via apt-get" + return 1 + } + elif command -v sudo >/dev/null 2>&1; then + sudo apt-get update -qq + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip || { + log_error "Failed to install python3-pip via apt-get" + return 1 + } + else + log_error "python3 has no pip. Install python3-pip (or ensure pip) and retry." + return 1 + fi + else + log_error "python3 has no pip. Install pip (e.g. python3-pip on Debian/Ubuntu) and retry." + return 1 + fi + fi + # Try --user first (works on most Linux systems) error_output=$(python3 -m pip install --user --upgrade pip "${package}" 2>&1) if [ $? -eq 0 ]; then From 3dfb87e66d80df55a97fc57de08257b929870f81 Mon Sep 17 00:00:00 2001 From: andybrown668 Date: Thu, 9 Apr 2026 17:38:52 +0000 Subject: [PATCH 2/4] fix(ci): pin s3s-e2e to revision that builds with cargo install Made-with: Cursor --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f4546140d8..5a0989deb3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -200,7 +200,7 @@ jobs: with: tool: s3s-e2e git: https://github.com/s3s-project/s3s.git - rev: 4a04a670cf41274d9be9ab65dc36f4aa3f92fbad + rev: da276469212a6d57ac5a6bf831e6af41e0646785 - name: Run end-to-end tests run: | From 889e079e428c761d3512a21a0c4737c3671b69c5 Mon Sep 17 00:00:00 2001 From: andybrown668 Date: Tue, 14 Apr 2026 13:38:50 +0000 Subject: [PATCH 3/4] ci: use pip --break-system-packages for awscurl/tox on PEP 668 Made-with: Cursor --- .github/workflows/ci.yml | 4 +++- .github/workflows/e2e-s3tests.yml | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5a0989deb3..4ac620ebd1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -236,11 +236,13 @@ jobs: # Same as e2e-s3tests.yml: provision awscurl (admin API SigV4) and tox before run.sh. # Minimal images may ship python3 without pip (No module named pip). + # Ubuntu/Debian PEP 668 (externally-managed-environment) rejects plain --user installs; use + # --break-system-packages for CI-only user-site installs (same fallback as scripts/s3-tests/run.sh). - name: Install Python tools run: | sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip - python3 -m pip install --user --upgrade pip awscurl tox + python3 -m pip install --user --break-system-packages --upgrade pip awscurl tox echo "$HOME/.local/bin" >> "$GITHUB_PATH" - name: Run implemented s3-tests diff --git a/.github/workflows/e2e-s3tests.yml b/.github/workflows/e2e-s3tests.yml index df2638db49..213061ca16 100644 --- a/.github/workflows/e2e-s3tests.yml +++ b/.github/workflows/e2e-s3tests.yml @@ -80,7 +80,7 @@ jobs: run: | sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip - python3 -m pip install --user --upgrade pip awscurl tox + python3 -m pip install --user --break-system-packages --upgrade pip awscurl tox echo "$HOME/.local/bin" >> "$GITHUB_PATH" - name: Enable buildx @@ -244,7 +244,7 @@ jobs: run: | sudo apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get install -y python3-pip - python3 -m pip install --user --upgrade pip awscurl tox + python3 -m pip install --user --break-system-packages --upgrade pip awscurl tox echo "$HOME/.local/bin" >> "$GITHUB_PATH" - name: Enable buildx From 4a6b21a443eea6d03537fa8fca709835931ae1d1 Mon Sep 17 00:00:00 2001 From: andybrown668 Date: Tue, 14 Apr 2026 13:39:35 +0000 Subject: [PATCH 4/4] ci: install cmake toolchain for s3s-e2e on e2e runners Made-with: Cursor --- .github/workflows/ci.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4ac620ebd1..3f88715874 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -195,6 +195,16 @@ jobs: - name: Setup Rust toolchain for s3s-e2e installation uses: dtolnay/rust-toolchain@stable + # s3s-e2e depends on aws-lc-sys (CMake) and other native crates; minimal runners may omit these. + - name: Install build dependencies for s3s-e2e + run: | + sudo apt-get update + sudo DEBIAN_FRONTEND=noninteractive apt-get install -y \ + build-essential \ + cmake \ + pkg-config \ + libssl-dev + - name: Install s3s-e2e test tool uses: taiki-e/cache-cargo-install-action@v2 with: