Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
48 changes: 46 additions & 2 deletions .github/workflows/Master-Build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,52 @@ jobs:
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Test
run: dotnet test --no-build --verbosity normal

# Run unit tests first (no external dependencies)
- name: Run Unit Tests
run: dotnet test --no-build --verbosity normal --filter "Category=Unit"

# Start LocalStack container for integration tests
- name: Start LocalStack Container
run: |
docker run -d \
--name localstack \
-p 4566:4566 \
-e SERVICES=sqs,sns,kms,iam \
-e DEBUG=1 \
-e DOCKER_HOST=unix:///var/run/docker.sock \
localstack/localstack:latest

# Wait for LocalStack to be ready (max 60 seconds)
echo "Waiting for LocalStack to be ready..."
timeout 60 bash -c 'until docker exec localstack curl -s http://localhost:4566/_localstack/health | grep -q "\"sqs\": \"available\""; do sleep 2; done' || echo "LocalStack startup timeout"

# Display LocalStack health status
docker exec localstack curl -s http://localhost:4566/_localstack/health

# Configure AWS SDK to use LocalStack endpoints
- name: Configure AWS SDK for LocalStack
run: |
echo "AWS_ACCESS_KEY_ID=test" >> $GITHUB_ENV
echo "AWS_SECRET_ACCESS_KEY=test" >> $GITHUB_ENV
echo "AWS_DEFAULT_REGION=us-east-1" >> $GITHUB_ENV
echo "AWS_ENDPOINT_URL=http://localhost:4566" >> $GITHUB_ENV

# Run integration tests against LocalStack
- name: Run Integration Tests with LocalStack
run: dotnet test --no-build --verbosity normal --filter "Category=Integration&Category=RequiresLocalStack"
env:
AWS_ACCESS_KEY_ID: test
AWS_SECRET_ACCESS_KEY: test
AWS_DEFAULT_REGION: us-east-1
AWS_ENDPOINT_URL: http://localhost:4566

# Clean up LocalStack container
- name: Stop LocalStack Container
if: always()
run: |
docker stop localstack || true
docker rm localstack || true

run-Lint:
runs-on: ubuntu-latest
Expand Down
84 changes: 0 additions & 84 deletions .github/workflows/PR-CI.yml

This file was deleted.

72 changes: 0 additions & 72 deletions .github/workflows/Pre-release-CI.yml

This file was deleted.

24 changes: 21 additions & 3 deletions .github/workflows/Release-CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
branches:
- release/**
- release
tags:
- release-packages

permissions:
contents: read
Expand All @@ -14,6 +16,8 @@ jobs:
working-directory: ${{ github.workspace }}
github-token: '${{ secrets.GH_Packages }}'
nuget-token: '${{ secrets.NUGET_API_KEY }}'
# Check if this is a release-packages tag push
is-release: ${{ startsWith(github.ref, 'refs/tags/release-packages') }}

steps:
- name: Step-01 Install GitVersion
Expand All @@ -38,6 +42,7 @@ jobs:
echo "FullSemVer: ${{ steps.gitversion.outputs.FullSemVer }}"
echo "MajorMinorPatch: ${{ steps.gitversion.outputs.MajorMinorPatch }}"
echo "BranchName: ${{ steps.gitversion.outputs.BranchName }}"
echo "Is Release: ${{ env.is-release }}"

- name: Step-05 Install .NET
uses: actions/setup-dotnet@v3
Expand All @@ -48,26 +53,39 @@ jobs:
run: dotnet restore
working-directory: '${{ env.working-directory }}'

- name: Step-07 Build Version (Stable)
- name: Step-07 Build Version (Pre-release)
if: ${{ env.is-release != 'true' }}
run: dotnet build --configuration Release --no-restore -p:PackageVersion=${{ steps.gitversion.outputs.NuGetVersion }}
working-directory: '${{ env.working-directory }}'

- name: Step-07 Build Version (Release)
if: ${{ env.is-release == 'true' }}
run: dotnet build --configuration Release --no-restore -p:PackageVersion=${{ steps.gitversion.outputs.MajorMinorPatch }}
working-directory: '${{ env.working-directory }}'

- name: Step-08 Test Solution
run: dotnet test --configuration Release --no-build --no-restore --verbosity normal
working-directory: '${{ env.working-directory }}'

- name: Step-09 Create NuGet Package
- name: Step-09 Create NuGet Package (Pre-release)
if: ${{ env.is-release != 'true' }}
run: dotnet pack --configuration Release --no-build --output ./packages -p:PackageVersion=${{ steps.gitversion.outputs.NuGetVersion }}
working-directory: '${{ env.working-directory }}'

- name: Step-09 Create NuGet Package (Release)
if: ${{ env.is-release == 'true' }}
run: dotnet pack --configuration Release --no-build --output ./packages -p:PackageVersion=${{ steps.gitversion.outputs.MajorMinorPatch }}
working-directory: '${{ env.working-directory }}'

- name: Step-10 Publish to Github Packages
if: ${{ env.is-release == 'true' }}
run: |
dotnet tool install gpr --global
find ./packages -name "*.nupkg" -print -exec gpr push -k ${{ env.github-token }} {} \;
working-directory: '${{ env.working-directory }}'

- name: Step-11 Publish to NuGet.org
if: ${{ env.nuget-token != '' }}
if: ${{ 'false' && env.is-release == 'true' && env.nuget-token != '' }}
run: |
find ./packages -name "*.nupkg" -print -exec dotnet nuget push {} --skip-duplicate --api-key ${{ env.nuget-token }} --source https://api.nuget.org/v3/index.json \;
working-directory: '${{ env.working-directory }}'
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "pr-codeql"
name: "release-codeql"

on:
push:
Expand Down
22 changes: 22 additions & 0 deletions .kiro/hooks/docs-sync-hook.kiro.hook
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"enabled": true,
"name": "Documentation Sync",
"description": "Automatically updates README.md and docs/ folder when C# source files, project files, or configuration files are modified",
"version": "1",
"when": {
"type": "fileEdited",
"patterns": [
"*.cs",
"*.csproj",
"*.sln",
"*.json",
"*.yml",
"*.yaml",
"*.md"
]
},
"then": {
"type": "askAgent",
"prompt": "A source file has been modified. Please review the changes and update the relevant documentation in either the README.md or the appropriate files in the docs/ folder to reflect any new features, API changes, configuration updates, or architectural modifications. Focus on keeping the documentation accurate and up-to-date with the current codebase."
}
}
4 changes: 4 additions & 0 deletions .kiro/settings/mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"mcpServers": {
}
}
Loading
Loading