Skip to content

Commit bc5fecd

Browse files
Merge branch 'main' into seo/74585-ef-core-filtered-include
2 parents 65fe3fc + 993968d commit bc5fecd

536 files changed

Lines changed: 82188 additions & 636 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/pr-build.yml‎

Lines changed: 56 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
# Advisory only. This check is never marked as a required status check, and main
22
# has no branch protection rule referencing it. It builds and tests exactly the
3-
# article folder(s) a PR touches -- nothing else. Folders in .github/ci-skip-folders.txt
4-
# are filtered out before the matrix is built, so they never show up as a run,
5-
# passing or failing (edit that file, not this one, to change what's excluded).
3+
# article folder(s) a PR touches -- nothing else. A folder is classified once:
4+
# "dotnet" when it holds a .sln, "npm" when it holds a package.json at its root
5+
# or in an immediate subfolder (the layout an Angular series folder uses).
6+
# Folders in .github/ci-skip-folders.txt are filtered out before the matrix is
7+
# built, so they never show up as a run, passing or failing (edit that file, not
8+
# this one, to change what's excluded).
69
name: PR Build
710

811
on:
@@ -69,13 +72,23 @@ jobs:
6972
continue
7073
fi
7174
72-
# Folder may have been deleted in this PR -- skip if no .sln remains at HEAD.
73-
if ! compgen -G "$f"/*.sln > /dev/null 2>&1; then
75+
# Classify the folder. A .sln makes it a .NET folder; otherwise a
76+
# package.json at the folder root or one level down makes it an npm
77+
# folder. Anything else has nothing to build.
78+
kind=""
79+
if compgen -G "$f"/*.sln > /dev/null 2>&1; then
80+
kind="dotnet"
81+
elif [ -f "$f/package.json" ] || compgen -G "$f"/*/package.json > /dev/null 2>&1; then
82+
kind="npm"
83+
fi
84+
85+
# Folder may have been deleted in this PR -- skip if nothing buildable remains at HEAD.
86+
if [ -z "$kind" ]; then
7487
echo "::notice::Skipping '$f' -- no .sln at HEAD (deleted or restructured)."
7588
continue
7689
fi
7790
78-
entries=$(jq -c --arg folder "$f" '. + [{folder: $folder}]' <<<"$entries")
91+
entries=$(jq -c --arg folder "$f" --arg kind "$kind" '. + [{folder: $folder, kind: $kind}]' <<<"$entries")
7992
done
8093
8194
echo "folders=$entries" >> "$GITHUB_OUTPUT"
@@ -100,6 +113,7 @@ jobs:
100113
sparse-checkout-cone-mode: true
101114

