name: Avalonia Code Quality on: push: branches: [ main, develop ] pull_request: branches: [ main ] jobs: quality-check: name: Lint, Analyze & Build runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v3 with: dotnet-version: '8.0.x' - name: Restore dependencies run: dotnet restore - name: Check code formatting run: dotnet format --verify-no-changes --verbosity minimal - name: Build Avalonia app run: dotnet build --configuration Release --no-restore /p:TreatWarningsAsErrors=true - name: Check XAML files run: | echo "Checking for XAML syntax issues..." # This will be caught during build, but we can add specific checks find . -name "*.axaml" -o -name "*.xaml" | wc -l | xargs echo "Found XAML files:" - name: Run tests (if any exist) run: | if find . -name "*Test*.csproj" | grep -q .; then dotnet test --configuration Release --no-build --verbosity minimal else echo "No test projects found, skipping tests" fi - name: Verify Avalonia dependencies run: | echo "Checking Avalonia package references..." if grep -r "Avalonia\." --include="*.csproj" .; then echo "✅ Avalonia packages found" else echo "⚠️ No Avalonia packages detected" fi