Fix Package for Installer steps with safer glob handling
Some checks failed
CI Build / build-macos (push) Successful in 27s
Release / build-windows (push) Failing after 38s
Release / build-macos (push) Failing after 36s
CI Build / build-windows (push) Successful in 1m30s
CI Build / build-ubuntu (push) Has been cancelled
Release / build-linux (push) Failing after 3m31s
Release / deploy (push) Has been skipped

- Add debug output to diagnose build failures
- Handle empty directories gracefully with || true
- Add fallback for app.app -> XPlor.app rename on macOS
- Check for non-empty directories before glob copy

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
njohnson 2026-01-13 18:38:39 -05:00
parent 384070fad6
commit 679ff06a57

View File

@ -277,6 +277,13 @@ jobs:
- name: Package for Installer - name: Package for Installer
shell: bash shell: bash
run: | run: |
set -x # Debug: show commands
echo "=== Starting Package for Installer ==="
echo "Current directory: $(pwd)"
echo "Build directory contents:"
ls -la build/app/ || echo "build/app not found"
GUI_DATA="installer/packages/com.xplor.gui/data" GUI_DATA="installer/packages/com.xplor.gui/data"
CLI_DATA="installer/packages/com.xplor.cli/data" CLI_DATA="installer/packages/com.xplor.cli/data"
@ -285,22 +292,31 @@ jobs:
# Copy app bundle # Copy app bundle
if [ -d "build/app/XPlor.app" ]; then if [ -d "build/app/XPlor.app" ]; then
echo "Copying XPlor.app..."
cp -R "build/app/XPlor.app" "$GUI_DATA/" cp -R "build/app/XPlor.app" "$GUI_DATA/"
elif [ -d "build/app/app.app" ]; then
echo "Copying app.app as XPlor.app..."
cp -R "build/app/app.app" "$GUI_DATA/XPlor.app"
else
echo "WARNING: No app bundle found"
ls -la build/app/ || true
fi fi
# Copy CLI # Copy CLI
if [ -f "build/tools/cli/cli" ]; then if [ -f "build/tools/cli/cli" ]; then
cp "build/tools/cli/cli" "$CLI_DATA/cli/xplor-cli" cp "build/tools/cli/cli" "$CLI_DATA/cli/xplor-cli"
chmod +x "$CLI_DATA/cli/xplor-cli" chmod +x "$CLI_DATA/cli/xplor-cli"
else
echo "WARNING: CLI binary not found"
fi fi
# Package definitions # Package definitions (use find to avoid glob issues)
for def in cod volition deadrising asura fmod thqa wii; do for def in cod volition deadrising asura fmod thqa wii; do
DEF_DATA="installer/packages/com.xplor.definitions.$def/data" DEF_DATA="installer/packages/com.xplor.definitions.$def/data"
rm -rf "$DEF_DATA" rm -rf "$DEF_DATA"
mkdir -p "$DEF_DATA/definitions/$def" mkdir -p "$DEF_DATA/definitions/$def"
if [ -d "definitions/$def" ]; then if [ -d "definitions/$def" ] && [ "$(ls -A definitions/$def 2>/dev/null)" ]; then
cp -R "definitions/$def/"* "$DEF_DATA/definitions/$def/" cp -R "definitions/$def/"* "$DEF_DATA/definitions/$def/" || true
fi fi
done done
@ -308,14 +324,18 @@ jobs:
DOCS_DATA="installer/packages/com.xplor.docs/data" DOCS_DATA="installer/packages/com.xplor.docs/data"
rm -rf "$DOCS_DATA" rm -rf "$DOCS_DATA"
mkdir -p "$DOCS_DATA/docs" mkdir -p "$DOCS_DATA/docs"
[ -f "docs/xscript-guide.pdf" ] && cp "docs/xscript-guide.pdf" "$DOCS_DATA/docs/" [ -f "docs/xscript-guide.pdf" ] && cp "docs/xscript-guide.pdf" "$DOCS_DATA/docs/" || true
[ -f "docs/xscript-guide.md" ] && cp "docs/xscript-guide.md" "$DOCS_DATA/docs/" [ -f "docs/xscript-guide.md" ] && cp "docs/xscript-guide.md" "$DOCS_DATA/docs/" || true
# Package scripts # Package scripts (may not exist in repo)
SCRIPTS_DATA="installer/packages/com.xplor.scripts/data" SCRIPTS_DATA="installer/packages/com.xplor.scripts/data"
rm -rf "$SCRIPTS_DATA" rm -rf "$SCRIPTS_DATA"
mkdir -p "$SCRIPTS_DATA/scripts" mkdir -p "$SCRIPTS_DATA/scripts"
[ -d "scripts" ] && cp -R scripts/* "$SCRIPTS_DATA/scripts/" if [ -d "scripts" ] && [ "$(ls -A scripts 2>/dev/null)" ]; then
cp -R scripts/* "$SCRIPTS_DATA/scripts/" || true
fi
echo "=== Package for Installer complete ==="
- name: Update Package Versions - name: Update Package Versions
shell: bash shell: bash
@ -456,6 +476,10 @@ jobs:
- name: Package for Installer - name: Package for Installer
shell: bash shell: bash
run: | run: |
set -x # Debug: show commands
echo "=== Starting Package for Installer (Linux) ==="
GUI_DATA="installer/packages/com.xplor.gui/data" GUI_DATA="installer/packages/com.xplor.gui/data"
CLI_DATA="installer/packages/com.xplor.cli/data" CLI_DATA="installer/packages/com.xplor.cli/data"
@ -466,12 +490,16 @@ jobs:
if [ -f "build/app/app" ]; then if [ -f "build/app/app" ]; then
cp "build/app/app" "$GUI_DATA/XPlor" cp "build/app/app" "$GUI_DATA/XPlor"
chmod +x "$GUI_DATA/XPlor" chmod +x "$GUI_DATA/XPlor"
else
echo "WARNING: GUI binary not found"
fi fi
# Copy CLI # Copy CLI
if [ -f "build/tools/cli/cli" ]; then if [ -f "build/tools/cli/cli" ]; then
cp "build/tools/cli/cli" "$CLI_DATA/cli/xplor-cli" cp "build/tools/cli/cli" "$CLI_DATA/cli/xplor-cli"
chmod +x "$CLI_DATA/cli/xplor-cli" chmod +x "$CLI_DATA/cli/xplor-cli"
else
echo "WARNING: CLI binary not found"
fi fi
# Copy Qt libraries (basic deployment) # Copy Qt libraries (basic deployment)
@ -486,13 +514,13 @@ jobs:
[ -d "$QT_PATH/plugins/platforms" ] && cp "$QT_PATH/plugins/platforms/"*.so "$GUI_DATA/plugins/platforms/" 2>/dev/null || true [ -d "$QT_PATH/plugins/platforms" ] && cp "$QT_PATH/plugins/platforms/"*.so "$GUI_DATA/plugins/platforms/" 2>/dev/null || true
fi fi
# Package definitions # Package definitions (check for non-empty directories)
for def in cod volition deadrising asura fmod thqa wii; do for def in cod volition deadrising asura fmod thqa wii; do
DEF_DATA="installer/packages/com.xplor.definitions.$def/data" DEF_DATA="installer/packages/com.xplor.definitions.$def/data"
rm -rf "$DEF_DATA" rm -rf "$DEF_DATA"
mkdir -p "$DEF_DATA/definitions/$def" mkdir -p "$DEF_DATA/definitions/$def"
if [ -d "definitions/$def" ]; then if [ -d "definitions/$def" ] && [ "$(ls -A definitions/$def 2>/dev/null)" ]; then
cp -R "definitions/$def/"* "$DEF_DATA/definitions/$def/" cp -R "definitions/$def/"* "$DEF_DATA/definitions/$def/" || true
fi fi
done done
@ -500,14 +528,18 @@ jobs:
DOCS_DATA="installer/packages/com.xplor.docs/data" DOCS_DATA="installer/packages/com.xplor.docs/data"
rm -rf "$DOCS_DATA" rm -rf "$DOCS_DATA"
mkdir -p "$DOCS_DATA/docs" mkdir -p "$DOCS_DATA/docs"
[ -f "docs/xscript-guide.pdf" ] && cp "docs/xscript-guide.pdf" "$DOCS_DATA/docs/" [ -f "docs/xscript-guide.pdf" ] && cp "docs/xscript-guide.pdf" "$DOCS_DATA/docs/" || true
[ -f "docs/xscript-guide.md" ] && cp "docs/xscript-guide.md" "$DOCS_DATA/docs/" [ -f "docs/xscript-guide.md" ] && cp "docs/xscript-guide.md" "$DOCS_DATA/docs/" || true
# Package scripts # Package scripts (may not exist in repo)
SCRIPTS_DATA="installer/packages/com.xplor.scripts/data" SCRIPTS_DATA="installer/packages/com.xplor.scripts/data"
rm -rf "$SCRIPTS_DATA" rm -rf "$SCRIPTS_DATA"
mkdir -p "$SCRIPTS_DATA/scripts" mkdir -p "$SCRIPTS_DATA/scripts"
[ -d "scripts" ] && cp -R scripts/* "$SCRIPTS_DATA/scripts/" if [ -d "scripts" ] && [ "$(ls -A scripts 2>/dev/null)" ]; then
cp -R scripts/* "$SCRIPTS_DATA/scripts/" || true
fi
echo "=== Package for Installer complete ==="
- name: Update Package Versions - name: Update Package Versions
shell: bash shell: bash