Skip to content

Commit d6c85d2

Browse files
committed
Merge branch 'master' into licensed_endpoints
2 parents 373f3c3 + 2c924e3 commit d6c85d2

389 files changed

Lines changed: 1529 additions & 2137 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-containers.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
shell: pwsh
3333
run: exit $(If ($env:SECRETS_AVAILABLE -eq 'true') { 0 } Else { 1 })
3434
- name: Checkout
35-
uses: actions/checkout@v6.0.2
35+
uses: actions/checkout@v6.0.3
3636
with:
3737
fetch-depth: 0
3838
- name: Setup .NET SDK

.github/workflows/build-db-container.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
shell: pwsh
1717
run: exit $(If ($env:SECRETS_AVAILABLE -eq 'true') { 0 } Else { 1 })
1818
- name: Checkout
19-
uses: actions/checkout@v6.0.2
19+
uses: actions/checkout@v6.0.3
2020
with:
2121
fetch-depth: 0
2222
- name: Setup .NET SDK

.github/workflows/build-windows.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
SECRETS_AVAILABLE: ${{ secrets.SECRETS_AVAILABLE }}
1313
run: exit $(If ($env:SECRETS_AVAILABLE -eq 'true') { 0 } Else { 1 })
1414
- name: Checkout
15-
uses: actions/checkout@v6.0.2
15+
uses: actions/checkout@v6.0.3
1616
with:
1717
fetch-depth: 0
1818
- name: Setup .NET SDK

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
SECRETS_AVAILABLE: ${{ secrets.SECRETS_AVAILABLE }}
3737
run: exit $(If ($env:SECRETS_AVAILABLE -eq 'true') { 0 } Else { 1 })
3838
- name: Checkout
39-
uses: actions/checkout@v6.0.2
39+
uses: actions/checkout@v6.0.3
4040
with:
4141
fetch-depth: 0
4242
- name: Setup .NET SDK

.github/workflows/container-integration-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
shell: pwsh
5151
run: exit $(If ($env:SECRETS_AVAILABLE -eq 'true') { 0 } Else { 1 })
5252
- name: Checkout
53-
uses: actions/checkout@v6.0.2
53+
uses: actions/checkout@v6.0.3
5454
with:
5555
fetch-depth: 0
5656
- name: Setup .NET SDK

.github/workflows/push-container-images.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
shell: pwsh
1616
steps:
1717
- name: Checkout
18-
uses: actions/checkout@v6.0.2
18+
uses: actions/checkout@v6.0.3
1919
- name: Validate build version
2020
id: validate
2121
uses: ./.github/actions/validate-version
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#:sdk Aspire.AppHost.Sdk@13.4.0
2+
#:package Particular.Aspire.Hosting.ServicePlatform@1.*
3+
#:package Aspire.Hosting.RabbitMQ@13.4.0
4+
5+
using Aspire.Hosting;
6+
using Particular.Aspire.Hosting.ServicePlatform.Transport;
7+
8+
var builder = DistributedApplication.CreateBuilder(args);
9+
10+
var transportUserName = builder.AddParameter("transportUserName", "guest", secret: true);
11+
var transportPassword = builder.AddParameter("transportPassword", "guest", secret: true);
12+
13+
var transport = builder.AddRabbitMQ("transport", transportUserName, transportPassword)
14+
.WithManagementPlugin(15672)
15+
.WithUrlForEndpoint("management", url => url.DisplayText = "RabbitMQ Management");
16+
17+
builder
18+
.AddParticularPlatform("particular")
19+
.WithTransportRabbitMQ(RabbitMqRouting.QuorumConventionalRouting, transport)
20+
.AddDefaultComponents();
21+
22+
//using positional param for now since there's only one
23+
if (args.Length > 1)
24+
{
25+
UsePrereleaseImage(builder, args[1]);
26+
} else {
27+
Console.WriteLine("No arguments provided, defaulting to published 'latest' images'");
28+
}
29+
30+
var app = builder.Build();
31+
32+
await app.RunAsync();
33+
34+
static void UsePrereleaseImage(IDistributedApplicationBuilder builder, string tag)
35+
{
36+
Console.WriteLine($"Using prerelease image tag: {tag}");
37+
foreach (var c in builder.Resources.OfType<ContainerResource>())
38+
{
39+
if (!c.TryGetLastAnnotation<ContainerImageAnnotation>(out var image))
40+
{
41+
continue;
42+
}
43+
44+
if (image.Image.StartsWith("particular/servicecontrol"))
45+
{
46+
builder
47+
.CreateResourceBuilder(c)
48+
.WithImage($"ghcr.io/{image.Image}", tag);
49+
}
50+
}
51+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"appHost": {
3+
"path": "AppHost.cs"
4+
}
5+
}

