This commit overhauls the CI/CD infrastructure with enterprise-grade workflows: ## Workflow Changes ### Removed - issue-labeler.yml (TrinityCore-specific, won't run on fork) - win-x64-build.yml (consolidated into windows-build.yml) ### Added - codeql-analysis.yml: Security scanning with CodeQL, Trivy, TruffleHog - release.yml: Multi-platform automated releases (Windows, Linux, macOS) - upstream-sync.yml: Weekly TrinityCore upstream synchronization - docs-validation.yml: Markdown lint, link check, spell check - stale.yml: Automated stale issue/PR management - notifications.yml: Discord/Slack integration for build status - windows-build.yml: Enhanced Windows build with tests ### Enhanced - linux-build.yml: Added timeouts, artifact uploads, improved formatting - macos-arm-build.yml: Added ccache, timeouts, artifact uploads - playerbot-nightly-review.yml: Full trend analysis, metrics collection - pr-labeler.yml: File-based labels, size labels, auto-assign ### Configuration Files - labeler.yml: Path-based PR label mappings - auto-assign.yml: Automatic reviewer assignment ## Trigger Schedule (UTC) - 01:00 Daily: Stale issue management - 02:00 Daily: Nightly review with trend analysis - 03:00 Sunday: Upstream sync - 04:00 Monday: CodeQL security analysis - 00:00 Sunday: Dependency updates ## Features - Multi-platform builds with parallel execution - Automated security scanning and vulnerability detection - Historical metrics and trend analysis - Discord/Slack notifications (webhook-based) - Automated release creation with changelogs - PR size labeling and auto-assignment Co-Authored-By: Claude Opus 4.5 <[email protected]> Signed-off-by: luis <[email protected]>
136 lines
3.1 KiB
YAML
136 lines
3.1 KiB
YAML
# PR Labeler Configuration
|
|
# Labels are automatically applied based on files changed in the PR
|
|
|
|
# Playerbot Module
|
|
playerbot:
|
|
- changed-files:
|
|
- any-glob-to-any-file: 'src/modules/Playerbot/**'
|
|
|
|
# AI System
|
|
ai:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- 'src/modules/Playerbot/AI/**'
|
|
- 'src/modules/Playerbot/**/AI*.cpp'
|
|
- 'src/modules/Playerbot/**/AI*.h'
|
|
|
|
# Combat System
|
|
combat:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- 'src/modules/Playerbot/Combat/**'
|
|
- 'src/modules/Playerbot/**/Combat*.cpp'
|
|
- 'src/modules/Playerbot/**/Combat*.h'
|
|
|
|
# Navigation/Pathfinding
|
|
navigation:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- 'src/modules/Playerbot/Navigation/**'
|
|
- 'src/modules/Playerbot/Travel/**'
|
|
- 'src/modules/Playerbot/**/Path*.cpp'
|
|
- 'src/modules/Playerbot/**/Path*.h'
|
|
|
|
# Social/Interaction Systems
|
|
social:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- 'src/modules/Playerbot/Social/**'
|
|
- 'src/modules/Playerbot/Interaction/**'
|
|
|
|
# Database/SQL
|
|
database:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- '**/*.sql'
|
|
- 'src/modules/Playerbot/**/Database*.cpp'
|
|
- 'src/modules/Playerbot/**/Database*.h'
|
|
|
|
# Configuration
|
|
config:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- 'src/modules/Playerbot/**/Config*.cpp'
|
|
- 'src/modules/Playerbot/**/Config*.h'
|
|
- '**/*.conf'
|
|
- '**/*.conf.dist'
|
|
|
|
# Tests
|
|
tests:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- 'tests/**'
|
|
- '**/*test*.cpp'
|
|
- '**/*Test*.cpp'
|
|
|
|
# Build System
|
|
build:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- '**/CMakeLists.txt'
|
|
- '**/*.cmake'
|
|
- '.github/workflows/**'
|
|
|
|
# CI/CD
|
|
ci:
|
|
- changed-files:
|
|
- any-glob-to-any-file: '.github/**'
|
|
|
|
# Documentation
|
|
documentation:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- '**/*.md'
|
|
- 'docs/**'
|
|
- '.claude/**'
|
|
|
|
# Core Changes (requires extra review)
|
|
core:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- 'src/server/game/**'
|
|
- 'src/server/scripts/**'
|
|
- 'src/common/**'
|
|
|
|
# Dependencies
|
|
dependencies:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- 'dep/**'
|
|
- '**/requirements.txt'
|
|
- '**/package.json'
|
|
|
|
# Scripts
|
|
scripts:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- 'src/server/scripts/**'
|
|
- '**/*.py'
|
|
- '**/*.ps1'
|
|
- '**/*.sh'
|
|
- '**/*.bat'
|
|
|
|
# Performance Critical
|
|
performance:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- 'src/modules/Playerbot/**/Perf*.cpp'
|
|
- 'src/modules/Playerbot/**/Perf*.h'
|
|
- 'src/modules/Playerbot/**/Cache*.cpp'
|
|
- 'src/modules/Playerbot/**/Cache*.h'
|
|
|
|
# Security Sensitive
|
|
security:
|
|
- changed-files:
|
|
- any-glob-to-any-file:
|
|
- 'src/server/bnetserver/**'
|
|
- '**/*Auth*.cpp'
|
|
- '**/*Auth*.h'
|
|
- '**/*Security*.cpp'
|
|
- '**/*Security*.h'
|
|
|
|
# Tools
|
|
tools:
|
|
- changed-files:
|
|
- any-glob-to-any-file: 'src/tools/**'
|