102115
- name: Setup .NET SDKs
116+
if: matrix.kind == 'dotnet'
103117
uses: actions/setup-dotnet@v4
104118
with:
105119
dotnet-version: |
@@ -110,6 +124,7 @@ jobs:
110124
10.0.x
111125
112126
- name: Build and test
127+
if: matrix.kind == 'dotnet'
113128
working-directory: ${{ matrix.folder }}
114129
shell: bash
115130
run: |
@@ -122,7 +137,41 @@ jobs:
122137
echo "Building $sln"
123138
dotnet build "$sln" --configuration Release
124139
echo "Testing $sln (no-op for folders with no test project)"
125-
dotnet test "$sln" --configuration Release --no-build
140+
dotnet test "$sln" --configuration Release --no-build --filter "FullyQualifiedName!~Live"
141+
142+
- name: Setup Node
143+
if: matrix.kind == 'npm'
144+
uses: actions/setup-node@v4
145+
with:
146+
node-version: 24
147+
cache: npm
148+
cache-dependency-path: ${{ matrix.folder }}/**/package-lock.json
149+
150+
- name: Build (npm)
151+
if: matrix.kind == 'npm'
152+
working-directory: ${{ matrix.folder }}
153+
shell: bash
154+
run: |
155+
set -euo pipefail
156+
# Every directory at depth 0 or 1 that holds a package.json is its own
157+
# project: one folder may carry a single application or a set of them.
158+
mapfile -t projects < <(
159+
find . -maxdepth 2 -name package.json -not -path "*/node_modules/*" -printf '%h\n' \
160+
| sort -u
161+
)
162+
if [ ${#projects[@]} -eq 0 ]; then
163+
echo "::error::No package.json found in ${{ matrix.folder }}."
164+
exit 1
165+
fi
166+
for p in "${projects[@]}"; do
167+
echo "::group::${{ matrix.folder }}/${p#./} -- npm ci && npm run build"
168+
(
169+
cd "$p"
170+
npm ci
171+
npm run build
172+
)
173+
echo "::endgroup::"
174+
done
126175
127176
# Stable, folder-independent name for branch protection to require -- the
128177
# build-and-test job's displayed name varies with the matrix (one leg per
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# See https://docs.github.com/get-started/getting-started-with-git/ignoring-files for more about ignoring files.
2+
3+
# Compiled output
4+
/dist
5+
/tmp
6+
/out-tsc
7+
/bazel-out
8+
9+
# Node
10+
/node_modules
11+
npm-debug.log
12+
yarn-error.log
13+
14+
# IDEs and editors
15+
.idea/
16+
.project
17+
.classpath
18+
.c9/
19+
*.launch
20+
.settings/
21+
*.sublime-workspace
22+
23+
# Visual Studio Code
24+
.vscode/*
25+
!.vscode/settings.json
26+
!.vscode/tasks.json
27+
!.vscode/launch.json
28+
!.vscode/extensions.json
29+
!.vscode/mcp.json
30+
.history/*
31+
32+
# Miscellaneous
33+
/.angular/cache
34+
.sass-cache/
35+
/connect.lock
36+
/coverage
37+
/libpeerconnection.log
38+
testem.log
39+
/typings
40+
__screenshots__/
41+
42+
# System files
43+
.DS_Store
44+
Thumbs.db
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"printWidth": 100,
3+
"singleQuote": true,
4+
"overrides": [
5+
{
6+
"files": "*.html",
7+
"options": {
8+
"parser": "angular"
9+
}
10+
}
11+
]
12+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
3+
"recommendations": ["angular.ng-template"]
4+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
3+
"version": "0.2.0",
4+
"configurations": [
5+
{
6+
"name": "ng serve",
7+
"type": "chrome",
8+
"request": "launch",
9+
"preLaunchTask": "npm: start",
10+
"url": "http://localhost:4200/"
11+
},
12+
{
13+
"name": "ng test",
14+
"type": "chrome",
15+
"request": "launch",
16+
"preLaunchTask": "npm: test",
17+
"url": "http://localhost:9876/debug.html"
18+
}
19+
]
20+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
// For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
3+
"version": "2.0.0",
4+
"tasks": [
5+
{
6+
"type": "npm",
7+
"script": "start",
8+
"isBackground": true,
9+
"problemMatcher": {
10+
"owner": "typescript",
11+
"pattern": "$tsc",
12+
"background": {
13+
"activeOnStart": true,
14+
"beginsPattern": {
15+
"regexp": "Changes detected"
16+
},
17+
"endsPattern": {
18+
"regexp": "bundle generation (complete|failed)"
19+
}
20+
}
21+
}
22+
},
23+
{
24+
"type": "npm",
25+
"script": "test",
26+
"isBackground": true,
27+
"problemMatcher": {
28+
"owner": "typescript",
29+
"pattern": "$tsc",
30+
"background": {
31+
"activeOnStart": true,
32+
"beginsPattern": {
33+
"regexp": "Changes detected"
34+
},
35+
"endsPattern": {
36+
"regexp": "bundle generation (complete|failed)"
37+
}
38+
}
39+
}
40+
}
41+
]
42+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# AccountOwnerClient
2+
3+
This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 22.1.7.
4+
5+
## Development server
6+
7+
To start a local development server, run:
8+
9+
```bash
10+
ng serve
11+
```
12+
13+
Once the server is running, open your browser and navigate to `http://localhost:4200/`. The application will automatically reload whenever you modify any of the source files.
14+
15+
## Code scaffolding
16+
17+
Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
18+
19+
```bash
20+
ng generate component component-name
21+
```
22+
23+
For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
24+
25+
```bash
26+
ng generate --help
27+
```
28+
29+
## Building
30+
31+
To build the project run:
32+
33+
```bash
34+
ng build
35+
```
36+
37+
This will compile your project and store the build artifacts in the `dist/` directory. By default, the production build optimizes your application for performance and speed.
38+
39+
## Running unit tests
40+
41+
To execute unit tests with the [Vitest](https://vitest.dev/) test runner, use the following command:
42+
43+
```bash
44+
ng test
45+
```
46+
47+
## Running end-to-end tests
48+
49+
For end-to-end (e2e) testing, run:
50+
51+
```bash
52+
ng e2e
53+
```
54+
55+
Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
56+
57+
## Additional Resources
58+
59+
For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
{
2+
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3+
"version": 1,
4+
"cli": {
5+
"packageManager": "npm"
6+
},
7+
"newProjectRoot": "projects",
8+
"projects": {
9+
"AccountOwnerClient": {
10+
"projectType": "application",
11+
"schematics": {},
12+
"root": "",
13+
"sourceRoot": "src",
14+
"prefix": "app",
15+
"architect": {
16+
"build": {
17+
"builder": "@angular/build:application",
18+
"options": {
19+
"browser": "src/main.ts",
20+
"tsConfig": "tsconfig.app.json",
21+
"assets": [
22+
{
23+
"glob": "**/*",
24+
"input": "public"
25+
}
26+
],
27+
"styles": [
28+
"./node_modules/ngx-bootstrap/datepicker/bs-datepicker.css",
29+
"./node_modules/bootstrap/dist/css/bootstrap.min.css",
30+
"src/styles.css"
31+
]
32+
},
33+
"configurations": {
34+
"production": {
35+
"budgets": [
36+
{
37+
"type": "initial",
38+
"maximumWarning": "500kB",
39+
"maximumError": "1MB"
40+
},
41+
{
42+
"type": "anyComponentStyle",
43+
"maximumWarning": "4kB",
44+
"maximumError": "8kB"
45+
}
46+
],
47+
"outputHashing": "all"
48+
},
49+
"development": {
50+
"optimization": false,
51+
"extractLicenses": false,
52+
"sourceMap": true,
53+
"fileReplacements": [
54+
{
55+
"replace": "src/environments/environment.ts",
56+
"with": "src/environments/environment.development.ts"
57+
}
58+
]
59+
}
60+
},
61+
"defaultConfiguration": "production"
62+
},
63+
"serve": {
64+
"builder": "@angular/build:dev-server",
65+
"configurations": {
66+
"production": {
67+
"buildTarget": "AccountOwnerClient:build:production"
68+
},
69+
"development": {
70+
"buildTarget": "AccountOwnerClient:build:development"
71+
}
72+
},
73+
"defaultConfiguration": "development"
74+
},
75+
"test": {
76+
"builder": "@angular/build:unit-test"
77+
}
78+
}
79+
}
80+
}
81+
}

0 commit comments

Comments
 (0)