Skip to content

Commit de661d6

Browse files
committed
fix(build): add 7zz binary download to quality-check step
- Add official 7zz binary download step before running pytest in quality-check job - Use same download methodology as CI workflow for consistency - Set PY7ZZ_BINARY environment variable for test execution - Add binary verification to ensure proper installation This resolves pytest failures in build workflow quality-check step due to missing 7zz binary dependency.
1 parent a1870f4 commit de661d6

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

.github/workflows/build.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,41 @@ jobs:
3131
uv sync --dev
3232
uv pip install -e .
3333
34+
- name: Download 7zz binary for testing
35+
run: |
36+
# Download official 7zz binary (same as build workflow)
37+
VERSION="25.00"
38+
VERSION_FOR_ASSET=$(echo "$VERSION" | sed 's/\.//g') # 25.00 -> 2500
39+
ASSET_NAME="7z${VERSION_FOR_ASSET}-linux-x64.tar.xz"
40+
DOWNLOAD_URL="https://github.com/ip7z/7zip/releases/download/${VERSION}/${ASSET_NAME}"
41+
42+
echo "Downloading 7zz from: $DOWNLOAD_URL"
43+
TEMP_DIR=$(mktemp -d)
44+
curl -L -o "${TEMP_DIR}/${ASSET_NAME}" "$DOWNLOAD_URL"
45+
cd "${TEMP_DIR}"
46+
tar -xf "${ASSET_NAME}"
47+
48+
# Find and install the 7zz binary
49+
BINARY_PATH=$(find . -name "7zz" -type f | head -1)
50+
if [ -n "$BINARY_PATH" ]; then
51+
sudo cp "$BINARY_PATH" /usr/local/bin/7zz
52+
sudo chmod +x /usr/local/bin/7zz
53+
echo "7zz binary installed successfully"
54+
55+
# Set environment variable for tests
56+
echo "PY7ZZ_BINARY=/usr/local/bin/7zz" >> $GITHUB_ENV
57+
58+
# Verify installation
59+
/usr/local/bin/7zz --help > /dev/null && echo "7zz verification passed" || exit 1
60+
else
61+
echo "Error: 7zz binary not found in downloaded package"
62+
exit 1
63+
fi
64+
65+
# Clean up
66+
cd "$GITHUB_WORKSPACE"
67+
rm -rf "${TEMP_DIR}"
68+
3469
- name: Run quality checks
3570
run: |
3671
uv run ruff check . --output-format=github

0 commit comments

Comments
 (0)