Skip to content

feat: vite/ESM build, zero-hook initializer, public api.js module #615

feat: vite/ESM build, zero-hook initializer, public api.js module

feat: vite/ESM build, zero-hook initializer, public api.js module #615

Workflow file for this run

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