fix(workflow): correct PDF compression script paths

- Fix relative path from quarto/_build/pdf to ../../publish/compress_pdf.py
- Update both Linux and Windows PDF compression steps
- Add debug output to verify script location
- Matches EPUB compression path fix pattern
- Resolves 'No such file or directory' errors in PDF builds
This commit is contained in:
Vijay Janapa Reddi
2025-08-21 23:04:31 -04:00
parent 6bf4e78c9b
commit dcba8d7c08

View File

@@ -269,11 +269,29 @@ jobs:
run: |
if [ -f "Machine-Learning-Systems.pdf" ]; then
echo "📉 Compressing PDF with professional compression tool..."
python3 ${{ github.workspace }}/quarto/publish/compress_pdf.py \
--input "Machine-Learning-Systems.pdf" \
--output "compressed.pdf" \
--quality minimal \
--verbose
echo "🔍 DEBUG: PWD=$(pwd)"
echo "🔍 DEBUG: Checking for compress script:"
ls -la ../../publish/compress_pdf.py || echo "❌ Script not found at ../../publish/"
# Use relative path from current working directory (quarto/_build/pdf)
SCRIPT_PATH="../../publish/compress_pdf.py"
if [ -f "$SCRIPT_PATH" ]; then
echo "✅ Using script at: $SCRIPT_PATH"
python3 "$SCRIPT_PATH" \
--input "Machine-Learning-Systems.pdf" \
--output "compressed.pdf" \
--quality minimal \
--verbose
else
# Fallback to absolute path via github.workspace
SCRIPT_PATH="${{ github.workspace }}/quarto/publish/compress_pdf.py"
echo "🔄 Trying fallback path: $SCRIPT_PATH"
python3 "$SCRIPT_PATH" \
--input "Machine-Learning-Systems.pdf" \
--output "compressed.pdf" \
--quality minimal \
--verbose
fi
mv compressed.pdf Machine-Learning-Systems.pdf
echo "✅ PDF compression completed"
else
@@ -288,7 +306,16 @@ jobs:
docker run --rm -v "$($PWD.Path):C:\workspace" -w "C:\workspace\quarto\${{ matrix.output_dir }}" ${{ env.CONTAINER_IMAGE }} powershell -Command "
if (Test-Path 'Machine-Learning-Systems.pdf') {
Write-Host '📉 Compressing PDF with professional compression tool...'
python C:\workspace\quarto\publish\compress_pdf.py --input 'Machine-Learning-Systems.pdf' --output 'compressed.pdf' --quality minimal --verbose
Write-Host '🔍 DEBUG: Current directory:'
Get-Location
Write-Host '🔍 DEBUG: Checking for script at relative path:'
if (Test-Path '..\..\publish\compress_pdf.py') {
Write-Host '✅ Found script at ..\..\publish\compress_pdf.py'
python ..\..\publish\compress_pdf.py --input 'Machine-Learning-Systems.pdf' --output 'compressed.pdf' --quality minimal --verbose
} else {
Write-Host '🔄 Trying fallback path: C:\workspace\quarto\publish\compress_pdf.py'
python C:\workspace\quarto\publish\compress_pdf.py --input 'Machine-Learning-Systems.pdf' --output 'compressed.pdf' --quality minimal --verbose
}
if (Test-Path 'compressed.pdf') {
Move-Item -Force 'compressed.pdf' 'Machine-Learning-Systems.pdf'
Write-Host '✅ PDF compression completed'