Bump TerminalGuiVersion to 2.4.12-develop.7 #1396
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: ['**'] | |
| pull_request: | |
| branches: [main, develop] | |
| permissions: | |
| contents: read | |
| pull-requests: write | |
| jobs: | |
| build-and-test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| # Tells Terminal.Gui drivers to skip real-terminal probing/IO | |
| # so the ANSI driver runs on Windows runners without a TTY. | |
| DisableRealDriverIO: "1" | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: '10.0.x' | |
| dotnet-quality: 'preview' | |
| - name: Restore | |
| run: dotnet restore Terminal.Gui.Editor.slnx | |
| - name: Restore dotnet tools | |
| run: dotnet tool restore | |
| - name: Build | |
| run: dotnet build Terminal.Gui.Editor.slnx --no-restore | |
| # Style gate runs once (Linux). dotnet format catches whitespace/analyzer drift; | |
| # jb cleanupcode catches what dotnet format misses (var, expression-bodied members, | |
| # XML doc spacing, using sorting). Both must produce a clean working tree. | |
| # | |
| # Keep lifted AvaloniaEdit code out of broad format/cleanup passes. Those files preserve | |
| # upstream formatting for manual re-syncs; formatting-only churn there is not actionable | |
| # style drift. Keep this exclude list in sync with .claude/hooks/cleanup-cs.ps1. | |
| - name: Verify code style — dotnet format | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| dotnet format Terminal.Gui.Editor.slnx --no-restore --verify-no-changes \ | |
| --exclude third_party/ \ | |
| --exclude src/Terminal.Gui.Editor/Document/ \ | |
| --exclude src/Terminal.Gui.Editor/Extensions/ \ | |
| --exclude src/Terminal.Gui.Editor/Folding/ \ | |
| --exclude src/Terminal.Gui.Editor/Highlighting/ \ | |
| --exclude src/Terminal.Gui.Editor/Indentation/ \ | |
| --exclude src/Terminal.Gui.Editor/Search/ \ | |
| --exclude src/Terminal.Gui.Editor/Utils/ | |
| - name: Verify code style — ReSharper cleanupcode | |
| if: matrix.os == 'ubuntu-latest' | |
| run: | | |
| # Use our custom profile name defined in the team-shared .DotSettings file. | |
| # Previous attempts used "Built-in: Full Cleanup" which worked but didn't pick | |
| # up our tweaks (CSUseAutoProperty OFF, etc.). The custom-named profile resolves | |
| # reliably from the .DotSettings file. | |
| dotnet jb cleanupcode Terminal.Gui.Editor.slnx \ | |
| --profile="TG.Editor Full Cleanup" \ | |
| --no-build \ | |
| --exclude="third_party/**/*;src/Terminal.Gui.Editor/Document/**/*;src/Terminal.Gui.Editor/Extensions/**/*;src/Terminal.Gui.Editor/Folding/**/*;src/Terminal.Gui.Editor/Highlighting/**/*;src/Terminal.Gui.Editor/Indentation/**/*;src/Terminal.Gui.Editor/Search/**/*;src/Terminal.Gui.Editor/Utils/**/*" \ | |
| || true | |
| if ! git diff --exit-code; then | |
| echo "::error::ReSharper code cleanup found style drift outside lifted AvaloniaEdit code. Run '.claude/hooks/cleanup-cs.ps1' locally and commit the result." | |
| exit 1 | |
| fi | |
| - name: Terminal.Gui.Editor.Tests | |
| run: dotnet run --project tests/Terminal.Gui.Editor.Tests --no-build | |
| - name: Terminal.Gui.Editor.IntegrationTests | |
| run: dotnet run --project tests/Terminal.Gui.Editor.IntegrationTests --no-build | |
| # ConfigTests is ConfigurationManager-only and fully non-parallel (own xunit.runner.json). | |
| # CM is process-global with one-time [ConfigurationProperty] discovery, so it must run in | |
| # its own process, isolated from the parallel suites above. | |
| - name: Terminal.Gui.Editor.ConfigTests | |
| run: dotnet run --project tests/Terminal.Gui.Editor.ConfigTests --no-build | |
| # NOTE: Performance smoke tests and the BenchmarkDotNet baseline compare live in a | |
| # dedicated workflow: .github/workflows/perf.yml (ubuntu-latest only). They were split | |
| # out so this CI workflow stays purely correctness-focused and fast across all three OSes. |