Continuous integration
August 10, 2026 · View on GitHub
Scope: GitHub Actions workflow for this repository. Source of truth:
.github/workflows/ci.yml— update this file when CI changes; keepci.mdin sync.
Triggers
Runs on push and pull_request to main or master.
Concurrent runs for the same branch are cancelled when a newer commit is pushed.
Jobs
| Job | What it runs | Working directory |
|---|---|---|
| dotnet | dotnet restore → dotnet test | Repository root |
| npm | npm ci → npm run build:npm → npm run test:npm | Repository root |
dotnet
- .NET 10
- Solution:
src/dotnet/DataGrid.slnx - Release configuration
npm
- Node.js 24
- npm cache keyed on
package-lock.json - Builds
@laczynski/datagrid,@laczynski/datagrid-primeng,@laczynski/datagrid-ui,@laczynski/datagrid-spartan, and@laczynski/datagrid-cli - Runs Vitest in core, primeng, ui, spartan, and schematic tests in cli
Reproduce locally
Full command list: AGENTS.md. CI runs the equivalent of npm run test:all on every push. Packing and publishing happen only on tag push — see publishing.md.
CI-specific differences:
- Uses
npm ci(notnpm install) and Node 24 - Does not run
npm run lint:frontendor sample apps — run those locally before a PR
What CI does not cover
| Check | Local command / workflow |
|---|---|
| Sample apps | npm run start:all |
ESLint (src/npm) | npm run lint:frontend from repository root |
| dotnet format | dotnet format src/dotnet/DataGrid.slnx |
| Cross-repo consumer verification | Use samples/ or published packages |
| Publishing | Push a v* tag → publish.yml |
Publish workflow
Separate from CI — runs on tag push v*. Tests, packs, and publishes NuGet (nuget.org + GitHub Packages), npm (npmjs.com + GitHub Packages), and creates a GitHub Release.
Details: publishing.md.