Skip to content

Commit d0088fd

Browse files
committed
Merge remote-tracking branch 'origin/main' into kyle/fix-test-container-image
2 parents 6e27261 + 56aa948 commit d0088fd

45 files changed

Lines changed: 708 additions & 497 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/build-ramdisk.yml

Lines changed: 0 additions & 43 deletions
This file was deleted.

.github/workflows/codeql-analysis.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,14 @@ on:
55
push:
66
branches:
77
- '**' # All branches - security issues can be on any branch
8+
paths-ignore:
9+
- 'docs/**'
810
pull_request:
11+
paths-ignore:
12+
- 'docs/**'
913
workflow_dispatch: # Manual trigger for on-demand security scans
1014
schedule:
11-
- cron: '0 8 * * *' # Daily at 8 AM UTC - catches new vulnerabilities
15+
- cron: '0 8 1 * *' # Monthly at 8 AM UTC - catches new vulnerabilities
1216

1317
jobs:
1418
analyze:
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Cross-Platform Build & Test (MinimalClean)
2+
3+
on:
4+
push:
5+
branches:
6+
- '**'
7+
paths:
8+
- 'MinimalClean/**'
9+
- '.github/workflows/cross-platform-build-test-minimal.yml'
10+
pull_request:
11+
branches:
12+
- '**'
13+
paths:
14+
- 'MinimalClean/**'
15+
- '.github/workflows/cross-platform-build-test-minimal.yml'
16+
workflow_dispatch:
17+
18+
jobs:
19+
build:
20+
name: Build (.NET 10)
21+
runs-on: ${{ matrix.os }}
22+
23+
strategy:
24+
matrix:
25+
os: [windows-latest, ubuntu-latest, macos-latest]
26+
fail-fast: false
27+
28+
steps:
29+
- name: Checkout code
30+
uses: actions/checkout@v6
31+
32+
- name: Setup .NET 10 SDK
33+
uses: actions/setup-dotnet@v5
34+
with:
35+
dotnet-version: '10.0.x'
36+
dotnet-quality: 'ga'
37+
38+
- name: Restore dependencies
39+
run: dotnet restore MinimalClean/MinimalClean.Architecture.slnx --verbosity normal
40+
env:
41+
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
42+
DOTNET_CLI_TELEMETRY_OPTOUT: true
43+
44+
- name: Build (Release)
45+
run: dotnet build MinimalClean/MinimalClean.Architecture.slnx --configuration Release --no-restore --verbosity minimal

.github/workflows/cross-platform-build-test.yml

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,40 @@
1-
name: Cross-Platform Build & Test
1+
name: Cross-Platform Build & Test (Clean Architecture)
22

3-
# Comprehensive CI across all platforms and configurations
43
on:
54
push:
65
branches:
7-
- '**' # All branches - enables cross-platform testing for feature branches
6+
- '**'
7+
paths:
8+
- 'src/**'
9+
- 'tests/**'
10+
- 'Clean.Architecture.slnx'
11+
- 'Directory.Build.props'
12+
- 'Directory.Packages.props'
13+
- 'global.json'
14+
- '.github/workflows/cross-platform-build-test.yml'
815
pull_request:
916
branches:
10-
- '**' # All branches - PR checks for any target
11-
workflow_dispatch: # Manual trigger for on-demand cross-platform tests
17+
- '**'
18+
paths:
19+
- 'src/**'
20+
- 'tests/**'
21+
- 'Clean.Architecture.slnx'
22+
- 'Directory.Build.props'
23+
- 'Directory.Packages.props'
24+
- 'global.json'
25+
- '.github/workflows/cross-platform-build-test.yml'
26+
workflow_dispatch:
1227

1328
jobs:
1429
build-and-test:
1530
name: Build & Test (.NET 10)
1631
runs-on: ${{ matrix.os }}
1732

18-
# Matrix strategy tests all OS + configuration combinations
33+
# Matrix strategy tests all OS combinations
1934
strategy:
2035
matrix:
2136
os: [windows-latest, ubuntu-latest, macos-latest] # All major platforms
22-
configuration: [Debug, Release] # Both build configurations
37+
configuration: [Release]
2338
fail-fast: false # Continue other jobs if one fails - get full picture
2439

2540
steps:

.github/workflows/dotnetcore.yml

Lines changed: 0 additions & 43 deletions
This file was deleted.

.github/workflows/hugo-docs.yml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: Deploy Hugo site to Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- 'docs/**'
9+
- '.github/workflows/hugo-docs.yml'
10+
11+
workflow_dispatch:
12+
13+
permissions:
14+
contents: read
15+
pages: write
16+
id-token: write
17+
18+
concurrency:
19+
group: pages
20+
cancel-in-progress: true
21+
22+
jobs:
23+
build:
24+
runs-on: ubuntu-latest
25+
26+
env:
27+
HUGO_VERSION: 0.158.0
28+
29+
steps:
30+
- name: Checkout
31+
uses: actions/checkout@v4
32+
with:
33+
submodules: recursive
34+
fetch-depth: 0
35+
36+
- name: Checkout Hugo Book theme
37+
uses: actions/checkout@v4
38+
with:
39+
repository: alex-shpak/hugo-book
40+
path: docs/themes/hugo-book
41+
fetch-depth: 1
42+
43+
- name: Setup Hugo
44+
uses: peaceiris/actions-hugo@v3
45+
with:
46+
hugo-version: ${{ env.HUGO_VERSION }}
47+
extended: true
48+
49+
- name: Build
50+
working-directory: ./docs
51+
run: hugo --minify
52+
53+
- name: Upload artifact
54+
uses: actions/upload-pages-artifact@v3
55+
with:
56+
path: ./docs/public
57+
58+
deploy:
59+
environment:
60+
name: github-pages
61+
url: ${{ steps.deployment.outputs.page_url }}
62+
63+
runs-on: ubuntu-latest
64+
needs: build
65+
66+
steps:
67+
- name: Deploy to GitHub Pages
68+
id: deployment
69+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ bld/
3030
# Uncomment if you have tasks that create the project's static files in wwwroot
3131
#wwwroot/
3232

