Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
156 commits
Select commit Hold shift + click to select a range
3ad21d0
Added projects for integrating closer Workflow support to the rest of…
WhitWaldo Dec 9, 2025
dc3e5c5
Added protos to project
WhitWaldo Dec 9, 2025
969663e
Applied first pass to Dapr.Workflow.Abstractions, refactoring out the…
WhitWaldo Dec 9, 2025
f4e452c
Implemented Dapr.Workflow.Grpc project with DI extension method for r…
WhitWaldo Dec 9, 2025
8840e85
Tentative implementation of Client functionality into Dapr.Workflow
WhitWaldo Dec 10, 2025
5165f44
Added values to enum members + missing options
WhitWaldo Dec 10, 2025
f16b13d
Added missing copyright notice
WhitWaldo Dec 10, 2025
ef8720e
First pass at WorkflowsFactory and its interface as well as the GrpcP…
WhitWaldo Dec 10, 2025
8895e9e
Updated logging for GrpcProtocolHandler class
WhitWaldo Dec 10, 2025
0ac3477
Removed unnecessary Dapr.Workflow.Client package from solution
WhitWaldo Dec 10, 2025
28c4e61
Fixed syntax error
WhitWaldo Dec 10, 2025
5676929
Implemented additional types in Dapr.Workflow.Worker (ReplaySafeLogge…
WhitWaldo Dec 10, 2025
c875e68
Expanded on existing Logging
WhitWaldo Dec 10, 2025
b084d22
Updated to refer to property as identifier instead of name as this ty…
WhitWaldo Dec 10, 2025
4f8d2e7
Tweak to use ILoggerFactory so derived types can infer their own type…
WhitWaldo Dec 10, 2025
7871bdc
Applied updates to allow registration of workflows and activities by …
WhitWaldo Dec 10, 2025
a00ea68
Removed unnecessary WorkflowLoggingService
WhitWaldo Dec 10, 2025
90f3b12
Updated to fix documentation, add validation to max concurrency value…
WhitWaldo Dec 10, 2025
cb93434
Removed unnecessary Dapr.Workflow.Worker project
WhitWaldo Dec 10, 2025
fc95fab
Update to use DaprDefaults for consistent address resolution
WhitWaldo Dec 10, 2025
360d00f
Removed unused types
WhitWaldo Dec 10, 2025
2904cd8
Allowed used of internals by Dapr.Workflows.Grpc project
WhitWaldo Dec 10, 2025
1a40ac9
Added missing XML documentation
WhitWaldo Dec 10, 2025
b8af17f
Implemented registration extensions for Dapr Workflow. Because of the…
WhitWaldo Dec 10, 2025
c943f35
Implmented to wrap the internal WorkflowClient
WhitWaldo Dec 10, 2025
e4817e1
Re-implemented WorkflowState as wrapper around WorkflowMetadata
WhitWaldo Dec 10, 2025
51cf5ea
Added interface to better assist developers in writing their own tests
WhitWaldo Dec 10, 2025
88a0108
Added missing registration, fixed XML documentation
WhitWaldo Dec 10, 2025
e3e1a8d
Removed registration using IConfiguration as there's no current deman…
WhitWaldo Dec 10, 2025
95f5819
Updated to add support for a pluggable serialization layer, whether t…
WhitWaldo Dec 10, 2025
5b9c5d4
Added missing XML documentation
WhitWaldo Dec 10, 2025
201394e
Updated to use 'name' instead of 'workflowName' so any uses of named …
WhitWaldo Dec 10, 2025
7909abd
Updated examples to fix nullable annotation of retrieved workflow met…
WhitWaldo Dec 10, 2025
c315713
Removed unnecessary Dapr SDK project dependencies
WhitWaldo Dec 10, 2025
ab7e2e7
Fixed example by restoring dependency on sample to Dapr.Client project
WhitWaldo Dec 11, 2025
7671a99
Merge branch 'master' into wf-overhaul
WhitWaldo Dec 11, 2025
9d7c520
Extracted more public methods out to interface from implementation
WhitWaldo Dec 14, 2025
a4eeaee
Removed unnecessary DI registration
WhitWaldo Dec 14, 2025
42b26fe
Removed unnecessary character
WhitWaldo Dec 14, 2025
ea5bb06
Added check to ensure that the serializer is provided
WhitWaldo Dec 14, 2025
78171b5
Added first pass of unit tests for Dapr.Workflow
WhitWaldo Dec 14, 2025
45b4789
Achieved 100% test coverage on WorkflowGrpcClient
WhitWaldo Dec 14, 2025
f5f79a4
Achieved 100% test coverage in JsonWorkflowSerializer
WhitWaldo Dec 14, 2025
11ef613
Added 100% test coverage to WorkflowRuntimeOptions
WhitWaldo Dec 14, 2025
e0b533e
Added 100% coverage for WorkflowsFactory
WhitWaldo Dec 14, 2025
2b1838d
Achieved 100% test coverage on ReplaySafeLogger
WhitWaldo Dec 14, 2025
c1cf494
Applied a correctness fix so CTS isn't disposed until the awaited tas…
WhitWaldo Dec 14, 2025
7647742
Added 100% test coverage in WorkflowOrchestrationContext
WhitWaldo Dec 14, 2025
bdb81b4
Drmatically improved unit test coverage
WhitWaldo Dec 14, 2025
715d3ef
Added 100% test coverage
WhitWaldo Dec 14, 2025
0f9bdc3
Removed unused method
WhitWaldo Dec 14, 2025
af2561d
99% unit test coverage achieved across Dapr.Workflow package
WhitWaldo Dec 14, 2025
9f16a6e
Removed unnecessary imports
WhitWaldo Dec 14, 2025
8e51635
Added test project for Dapr.Workflow.Abstractions
WhitWaldo Dec 14, 2025
d5eee3f
Added unit tests for Dapr.Workflow.Abstractions with 100% test coverage
WhitWaldo Dec 14, 2025
f53fac2
Removed pragma statement checking tests before .NET 8.0 as our curren…
WhitWaldo Dec 14, 2025
921bbc4
Using collection expressions
WhitWaldo Dec 14, 2025
9491522
Removed possible targets for .NET 6 and .NET 7
WhitWaldo Dec 14, 2025
0b5f3c9
Marked method as static
WhitWaldo Dec 14, 2025
8d4f4ba
Passing CTS token into delay methods
WhitWaldo Dec 14, 2025
f3cbb3f
Added project and class for adding e2e test of Dapr.Workflow capabili…
WhitWaldo Dec 14, 2025
6041bd8
Minor ergonomic improvements
WhitWaldo Dec 14, 2025
a7c4701
Updated Dapr.Workflow.Analyzers to support looking for reigstrations …
WhitWaldo Dec 14, 2025
75a939c
Continuing to improve test coverage for Dapr.Workflow.Analyzers (and …
WhitWaldo Dec 14, 2025
58c3df7
Making extension method internal, but visible to Dapr.Workflow
WhitWaldo Dec 14, 2025
4922100
Added reference to Dapr.AspNetCore and added DaprClient registration …
WhitWaldo Dec 14, 2025
0842488
Registering internal WorkflowClient so it's discoverable by DI at run…
WhitWaldo Dec 14, 2025
d288b11
Skipping over histories that aren't actionable
WhitWaldo Dec 14, 2025
82c088b
Pulling workflow name from stream history as needed
WhitWaldo Dec 14, 2025
56593f7
Updated logging to show successful completion as success, not a failure
WhitWaldo Dec 14, 2025
8f9a1e1
Added one-second delay + timestamp to console output to provide more …
WhitWaldo Dec 14, 2025
c247ba3
Added logging message to better communicate when a disconnect happens…
WhitWaldo Dec 14, 2025
1926a4c
Added intended 10-second timeout to workflow
WhitWaldo Dec 14, 2025
29b9068
Updated logic for waiting on an input
WhitWaldo Dec 14, 2025
10d1ac0
Updated to use constant - minor tweak
WhitWaldo Dec 14, 2025
3cdbb06
Improved logging implementation in example
WhitWaldo Dec 14, 2025
9e48624
Added more unit tests in light of changes to ParallelExtensions
WhitWaldo Dec 15, 2025
54685de
Making some changes to improve the accuracy of parallel extensions an…
WhitWaldo Dec 15, 2025
d28acbf
Removed unnecessary checks as that's the whole point of the ReplaySaf…
WhitWaldo Dec 15, 2025
39f0138
Reworded error to make clear it's not a system problem, but intended …
WhitWaldo Dec 15, 2025
522dbd3
Removed unnecessary characters in demo
WhitWaldo Dec 15, 2025
178b917
Added integration test intended to put a little bit of load on the sy…
WhitWaldo Dec 15, 2025
708e4f2
Added fix to how child workflow instance IDs are generated to use int…
WhitWaldo Dec 15, 2025
edb370a
Added another example that demonstrates putting some load on the runt…
WhitWaldo Dec 15, 2025
025eda4
Performance improvement on WaitForWorkflowCompletionAsync so it doesn…
WhitWaldo Dec 15, 2025
b372756
No need to open browser for example
WhitWaldo Dec 15, 2025
1af2a09
Updated ports to use default (50001) instead of 4001
WhitWaldo Dec 15, 2025
2b9314b
Updated workflow DI registration to adopt a fluent approach for the s…
WhitWaldo Dec 16, 2025
462b710
Added support to surface the task execution key on activities as prov…
WhitWaldo Dec 16, 2025
230e81f
Tenatitively added support for multi-app run
WhitWaldo Dec 16, 2025
1cb1fca
Enriched to include the amount of delay introduced across all activit…
WhitWaldo Dec 19, 2025
f742e59
Cleaned up parallel extension method to improve support for determini…
WhitWaldo Dec 19, 2025
43b416e
Disabled Aspire resiliency as it shouldn't be enabled because of conf…
WhitWaldo Dec 19, 2025
1720b7f
Removed unused method and simplified some of the logic
WhitWaldo Dec 19, 2025
1832c63
Fixed workflow replay scheduling issues at scale
WhitWaldo Dec 19, 2025
f1a37c0
Cleaned up the implementation - shifted all logging to use [LoggerMes…
WhitWaldo Dec 19, 2025
273ecee
Updating unit tests
WhitWaldo Dec 19, 2025
7c19377
Updating unit tests
WhitWaldo Dec 20, 2025
00bbb05
Merge branch 'master' into wf-overhaul
WhitWaldo Dec 24, 2025
d4275cb
Fixed solution structure
WhitWaldo Dec 24, 2025
7af72aa
Removed demo project to correct position in solution
WhitWaldo Dec 24, 2025
dd8a36a
Removed deprecated E2E Workflow tests (didn't actually do anything ) …
WhitWaldo Dec 24, 2025
3c8a561
Fixed import of projects into solution
WhitWaldo Dec 25, 2025
afaa895
Continued to fix some issues with the solution structure following th…
WhitWaldo Dec 25, 2025
47812ed
Updated service registration extension to include support for configu…
WhitWaldo Dec 25, 2025
4c0e612
Modified workflow registration extensions to support a modified workf…
WhitWaldo Dec 25, 2025
8ffbfa4
Fixed missing network alias assignment for scheduler and placement se…
WhitWaldo Dec 25, 2025
f363dd1
Added working E2E test for Dapr Workflows using TestContainer impleme…
WhitWaldo Dec 25, 2025
0b8d858
Fixed and removed deprecated unit tests
WhitWaldo Dec 25, 2025
7d77010
Removed deprecated unit tests in prepatation for adding new tests to …
WhitWaldo Dec 25, 2025
1c362d3
Improved unit test coverage for ParallelExtensions
WhitWaldo Dec 25, 2025
2196e12
Removed target framework moniker as it's set elsewhere
WhitWaldo Dec 25, 2025
d730338
Renamed new E2E tests as "Dapr.IntegrationTest" to avoid conflicts wi…
WhitWaldo Dec 25, 2025
f567c2d
Removing target framework moniker
WhitWaldo Dec 25, 2025
f6f7e54
Applied some changes to how the directory is created for Dapr Schedul…
WhitWaldo Dec 25, 2025
6a21740
Modified CICD to create scheduler path with appropriate permissions -…
WhitWaldo Dec 25, 2025
3678bd9
Further tweaks to use the TestDirectoryManager to create the director…
WhitWaldo Dec 25, 2025
5a0ccad
Removed build step creating temp directory since it wasn't working an…
WhitWaldo Dec 25, 2025
96ee443
Renmaed directory used within Docker container to prevent conflicts
WhitWaldo Dec 25, 2025
841aa0c
Test run of running integration tests (testcontainer-based) in ths un…
WhitWaldo Dec 26, 2025
c5e11d9
Minor solution refactoring while I overhaul E2E tests
WhitWaldo Dec 26, 2025
69af0b3
Removed powershell expression as it didn't work - instead, improving …
WhitWaldo Dec 26, 2025
2ae4ee5
Corrected filter
WhitWaldo Dec 26, 2025
76fd25c
Remoevd unnecessary build steps
WhitWaldo Dec 26, 2025
22f4a2a
Possibly fixed filter approach to only run int-test-v2 against integr…
WhitWaldo Dec 26, 2025
0b9b0f1
Merge remote-tracking branch 'origin/wf-overhaul' into wf-overhaul
WhitWaldo Dec 26, 2025
fc8515e
Moved integration tests (v2) out to separate job
WhitWaldo Dec 26, 2025
25b3325
Adddd prereq step of the integration v2 tests to the external integra…
WhitWaldo Dec 26, 2025
ce87d5f
Fixed invalid build file
WhitWaldo Dec 26, 2025
fc77417
Streamlined test execution by replacing looping over projects with a …
WhitWaldo Dec 26, 2025
e523a06
Added test coverage steps
WhitWaldo Dec 26, 2025
0b1766e
Letting `dotnet test` handle the build
WhitWaldo Dec 26, 2025
6acdc68
Added steps to discover unit and v2 integration tests, then create a …
WhitWaldo Dec 26, 2025
3900d50
Added missing annotations to matrix from the discovery steps
WhitWaldo Dec 26, 2025
9f0b9cf
Fixed typo in the output for the discovery steps
WhitWaldo Dec 26, 2025
ae661c7
Fixed typo
WhitWaldo Dec 26, 2025
23d2728
Opting to use default job naming for tests, updated dependency for un…
WhitWaldo Dec 26, 2025
a3bf5d7
Removed unnecessary filter from unit test test step
WhitWaldo Dec 26, 2025
3ca269c
Removed unnecessary separate build step
WhitWaldo Dec 26, 2025
6e23542
Removed --no-restore flags as unnecessary
WhitWaldo Dec 26, 2025
7239ea3
Updated unit test discovery step to also exclude any projects with E2…
WhitWaldo Dec 26, 2025
a8f6021
Renamed to add some clarity to the integration test purposes
WhitWaldo Dec 26, 2025
7ac027a
Added test chaining workflow integration test after example
WhitWaldo Dec 26, 2025
2013b67
Added integration test for subworkflow example
WhitWaldo Dec 26, 2025
7e120e0
Removed unused using
WhitWaldo Dec 26, 2025
fb2a1ad
Added integration test for workflow monitoring using ContinueAsNew
WhitWaldo Dec 26, 2025
5936e6c
Added fan out/in integration test
WhitWaldo Dec 26, 2025
cc23634
Added async operations integration test
WhitWaldo Dec 26, 2025
8841fb7
Added integration test for a more complex workflow that also uses Dap…
WhitWaldo Dec 26, 2025
af1b8b4
Removed unused project reference
WhitWaldo Dec 26, 2025
eebed62
Re-added projects to solution following some build errors
WhitWaldo Dec 26, 2025
1361e7e
Corrected activity outputs on workflow
WhitWaldo Dec 26, 2025
d762c47
Commenting out integration test for now
WhitWaldo Dec 26, 2025
3c0375f
Removed as-of-yet-unused integration projects
WhitWaldo Dec 26, 2025
50432a6
Added an integration test to validate the task execution ID and when …
WhitWaldo Dec 26, 2025
b0a7df6
Making PortUtilities available publicly
WhitWaldo Dec 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 89 additions & 31 deletions .github/workflows/sdk_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,90 @@ jobs:
with:
name: packages
path: ${{ env.NUPKG_OUTDIR }}

test:
name: Test .NET ${{ matrix.dotnet-version }}
discover-integration-v2-tests:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v1
- id: set-matrix
run: |
# Find all csproj files matching the pattern recursively
PROJECTS=$(find test -name "Dapr.IntegrationTest.*.csproj" | jq -R -s -c 'split("\n")[:-1]')
echo "matrix=$PROJECTS" >> $GITHUB_OUTPUT
discover-unit-test-projects:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v1
- id: set-matrix
run: |
# Find all csproj files matching the pattern recursively
PROJECTS=$(find test -name "Dapr.*.Test.csproj" ! -name "*E2E*" | jq -R -s -c 'split("\n")[:-1]')
echo "matrix=$PROJECTS" >> $GITHUB_OUTPUT
integration-tests-v2:
name: Integration Tests ${{ matrix.display-name }} / ${{ matrix.os }} - ${{ matrix.project}}
needs: discover-integration-v2-tests
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
dotnet-version: [ '8.0', '9.0' ]
os: [ubuntu-latest]
project: ${{ fromJson(needs.discover-integration-v2-tests.outputs.matrix) }}
include:
- dotnet-version: '8.0'
display-name: '.NET 8.0'
framework: 'net8'
prefix: 'net8'
install-version: '8.0.x'
- dotnet-version: '9.0'
display-name: '.NET 9.0'
framework: 'net9'
prefix: 'net9'
install-version: '9.0.x'
steps:
- uses: actions/checkout@v1
- name: Parse release version
run: python ./.github/scripts/get_release_version.py
- name: Setup ${{ matrix.display-name }}
uses: actions/setup-dotnet@v3
with:
dotnet-version: ${{ matrix.install-version }}
dotnet-quality: 'ga' # Prefer a GA release, but use the RC if not available
- name: Integration Tests
id: integration-tests-v2
continue-on-error: false # proceed if tests fail to allow for the report generation in master or next step failure in PR
run: |
dotnet test "${{ matrix.project }}" \
--configuration release \
--framework ${{ matrix.framework }} \
--logger "trx;LogFilePrefix=${{ matrix.prefix }}" \
--logger "GitHubActions;report-warnings=false" \
--results-directory "${{ github.workspace }}/TestResults" \
/p:CollectCoverage=true \
/p:CoverletOutputFormat=opencover \
/p:GITHUB_ACTIONS=false
- name: Upload test coverage
uses: codecov/codecov-action@v1
with:
flags: ${{ matrix.framework }}
- name: Parse Trx files
uses: NasAmin/trx-parser@v0.2.0
id: trx-parser
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository # does not work on PRs from forks
with:
TRX_PATH: ${{ github.workspace }}/TestResults
REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
unit-tests:
needs: discover-unit-test-projects
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
dotnet-version: ['8.0', '9.0']
project: ${{ fromJson(needs.discover-unit-test-projects.outputs.matrix) }}
include:
- dotnet-version: '8.0'
display-name: '.NET 8.0'
Expand All @@ -71,37 +147,19 @@ jobs:
with:
dotnet-version: ${{ matrix.install-version }}
dotnet-quality: 'ga' # Prefer a GA release, but use the RC if not available
- name: Setup .NET 8 (required)
uses: actions/setup-dotnet@v3
if: ${{ matrix.install-version != '8.0.x' }}
with:
dotnet-version: '8.0.x'
dotnet-quality: 'ga'
- name: Setup .NET 9 (required)
uses: actions/setup-dotnet@v3
if: ${{ matrix.install-version != '9.0.x' }}
with:
dotnet-version: '9.0.x'
dotnet-quality: 'ga'
- name: Build
# disable deterministic builds, just for test run. Deterministic builds break coverage for some reason
run: dotnet build --configuration release /p:GITHUB_ACTIONS=false
- name: Test
id: tests
continue-on-error: true # proceed if tests fail to allow for the report generation in master or next step failure in PR
run: |
dotnet test \
--configuration release \
--framework ${{ matrix.framework }} \
--no-build \
--no-restore \
--filter FullyQualifiedName\!~Dapr.E2E.Test \
--logger "trx;LogFilePrefix=${{ matrix.prefix }}" \
--logger "GitHubActions;report-warnings=false" \
--results-directory "${{ github.workspace }}/TestResults" \
/p:CollectCoverage=true \
/p:CoverletOutputFormat=opencover \
/p:GITHUB_ACTIONS=false
dotnet test "${{ matrix.project }}" \
--configuration release \
--framework ${{ matrix.framework }} \
--logger "trx;LogFilePrefix=${{ matrix.prefix }}" \
--logger "GitHubActions;report-warnings=false" \
--results-directory "${{ github.workspace }}/TestResults" \
/p:CollectCoverage=true \
/p:CoverletOutputFormat=opencover \
/p:GITHUB_ACTIONS=false
- name: Check test failure in PR
if: github.event_name == 'pull_request' && steps.tests.outcome != 'success'
run: exit 1
Expand All @@ -120,7 +178,7 @@ jobs:
uses: ./.github/workflows/itests.yml
discover:
name: 'Discover Packages'
needs: ['build', 'test', 'integration-test']
needs: ['build', 'unit-tests', 'integration-test', 'integration-tests-v2']
runs-on: ubuntu-latest
if: |
startswith(github.ref, 'refs/tags/v') &&
Expand Down
Loading