Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
143 commits
Select commit Hold shift + click to select a range
62e0143
core projects building.
DamianMac Sep 22, 2018
c5f3f21
fody working
DamianMac Sep 22, 2018
4053a8d
brought back in the nullguard stuff
DamianMac Sep 22, 2018
76ed181
deleting packages
DamianMac Sep 22, 2018
e5ed167
sln file works
DamianMac Sep 22, 2018
aadef47
added json serializer
DamianMac Sep 23, 2018
3afdf6b
Added in autofac support
DamianMac Sep 23, 2018
fe0f4a5
added serilog
DamianMac Sep 23, 2018
3e5da79
did a big rename to get stuff out of the way
DamianMac Sep 23, 2018
d268979
log4net support
DamianMac Sep 23, 2018
7af4660
added in memory transport
DamianMac Sep 23, 2018
4484c3e
Redis transport
DamianMac Sep 23, 2018
c0c1d15
moved tests folder
DamianMac Sep 23, 2018
444ec52
wip getting test projects to build. comment all the things
DamianMac Sep 23, 2018
077e94d
unit tests build
DamianMac Sep 23, 2018
18cc359
tests added to sln. integration and stress renamed
DamianMac Sep 23, 2018
0a63b9e
added cake
DamianMac Sep 23, 2018
5f46dbf
Removed Cake tools folder
JeremyCade Mar 27, 2019
d5f9d45
Ignore Tools folder
JeremyCade Apr 1, 2019
c3b3499
Remove old .NET FX libraries
JeremyCade Apr 1, 2019
6dd3ee9
Bump Autofac to 4.9.2
JeremyCade Apr 1, 2019
fe385a9
Bump Serilog to 2.8.0
JeremyCade Apr 1, 2019
5836b9f
Bumped Newtonsoft.Json to 12.0.1
JeremyCade Apr 1, 2019
74aa816
bump serilog version
DamianMac Apr 19, 2019
3570457
vscode launch
DamianMac Apr 20, 2019
9b48649
integration tests build now
DamianMac Apr 20, 2019
bc9ea0b
integration tests mostly pass, fody fun
DamianMac Apr 21, 2019
d9f9cfa
added redis transport back to integration tests
DamianMac Apr 21, 2019
a6dbe65
docker builds. WIP
DamianMac Apr 22, 2019
18453e8
test timeouts, and ignoring fody conventions for now
DamianMac Apr 22, 2019
6a04983
Increase timeout for running in container
DamianMac Apr 22, 2019
9e57b22
Use ConcurrentDictionary
DamianMac Apr 22, 2019
ecf38b5
cake for package builds
DamianMac May 2, 2019
7ac2093
more package stuff
DamianMac May 2, 2019
8619b78
case
DamianMac May 2, 2019
c97491b
directory case was confusing things
DamianMac May 2, 2019
bc891e2
Bumped build image to official Microsoft .NET Core 2.2 SDK
JeremyCade Jun 13, 2019
5e4ad31
Chore: Added a shell script to execute build / test pipeline on local…
JeremyCade Aug 26, 2019
0588062
Chore: Updated Autoface to 4.9.4
JeremyCade Aug 26, 2019
c843c4b
Chore: Updated Newtonsoft.Json to 12.0.2
JeremyCade Aug 26, 2019
64be774
Chore: Updated Fody and Fody Dependent packages
JeremyCade Aug 26, 2019
5b2fd7d
Chore: Updated Testing packages
JeremyCade Aug 26, 2019
f7872be
Chore: Update StackExchange.Redis from 2.0.571 to 2.0.601
JeremyCade Aug 26, 2019
4cebdbf
Merge pull request #281 from NimbusAPI/netcore-packagebump
DamianMac Aug 27, 2019
30997cc
Reverted: Harcourt flavoured ConcurrentDictionary
JeremyCade Aug 30, 2019
eadfd8d
ignore the rider, we're not booking Van Halen
DamianMac Sep 24, 2019
864eb1c
Merge branch 'netcore-take2' of https://github.com/NimbusAPI/Nimbus i…
DamianMac Sep 24, 2019
653b6c4
Merge branch 'netcore-take2' into netcore-between0andrace
DamianMac Sep 25, 2019
1ad4545
use concurrent dictionary inside threadsafe dictionary
DamianMac Sep 25, 2019
7d5a636
Streamline Docker build process
Dec 10, 2019
5129b92
WIP: Load test harness configuration from appsettings.json
Dec 10, 2019
639fa21
Exclude local development settings files from docker images
Dec 10, 2019
d04410b
Clean up images after running commands
Dec 10, 2019
78b1eef
WIP: Configuration loading from appsettings.json
Dec 12, 2019
8ac0cdd
Merge pull request #282 from uglybugger/netcore-take2
DamianMac Dec 12, 2019
0a90751
use command line they said
DamianMac Dec 12, 2019
e3e196f
Remove old Dockerfiles
uglybugger Dec 12, 2019
9fbb17a
call correct targets
DamianMac Dec 12, 2019
8189068
call correct targets
DamianMac Dec 12, 2019
98343a6
Flatten folder structure for Docker build
uglybugger Dec 12, 2019
3ba1d53
Restructure Dockerfile to support directory structure flattening
uglybugger Dec 12, 2019
17bcfcd
Move .vscode directory into src/ after directory flattening
uglybugger Dec 12, 2019
3b55fbe
Re-include integration tests project
Dec 12, 2019
bed442b
Rename stress tests project to match conventions. Not re-included yet.
Dec 12, 2019
3aa96f9
Update README with information on getting started with developing Nimbus
Dec 12, 2019
a0df6fc
Fix casing
Dec 12, 2019
b03cb44
Add development infrastructure information
Dec 12, 2019
7f4fd12
Adjust namespaces
uglybugger Dec 12, 2019
89853c3
adjust namespaces for unit tests
DamianMac Dec 12, 2019
3214586
Minor clean-up
uglybugger Dec 12, 2019
63f9a46
Fix docker-compose filename
uglybugger Dec 12, 2019
09ac261
Suppress warnings in test projects
uglybugger Dec 12, 2019
052f3d5
Reinstate assertion
uglybugger Dec 12, 2019
7b1a89e
Rename .nuspec file to match project name
uglybugger Dec 18, 2019
920b69c
Package projects as part of build, not as separate step.
uglybugger Dec 18, 2019
52cdf3d
Remove AssemblyInfo.cs generation from Cake script now that we can pa…
uglybugger Dec 18, 2019
f182d8c
Don't assert that the Then() method wasn't invoked; just let the test…
uglybugger Dec 18, 2019
8084a34
Reduce concurrency (not eliminate) in integration tests so that start…
uglybugger Dec 18, 2019
fc5c301
Re-add test adapter.
uglybugger Dec 18, 2019
a08446d
Suppress async warnings.
uglybugger Dec 18, 2019
d2b00e4
Make "Test" target run unit and integration tests. Separate target fo…
uglybugger Dec 18, 2019
4f2ca5b
Ignore crash dump files.
uglybugger Dec 18, 2019
c5505ef
Split out convention test running into its own build task so that we …
uglybugger Dec 18, 2019
95614fe
Fix broken convention tests.
uglybugger Dec 18, 2019
985478b
first stage
DamianMac Mar 13, 2020
46e0641
compiling
DamianMac Apr 18, 2020
0044f10
It runs...
DamianMac Apr 18, 2020
69a106b
working. mostly
DamianMac Apr 18, 2020
22ca55f
error handling in subscription client
DamianMac Apr 19, 2020
6f47847
handling not found conditions better. filtering
DamianMac Jun 2, 2020
ba888b6
wip
DamianMac Jun 2, 2020
3e9e472
working. Ported in Stack Cafe
DamianMac Jun 12, 2020
16d705f
changed queue to blocking collection
DamianMac Jun 12, 2020
a23b333
fixed up test configs and added nuspec
DamianMac Jun 12, 2020
59a8fcb
removed conn strings
DamianMac Jun 12, 2020
3756344
Asb core (#286)
DamianMac Jun 12, 2020
879e1c6
restructured projects. upgraded build system
DamianMac Jun 12, 2020
4759fae
Merge branch 'asb-core' into netcore-take2
DamianMac Jun 12, 2020
d021cf8
Updated build and project structure (#287)
DamianMac Jun 12, 2020
3305384
Merge branch 'netcore-take2' of https://github.com/NimbusAPI/Nimbus i…
DamianMac Jun 12, 2020
89939cf
cleanup
DamianMac Jun 12, 2020
8cc891b
Fixup for bad sln merge
DamianMac Jun 12, 2020
cfd278e
samples work with redis again (#290)
DamianMac Sep 3, 2020
f2d7719
Fix for #291 (#292)
DamianMac Sep 3, 2020
6f29166
Reliability fixes and race conditions (#293)
DamianMac Oct 1, 2020
7aa6539
Rebasing PR (#294)
DamianMac Oct 1, 2020
ab2ea69
Create ci.yml
DamianMac Mar 4, 2021
030d841
Bump log4net from 2.0.8 to 2.0.10 in /src/Nimbus.Logger.Log4net (#297)
dependabot[bot] Mar 4, 2021
e169443
bump service bus package to support .net 5
patrick-ellume Jun 4, 2021
3bac2ca
Added gitversion to github actions build (#300)
DamianMac Jun 14, 2021
a3a3ecd
edit gitversion
DamianMac Jun 14, 2021
b218cac
pass secrets properly
DamianMac Jun 14, 2021
9bc6240
Merge branch 'bus-version-bump' of https://github.com/dogfeeder/Nimbu…
DamianMac Jun 16, 2021
622b3cf
Merge branch 'dogfeeder-bus-version-bump' into develop
DamianMac Jun 17, 2021
72e2efd
all in on .net 5 (#301) +semver: minor
DamianMac Jun 24, 2021
5e3b18b
Large message redux (#302)
DamianMac Aug 18, 2021
6848123
port build infra directly to github actions
DamianMac Feb 26, 2022
f63b86d
yummy yaml
DamianMac Feb 26, 2022
efc6344
yaml formatting
DamianMac Feb 26, 2022
809ea99
install cake
DamianMac Feb 27, 2022
6d25200
global
DamianMac Feb 27, 2022
f7fb88a
use env vars
DamianMac Feb 27, 2022
effa1ff
Release Dotnet 5 / core branch to Nuget (#305)
DamianMac Sep 25, 2022
8258aa9
github secrets
DamianMac Sep 26, 2022
5cd6d03
Update redis client (#306)
DamianMac Dec 20, 2022
9694f37
fix missing comma
DamianMac Dec 20, 2022
1ccdea0
Back to nuget
DamianMac Sep 3, 2023
82762f7
Merge in AMQP
DamianMac Jan 23, 2026
f8ecf8e
Simplify integration tests and fix AMQP bugs found along the way
DamianMac Feb 24, 2026
dcdbcc7
Added SQL Server Transport
DamianMac Feb 27, 2026
6df236a
New build and release process
DamianMac Feb 27, 2026
b15fd64
Clean up project metadata for better nuget packages
DamianMac Feb 27, 2026
197214e
postgres transport
DamianMac Feb 27, 2026
fbc1cc6
cleanup work
DamianMac Feb 27, 2026
59ccb1d
Moved sln file
DamianMac Feb 27, 2026
3406745
sln cleanup
DamianMac Feb 27, 2026
724113b
readme tweak
DamianMac Feb 27, 2026
7b31907
path casing for amqp
DamianMac Feb 27, 2026
30983cb
pathing for stack cafe
DamianMac Feb 27, 2026
df32a51
nuspec clean, and directory pathing
DamianMac Feb 27, 2026
83cf3c6
creds for integration test workflow
DamianMac Feb 27, 2026
6dd3927
env vars for integration tests again
DamianMac Feb 27, 2026
56dc22f
removed too much. trying again
DamianMac Feb 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.git
**/.vs
**/.vscode
**/bin/*
**/obj/*
artifacts
dist
tools
**/appsettings.Development.json
44 changes: 44 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: CI

on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]

jobs:

build:

runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Setup dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
9.x

- name: Run the Cake script
uses: cake-build/cake-action@v3
with:
script-path: build.cake
target: ci
arguments: |
buildNumber: ${{ github.run_number }}

- name: Collect Package Artifacts
uses: actions/upload-artifact@v4
with:
name: nuget-packages
path: ./dist_package/Nimbus.*.nupkg

- name: Publish Test Results
uses: EnricoMi/publish-unit-test-result-action@v2
if: always()
with:
trx_files: ./dist_package/**/*.trx
159 changes: 159 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
name: Nightly Integration Tests

on:
schedule:
- cron: '0 2 * * *'
workflow_dispatch:

jobs:

redis:
name: Redis
runs-on: ubuntu-latest
env:
NIMBUS_TEST_TRANSPORT: Redis
TRANSPORTS__REDIS__CONNECTIONSTRING: localhost
services:
redis:
image: redis
ports:
- 6379:6379
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.x
- name: Run integration tests
uses: cake-build/cake-action@v3
with:
script-path: build.cake
target: NightlyTest
arguments: |
buildNumber: ${{ github.run_number }}

sqlserver:
name: SQL Server
runs-on: ubuntu-latest
env:
NIMBUS_TEST_TRANSPORT: SqlServer
TRANSPORTS__SQLSERVER__CONNECTIONSTRING: "Server=localhost,1433;Database=master;User Id=sa;Password=Nimbus_Dev_123!;TrustServerCertificate=true;"
services:
sqlserver:
image: mcr.microsoft.com/mssql/server:2022-latest
env:
SA_PASSWORD: Nimbus_Dev_123!
ACCEPT_EULA: Y
MSSQL_PID: Developer
ports:
- 1433:1433
options: >-
--health-cmd "/opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -P 'Nimbus_Dev_123!' -Q 'SELECT 1' -No"
--health-interval 10s
--health-timeout 5s
--health-retries 10
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.x
- name: Run integration tests
uses: cake-build/cake-action@v3
with:
script-path: build.cake
target: NightlyTest
arguments: |
buildNumber: ${{ github.run_number }}

postgres:
name: PostgreSQL
runs-on: ubuntu-latest
env:
NIMBUS_TEST_TRANSPORT: Postgres
TRANSPORTS__POSTGRES__CONNECTIONSTRING: Host=localhost;Port=5432;Database=nimbus;Username=nimbus;Password=Nimbus_Dev_123!
services:
postgres:
image: postgres:17
env:
POSTGRES_DB: nimbus
POSTGRES_USER: nimbus
POSTGRES_PASSWORD: Nimbus_Dev_123!
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U nimbus -d nimbus"
--health-interval 10s
--health-timeout 5s
--health-retries 10
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.x
- name: Run integration tests
uses: cake-build/cake-action@v3
with:
script-path: build.cake
target: NightlyTest
arguments: |
buildNumber: ${{ github.run_number }}

amqp:
name: AMQP (Artemis)
runs-on: ubuntu-latest
env:
NIMBUS_TEST_TRANSPORT: Amqp
TRANSPORTS__AMQP__BROKERURI: amqp://localhost:5672
TRANSPORTS__AMQP__USERNAME: admin
TRANSPORTS__AMQP__PASSWORD: admin
TRANSPORTS__AMQP__MANAGEMENTURI: http://localhost:8161
services:
artemis:
image: apache/activemq-artemis:latest
env:
ARTEMIS_USER: admin
ARTEMIS_PASSWORD: admin
ports:
- 5672:5672
- 8161:8161
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.x
- name: Run integration tests
uses: cake-build/cake-action@v3
with:
script-path: build.cake
target: NightlyTest
arguments: |
buildNumber: ${{ github.run_number }}

azure-service-bus:
name: Azure Service Bus
runs-on: ubuntu-latest
if: vars.AZURE_SERVICE_BUS_ENABLED == 'true'
env:
NIMBUS_TEST_TRANSPORT: AzureServiceBus
TRANSPORTS__AZURESERVICEBUS__CONNECTIONSTRING: ${{ secrets.AZURE_SERVICE_BUS_CONNECTION_STRING }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.x
- name: Run integration tests
uses: cake-build/cake-action@v3
with:
script-path: build.cake
target: NightlyTest
arguments: |
buildNumber: ${{ github.run_number }}
106 changes: 106 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
name: Release NuGet Packages

on:
workflow_dispatch:
inputs:
component:
description: 'Component to publish'
required: true
type: choice
options:
- core
- inprocess
- redis
- azure
- amqp
- sqlserver
- all

permissions:
contents: write # required to push git tags

jobs:

release:

runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Setup dotnet
uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.x

- name: Build, test, and collect packages
uses: cake-build/cake-action@v3
with:
script-path: build.cake
target: CI

- name: Push packages to NuGet and tag release
shell: bash
env:
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
COMPONENT: ${{ inputs.component }}
run: |
set -e
DIST=./dist_package

case "$COMPONENT" in
core)
GLOBS=("$DIST/Nimbus.[0-9]*.nupkg" "$DIST/Nimbus.MessageContracts.*.nupkg" "$DIST/Nimbus.InfrastructureContracts.*.nupkg")
;;
inprocess)
GLOBS=("$DIST/Nimbus.Transports.InProcess.*.nupkg")
;;
redis)
GLOBS=("$DIST/Nimbus.Transports.Redis.*.nupkg")
;;
azure)
GLOBS=("$DIST/Nimbus.Transports.AzureServiceBus.*.nupkg")
;;
amqp)
GLOBS=("$DIST/Nimbus.Transports.AMQP.*.nupkg")
;;
sqlserver)
GLOBS=("$DIST/Nimbus.Transports.SqlServer.*.nupkg")
;;
all)
GLOBS=("$DIST/Nimbus*.nupkg")
;;
esac

git config user.email "github-actions[bot]@users.noreply.github.com"
git config user.name "github-actions[bot]"

for GLOB in "${GLOBS[@]}"; do
for PKG in $GLOB; do
if [ -f "$PKG" ]; then
echo "Pushing $PKG"
dotnet nuget push "$PKG" \
--source https://api.nuget.org/v3/index.json \
--api-key "$NUGET_API_KEY" \
--skip-duplicate

# Derive tag from filename: Nimbus.Transports.AMQP.1.0.0.nupkg → Nimbus.Transports.AMQP/1.0.0
FILENAME=$(basename "$PKG" .nupkg)
VERSION=$(echo "$FILENAME" | grep -oP '\d+\.\d+\.\d+(-\S+)?$')
NAME="${FILENAME%.$VERSION}"
TAG="$NAME/$VERSION"
echo "Tagging $TAG"
git tag "$TAG" || echo "Tag $TAG already exists, skipping"
git push origin "$TAG" || echo "Tag $TAG already pushed, skipping"
fi
done
done

- name: Upload packages as artifact
uses: actions/upload-artifact@v4
with:
name: released-nuget-packages
path: ./dist_package/Nimbus*.nupkg
20 changes: 19 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,22 @@ _ReSharper.*
[Ll]ogs
*.ncrunchproject
.gitignore
.vs
.vs
.idea
*.stackdump

# Cake Bits
tools

#Mac stuff
.DS_Store


# build stuff
dist_package/
**/*/AssemblyInfo.cs
.config

.claude
data/
CLAUDE.md
Loading
Loading