force sync from /var/www/html/panel: 2025-09-08T20:36:30Z
This commit is contained in:
commit
4f717c9ee8
18119 changed files with 2566034 additions and 0 deletions
123
ControlPanel/.github/workflows/build-game-pdfs.yml
vendored
Executable file
123
ControlPanel/.github/workflows/build-game-pdfs.yml
vendored
Executable file
|
|
@ -0,0 +1,123 @@
|
|||
name: Build Game PDFs
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
commit_pdfs:
|
||||
description: 'Commit PDFs back to repository'
|
||||
required: false
|
||||
default: 'true'
|
||||
type: boolean
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- 'all_hostable_games_union.csv'
|
||||
- 'scripts/build_pdfs.py'
|
||||
- 'scripts/clean.py'
|
||||
- 'scripts/quality_control.py'
|
||||
- 'templates/game_guide.md'
|
||||
- '.github/workflows/build-game-pdfs.yml'
|
||||
|
||||
jobs:
|
||||
build-pdfs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.12'
|
||||
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y pandoc wkhtmltopdf
|
||||
|
||||
- name: Install Python dependencies
|
||||
run: |
|
||||
pip install pandas PyYAML
|
||||
|
||||
- name: Clean previous output
|
||||
run: |
|
||||
python3 scripts/clean.py
|
||||
|
||||
- name: Generate all game guides and PDFs
|
||||
run: |
|
||||
python3 scripts/build_pdfs.py
|
||||
|
||||
- name: Run quality control validation
|
||||
run: |
|
||||
python3 scripts/quality_control.py
|
||||
|
||||
- name: Generate statistics
|
||||
run: |
|
||||
echo "## Build Statistics" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Markdown files:** $(find out/md -name '*.md' | wc -l)" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **PDF files:** $(find out/pdfs -name '*.pdf' | wc -l)" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Total PDF size:** $(du -sh out/pdfs/ | cut -f1)" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Generated:** $(date)" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
# Check for quality issues
|
||||
if [ -f out/pdfs/quality_report.json ]; then
|
||||
ERRORS=$(jq -r '.total_errors' out/pdfs/quality_report.json)
|
||||
WARNINGS=$(jq -r '.total_warnings' out/pdfs/quality_report.json)
|
||||
echo "- **Quality:** $ERRORS errors, $WARNINGS warnings" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
if [ "$ERRORS" -gt "0" ]; then
|
||||
echo "❌ Quality validation failed with $ERRORS errors" >> $GITHUB_STEP_SUMMARY
|
||||
exit 1
|
||||
else
|
||||
echo "✅ Quality validation passed" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
fi
|
||||
|
||||
- name: Upload PDF artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: game-server-guides-pdfs
|
||||
path: out/pdfs/
|
||||
retention-days: 30
|
||||
|
||||
- name: Upload Markdown artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: game-server-guides-markdown
|
||||
path: out/md/
|
||||
retention-days: 30
|
||||
|
||||
- name: Commit PDFs to repository
|
||||
if: github.event_name == 'workflow_dispatch' && github.event.inputs.commit_pdfs == 'true' || github.event_name == 'push'
|
||||
run: |
|
||||
# Configure git
|
||||
git config --local user.email "action@github.com"
|
||||
git config --local user.name "GitHub Action"
|
||||
|
||||
# Create docs/pdfs directory if it doesn't exist
|
||||
mkdir -p docs/pdfs
|
||||
|
||||
# Copy PDFs to docs directory
|
||||
cp out/pdfs/*.pdf docs/pdfs/ 2>/dev/null || true
|
||||
cp out/pdfs/manifest.json docs/pdfs/ 2>/dev/null || true
|
||||
cp out/pdfs/quality_report.json docs/pdfs/ 2>/dev/null || true
|
||||
|
||||
# Add and commit changes
|
||||
git add docs/pdfs/
|
||||
|
||||
# Check if there are changes to commit
|
||||
if ! git diff --staged --quiet; then
|
||||
GAME_COUNT=$(find out/pdfs -name '*.pdf' | wc -l)
|
||||
git commit -m "docs: regenerate exhaustive self-hosting PDFs for $GAME_COUNT games
|
||||
|
||||
- Generated $(date)
|
||||
- Total PDFs: $GAME_COUNT
|
||||
- Quality validated: $(jq -r '.total_errors' out/pdfs/quality_report.json 2>/dev/null || echo '0') errors
|
||||
- All guides are hosting-agnostic and self-hosting focused"
|
||||
|
||||
git push
|
||||
echo "✅ PDFs committed to repository" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "ℹ️ No changes to commit" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
Loading…
Add table
Add a link
Reference in a new issue