docs/testing.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,22 @@ Containers built by a PR and stored on GitHub Container Registry can be tested l
6363
* [Monitoring API](http://localhost:33633)
6464
* [ServicePulse (latest from Docker Hub)](http://localhost:9090)
6565
6. Tear down services using `docker compose down`.
66+
67+
68+
## Container tests using Aspire
69+
70+
The [Particular.Aspire.Hosting.ServicePlatform](https://github.com/Particular/Particular.Aspire.Hosting.ServicePlatform) package integrates the Particular Platform with the Aspire hosting platform. This package configures environment variables to attach the platform. There is a single file apphost in [`test-ghcr-tag-aspire`](/docs/test-ghcr-tag-aspire) to start up serviceconrol from a prerelease container image.
71+
72+
Containers built by a PR and stored on GitHub Container Registry can be tested locally:
73+
74+
1. Set up your github container registry credentials as described in the [Container tests](#container-tests) section above.
75+
2. Make sure you have the [Aspire CLI installed](https://aspire.dev/get-started/install-cli/).
76+
3. Run `aspire run docs/test-ghcr-tag-aspire/AppHost.cs -- tag` to start the application, where `tag` is the PR-based tag (in the form `pr-####`) to test. If no tag is provided, it will default to the `latest` tag.
77+
4. Once running you can open the dashboard from the link in the terminal, this dashboard will provide the assigned ports for each service.
78+
* RabbitMQ Management (Login: `guest`/`guest`)
79+
* RavenDB
80+
* ServiceControl API
81+
* Audit API
82+
* Monitoring API
83+
* ServicePulse (latest from Docker Hub)
84+
5. Aspire will automatically tear down the application when you exit the CLI process.

src/Directory.Packages.props

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,37 +16,36 @@
1616
<PackageVersion Include="Fody" Version="6.9.3" />
1717
<PackageVersion Include="GitHubActionsTestLogger" Version="3.0.4" />
1818
<PackageVersion Include="HdrHistogram" Version="2.5.0" />
19-
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.8" />
20-
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="10.0.8" />
21-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.8" />
22-
<PackageVersion Include="Microsoft.AspNetCore.SignalR.Client" Version="10.0.8" />
23-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.8" />
24-
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="10.0.8" />
25-
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.8" />
26-
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.8" />
27-
<PackageVersion Include="Microsoft.Extensions.Hosting.WindowsServices" Version="10.0.8" />
28-
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.8" />
29-
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="10.0.8" />
30-
<PackageVersion Include="Microsoft.Extensions.TimeProvider.Testing" Version="10.6.0" />
19+
<PackageVersion Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="10.0.9" />
20+
<PackageVersion Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="10.0.9" />
21+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.9" />
22+
<PackageVersion Include="Microsoft.AspNetCore.SignalR.Client" Version="10.0.9" />
23+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.9" />
24+
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="10.0.9" />
25+
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.9" />
26+
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.9" />
27+
<PackageVersion Include="Microsoft.Extensions.Hosting.WindowsServices" Version="10.0.9" />
28+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.9" />
29+
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="10.0.9" />
30+
<PackageVersion Include="Microsoft.Extensions.TimeProvider.Testing" Version="10.7.0" />
3131
<PackageVersion Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="8.18.0" />
3232
<PackageVersion Include="Microsoft.IdentityModel.Tokens" Version="8.18.0" />
3333
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.6.0" />
3434
<PackageVersion Include="Microsoft-WindowsAPICodePack-Shell" Version="1.1.5" />
3535
<PackageVersion Include="Mindscape.Raygun4Net.NetCore" Version="11.2.5" />
3636
<PackageVersion Include="NLog.Extensions.Logging" Version="6.1.3" />
37-
<PackageVersion Include="NServiceBus" Version="10.1.4" />
38-
<PackageVersion Include="NServiceBus.AcceptanceTesting" Version="10.1.4" />
37+
<PackageVersion Include="NServiceBus" Version="10.2.5" />
38+
<PackageVersion Include="NServiceBus.AcceptanceTesting" Version="10.2.5" />
3939
<PackageVersion Include="NServiceBus.AmazonSQS" Version="9.0.1" />
4040
<PackageVersion Include="NServiceBus.CustomChecks" Version="6.0.1" />
41-
<PackageVersion Include="NServiceBus.Extensions.Hosting" Version="4.0.1" />
42-
<PackageVersion Include="NServiceBus.Extensions.Logging" Version="4.0.1" />
41+
<PackageVersion Include="NServiceBus.Extensions.Logging" Version="4.1.0" />
4342
<PackageVersion Include="NServiceBus.Heartbeat" Version="6.0.1" />
4443
<PackageVersion Include="NServiceBus.Metrics" Version="6.0.1" />
4544
<PackageVersion Include="NServiceBus.Metrics.ServiceControl" Version="6.0.1" />
4645
<PackageVersion Include="NServiceBus.Persistence.NonDurable" Version="3.0.1" />
4746
<PackageVersion Include="NServiceBus.RabbitMQ" Version="11.2.1" />
4847
<PackageVersion Include="NServiceBus.SagaAudit" Version="6.0.1" />
49-
<PackageVersion Include="NServiceBus.Testing" Version="10.0.2" />
48+
<PackageVersion Include="NServiceBus.Testing" Version="10.1.0" />
5049
<PackageVersion Include="NServiceBus.Transport.AzureServiceBus" Version="6.3.0" />
5150
<PackageVersion Include="NServiceBus.Transport.AzureStorageQueues" Version="14.0.1" />
5251
<PackageVersion Include="NServiceBus.Transport.Msmq.Sources" Version="4.0.1" />
@@ -73,21 +72,25 @@
7372
<PackageVersion Include="ReactiveUI.WPF" Version="22.3.1" />
7473
<PackageVersion Include="Seq.Extensions.Logging" Version="9.0.0" />
7574
<PackageVersion Include="ServiceControl.Contracts" Version="5.1.0" />
76-
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="10.0.8" />
77-
<PackageVersion Include="System.Diagnostics.PerformanceCounter" Version="10.0.8" />
78-
<PackageVersion Include="System.DirectoryServices.AccountManagement" Version="10.0.8" />
75+
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="10.0.9" />
76+
<PackageVersion Include="System.Diagnostics.PerformanceCounter" Version="10.0.9" />
77+
<PackageVersion Include="System.DirectoryServices.AccountManagement" Version="10.0.9" />
7978
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="8.18.0" />
80-
<PackageVersion Include="System.Management" Version="10.0.8" />
79+
<PackageVersion Include="System.Management" Version="10.0.9" />
8180
<PackageVersion Include="System.Management.Automation" Version="7.6.1" />
8281
<PackageVersion Include="System.Reactive" Version="6.1.0" />
83-
<PackageVersion Include="System.Reflection.MetadataLoadContext" Version="10.0.8" />
84-
<PackageVersion Include="System.ServiceProcess.ServiceController" Version="10.0.8" />
82+
<PackageVersion Include="System.Reflection.MetadataLoadContext" Version="10.0.9" />
83+
<PackageVersion Include="System.ServiceProcess.ServiceController" Version="10.0.9" />
8584
<PackageVersion Include="Validar.Fody" Version="1.9.0" />
8685
<PackageVersion Include="Yarp.ReverseProxy" Version="2.3.0" />
8786
</ItemGroup>
8887
<ItemGroup Label="Versions to pin transitive references">
88+
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="10.0.9" />
8989
<PackageVersion Include="Microsoft.IdentityModel.Abstractions" Version="8.18.0" />
90-
<PackageVersion Include="System.IO.Hashing" Version="10.0.8" />
90+
<PackageVersion Include="System.Formats.Cbor" Version="10.0.9" />
91+
<PackageVersion Include="System.IO.Hashing" Version="10.0.9" />
92+
<PackageVersion Include="System.Security.Cryptography.Pkcs" Version="10.0.9" />
93+
<PackageVersion Include="System.Threading.RateLimiting" Version="10.0.9" />
9194
</ItemGroup>
9295
<ItemGroup>
9396
<GlobalPackageReference Include="Microsoft.Build.Artifacts" Version="6.1.63" />

0 commit comments

Comments
 (0)