feat: vite/ESM build, zero-hook initializer, public api.js module
#615
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: [master] | |
| pull_request: | |
| branches: [master] | |
| permissions: | |
| contents: read | |
| jobs: | |
| build: | |
| name: Build & Validate | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v7.0.1 | |
| # The SDK is pinned via global.json (10.0.x builds all TFMs); | |
| # older runtimes are needed to run tests targeting net8.0/net9.0. | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v6.0.0 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 9.0.x | |
| 10.0.x | |
| # Folder mode formats files directly without loading MSBuild projects — | |
| # full `dotnet format` corrupts sources on multi-targeted projects | |
| # (inserts "Unmerged change from project" conflict markers per TFM; | |
| # dotnet/format#1634, see FORMATTING.md). | |
| - name: Verify .NET code formatting | |
| run: dotnet format whitespace . --folder --exclude templates node_modules --verify-no-changes | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v7.0.0 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| - name: Install npm dependencies | |
| run: npm ci | |
| - name: Verify JS/TS formatting | |
| run: npm run format:check | |
| - name: Build static web assets (src/wwwroot) | |
| run: npm run build | |
| - name: Check static web assets | |
| run: npm test | |
| - name: Restore .NET dependencies | |
| run: dotnet restore | |
| - name: Build .NET library | |
| run: dotnet build --no-restore --configuration Release /p:TreatWarningsAsErrors=false | |
| # Trimmed publish of the smoke app fails on any linker warning; publish runs per TFM | |
| - name: Publish trimmed smoke app | |
| run: | | |
| dotnet publish tests/IgniteUI.Blazor.Lite.PublishSmoke --configuration Release --framework net8.0 | |
| dotnet publish tests/IgniteUI.Blazor.Lite.PublishSmoke --configuration Release --framework net9.0 | |
| dotnet publish tests/IgniteUI.Blazor.Lite.PublishSmoke --configuration Release --framework net10.0 | |
| - name: Build VS Templates | |
| run: dotnet pack templates/IgniteUI.Blazor.Templates/ | |
| - name: Run .NET tests with coverage | |
| run: > | |
| dotnet test ./tests/IgniteUI.Blazor.Tests/IgniteUI.Blazor.Tests.csproj | |
| --settings ./.runsettings | |
| --no-build --configuration Release --verbosity normal | |
| --collect:"Code Coverage" | |
| --results-directory ./TestResults | |
| - name: Install Playwright | |
| shell: pwsh | |
| run: ./tests/IgniteUI.Blazor.Lite.IntegrationTests/bin/Release/net10.0/playwright.ps1 install | |
| - name: Run Bulk API Automation | |
| run: > | |
| dotnet test ./tests/IgniteUI.Blazor.Lite.IntegrationTests/IgniteUI.Blazor.Lite.IntegrationTests.csproj | |
| --settings ./.runsettings | |
| --no-build --configuration Release --verbosity normal | |
| --collect:"Code Coverage" | |
| --results-directory ./TestResults | |
| - name: Generate coverage report | |
| uses: danielpalme/ReportGenerator-GitHub-Action@d3ebf1f760f7d8ab92cc44d9bcfee7ad73722a31 | |
| with: | |
| reports: TestResults/**/*.cobertura.xml | |
| targetdir: CoverageReport | |
| reporttypes: HtmlInline_AzurePipelines;Cobertura;MarkdownSummaryGithub | |
| - name: Publish coverage summary | |
| run: cat CoverageReport/SummaryGithub.md >> "$GITHUB_STEP_SUMMARY" | |
| - name: Upload coverage report | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: coverage-report | |
| path: CoverageReport | |
| retention-days: 14 |