33+
# Hugo generated site output
34+
docs/public/
35+
3336
# MSTest test Results
3437
[Tt]est[Rr]esult*/
3538
[Bb]uild[Ll]og.*

CONTRIBUTING.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,59 @@ In short, when you submit code changes, your submissions are understood to be un
4141

4242
We use GitHub issues to track public bugs. Report a bug by [opening a new issue](https://github.com/ardalis/CleanArchitecture/issues/new/choose); it's that easy!
4343

44+
## Contributing to Documentation
45+
46+
The project docs are a [Hugo](https://gohugo.io/) site located in the `/docs` folder and are published to [ardalis.github.io/CleanArchitecture](https://ardalis.github.io/CleanArchitecture/) automatically when changes to `docs/**` are merged to `main`.
47+
48+
### Adding or editing a page
49+
50+
All content lives under `docs/content/`. Each file is standard Markdown with a small YAML front matter block at the top:
51+
52+
```markdown
53+
---
54+
title: "My New Page"
55+
weight: 25
56+
---
57+
58+
Page content here.
59+
```
60+
61+
- `title` — the label shown in the left navigation.
62+
- `weight` — controls the sort order; lower numbers appear higher in the nav.
63+
64+
To add a **new section** (a collapsible group in the nav), create a subdirectory and add an `_index.md` inside it using the same front matter pattern.
65+
66+
Existing content sections for reference:
67+
68+
| Path | Purpose |
69+
| --- | --- |
70+
| `docs/content/getting-started.md` | Installation and first steps |
71+
| `docs/content/design-decisions.md` | Goals and design rationale |
72+
| `docs/content/minimal-clean-architecture.md` | Minimal template overview |
73+
| `docs/content/architecture-decisions/` | ADR records |
74+
| `docs/content/migration-guides/` | Version upgrade guides |
75+
76+
### Building and previewing docs locally
77+
78+
**Prerequisites:** [Hugo extended](https://gohugo.io/installation/) v0.158 or higher.
79+
80+
1. Clone the theme alongside the docs (mirrors what CI does):
81+
82+
```bash
83+
git clone https://github.com/alex-shpak/hugo-book docs/themes/hugo-book
84+
```
85+
86+
2. Start the local dev server from the `docs/` directory:
87+
88+
```bash
89+
cd docs
90+
hugo server --minify
91+
```
92+
93+
3. Open [http://localhost:1313/CleanArchitecture/](http://localhost:1313/CleanArchitecture/) in your browser. The server hot-reloads on file saves.
94+
95+
The generated `docs/public/` output directory is gitignored — do not commit it.
96+
4497
## Sponsor us
4598

4699
If you don't have the time or expertise to contribute code, you can still support us by [sponsoring](https://github.com/sponsors/ardalis).

Directory.Packages.props

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@
2727
<PackageVersion Include="Microsoft.Extensions.Logging" Version="10.0.7" />
2828
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.7" />
2929
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.7" />
30-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.4.0" />
30+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" />
3131
<PackageVersion Include="NimblePros.Metronome" Version="0.4.1" />
3232
<PackageVersion Include="NSubstitute" Version="5.3.0" />
33-
<PackageVersion Include="ReportGenerator" Version="5.5.6" />
34-
<PackageVersion Include="Scalar.AspNetCore" Version="2.14.4" />
33+
<PackageVersion Include="ReportGenerator" Version="5.5.9" />
34+
<PackageVersion Include="Scalar.AspNetCore" Version="2.14.11" />
3535
<PackageVersion Include="Serilog.AspNetCore" Version="10.0.0" />
3636
<PackageVersion Include="Serilog.Sinks.OpenTelemetry" Version="4.2.0" />
3737
<PackageVersion Include="Shouldly" Version="4.3.0" />
@@ -40,10 +40,9 @@
4040
<PackageVersion Include="Swashbuckle.AspNetCore.Annotations" Version="6.5.0" />
4141
<PackageVersion Include="Testcontainers" Version="4.11.0" />
4242
<PackageVersion Include="Testcontainers.MsSql" Version="4.11.0" />
43-
<PackageVersion Include="xunit" Version="2.9.3" />
43+
<PackageVersion Include="xunit.v3" Version="3.2.2" />
4444
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
45-
<PackageVersion Include="Aspire.Hosting.AppHost" Version="13.2.3" />
46-
<PackageVersion Include="Aspire.Hosting.SqlServer" Version="13.2.3" />
45+
<PackageVersion Include="Aspire.Hosting.SqlServer" Version="13.3.0" />
4746
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="10.5.0" />
4847
<PackageVersion Include="Microsoft.Extensions.ServiceDiscovery" Version="10.5.0" />
4948
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.3" />

MinimalClean/Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
<PackageVersion Include="Swashbuckle.AspNetCore.Annotations" Version="6.5.0" />
4343
<PackageVersion Include="Testcontainers" Version="4.3.0" />
4444
<PackageVersion Include="Testcontainers.MsSql" Version="4.3.0" />
45-
<PackageVersion Include="xunit" Version="2.9.3" />
45+
<PackageVersion Include="xunit.v3" Version="3.2.2" />
4646
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
4747
<PackageVersion Include="Aspire.Hosting.AppHost" Version="13.2.3" />
4848
<PackageVersion Include="Aspire.Hosting.SqlServer" Version="13.2.3" />

0 commit comments

Comments
 (0)