name: CI on: push: branches: [ main, develop ] pull_request: branches: [ main, develop ] jobs: validate: name: Validate Project runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.8' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Validate scripts syntax run: | chmod +x scripts/*.sh for script in scripts/*.sh; do bash -n "$script" || exit 1 done - name: Validate Python scripts run: | for script in scripts/*.py; do python3 -m py_compile "$script" || exit 1 done - name: Check documentation links run: | # Basic markdown link validation find . -name "*.md" -exec grep -l "\[.*\](.*)" {} \; | head -5 - name: Validate project structure run: | test -f README.md || exit 1 test -f LICENSE || exit 1 test -f CONTRIBUTING.md || exit 1 test -f CHANGELOG.md || exit 1 test -d scripts || exit 1 test -d docs || exit 1 lint: name: Lint Code runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.8' - name: Install linting tools run: | pip install flake8 pylint - name: Lint Python scripts run: | for script in scripts/*.py; do flake8 "$script" || true done docs: name: Validate Documentation runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Check documentation structure run: | test -f docs/README.md || exit 1 test -f docs/setup/UE5_INSTALLATION.md || exit 1 echo "Documentation structure valid"