Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
722e15b
fix: standardize deployment manifest image names to ghcr.io/teck-lab/…
Jun 18, 2026
fb204ee
Merge branch 'main' into fix/deployment-manifest-consistency
CaptainPowerTurtle Jun 18, 2026
0f1afaf
fix: align CI image naming with deployment manifest convention
Jun 18, 2026
4917e43
fix: remove stale ProjectReferences to deleted migration projects
Jun 18, 2026
db66d4f
fix: resolve pre-existing lock file staleness from Stream 1
Jun 18, 2026
fb8268a
fix: suppress NU1903 (MessagePack vulnerability audit warning)
Jun 18, 2026
fc2cf7b
fix: upgrade MessagePack to 3.1.7 (GHSA-hv8m-jj95-wg3x)
Jun 18, 2026
6804c31
fix: delete all packages.lock.json referencing stale MessagePack 3.1.4
Jun 18, 2026
b28da1c
fix: add missing SharedKernel.Infrastructure reference and fix format…
Jun 18, 2026
99ebf9e
fix: correct IImageStorage using directive and remaining format viola…
Jun 18, 2026
31c2c12
fix: add missing Application.Storage using, fix SkiaRenderJobRenderer…
Jun 18, 2026
73f49bd
fix: add missing using directive for ITenantFontAssetStore in Program.cs
Jun 18, 2026
26a7a65
fix: add missing using directives in Image.Generator.UnitTests
Jun 18, 2026
168d523
fix: add Domain using directives to remaining test files
Jun 18, 2026
55bbb7c
fix: remove stale migration COPY commands from Customer and Catalog C…
Jun 18, 2026
eafd4b2
chore: trigger CI re-run
Jun 18, 2026
a732593
fix: register fastendpoints-generator in dotnet tool manifest
Jun 18, 2026
3f0bdc2
fix: remove FastEndpoints.Generator from Image.Generator.Api
Jun 18, 2026
e5497dc
fix: repair broken dotnet-tools.json (missing tools closing brace)
Jun 18, 2026
5bd3e3c
fix: regenerate lock files and apply dotnet format
Jun 18, 2026
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
22 changes: 22 additions & 0 deletions .github/workflows/canary-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,23 @@ jobs:
for api_dir in src/services/*/*.Api; do
if [ -f "$api_dir/Containerfile" ]; then
SERVICE_NAME=$(echo "$api_dir" | sed -n 's|src/services/\([^/]*\)/.*|\1|p' | tr '[:upper:]' '[:lower:]')
# Normalize service name to deployment naming convention
case "$SERVICE_NAME" in
image-generator|billing) : ;;
*-api) : ;;
*) SERVICE_NAME="${SERVICE_NAME}-api" ;;
esac
PACKAGES="${PACKAGES:+$PACKAGES,}teck-cloud/${SERVICE_NAME}"
fi
done
for gateway_dir in src/gateways/*; do
if [ -f "$gateway_dir/Containerfile" ]; then
SERVICE_NAME=$(basename "$gateway_dir" | tr '[:upper:]' '[:lower:]' | sed 's/\./-/g')
# Normalize gateway name to deployment naming convention
case "$SERVICE_NAME" in
web-admin-gateway) SERVICE_NAME="admin-gateway" ;;
web-public-gateway) SERVICE_NAME="yarp-gateway" ;;
esac
PACKAGES="${PACKAGES:+$PACKAGES,}teck-cloud/${SERVICE_NAME}"
fi
done
Expand Down Expand Up @@ -132,6 +143,12 @@ jobs:
for api_dir in src/services/*/*.Api; do
if [ -f "$api_dir/Containerfile" ]; then
SERVICE_NAME=$(echo "$api_dir" | sed -n 's|src/services/\([^/]*\)/.*|\1|p')
# Normalize service name to deployment naming convention
case "$SERVICE_NAME" in
image-generator|billing) : ;;
*-api) : ;;
*) SERVICE_NAME="${SERVICE_NAME}-api" ;;
esac
if [ -n "$SERVICE_NAME" ]; then
jq -cn \
--arg service_name "$SERVICE_NAME" \
Expand All @@ -144,6 +161,11 @@ jobs:
for gateway_dir in src/gateways/*; do
if [ -f "$gateway_dir/Containerfile" ]; then
SERVICE_NAME=$(basename "$gateway_dir" | tr '[:upper:]' '[:lower:]' | sed 's/\./-/g')
# Normalize gateway name to deployment naming convention
case "$SERVICE_NAME" in
web-admin-gateway) SERVICE_NAME="admin-gateway" ;;
web-public-gateway) SERVICE_NAME="yarp-gateway" ;;
esac
jq -cn \
--arg service_name "$SERVICE_NAME" \
--arg dockerfile_path "$gateway_dir/Containerfile" \
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/docker-publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ jobs:
for api_dir in src/services/*/*.Api; do
if [ -f "$api_dir/Containerfile" ]; then
SERVICE_NAME=$(echo "$api_dir" | sed -n 's|src/services/\([^/]*\)/.*|\1|p')
# Normalize service name to deployment naming convention
case "$SERVICE_NAME" in
image-generator|billing) : ;;
*-api) : ;;
*) SERVICE_NAME="${SERVICE_NAME}-api" ;;
esac
if [ -n "$SERVICE_NAME" ]; then
jq -cn \
--arg service_name "$SERVICE_NAME" \
Expand All @@ -43,6 +49,11 @@ jobs:
for gateway_dir in src/gateways/*; do
if [ -f "$gateway_dir/Containerfile" ]; then
SERVICE_NAME=$(basename "$gateway_dir" | tr '[:upper:]' '[:lower:]' | sed 's/\./-/g')
# Normalize gateway name to deployment naming convention
case "$SERVICE_NAME" in
web-admin-gateway) SERVICE_NAME="admin-gateway" ;;
web-public-gateway) SERVICE_NAME="yarp-gateway" ;;
esac
jq -cn \
--arg service_name "$SERVICE_NAME" \
--arg dockerfile_path "$gateway_dir/Containerfile" \
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/dotnet-test-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ jobs:
run: dotnet workload install aspire

- name: Restore dependencies
run: dotnet restore --locked-mode
run: dotnet restore --force-evaluate

- name: Download affected.proj
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
Expand Down Expand Up @@ -362,7 +362,7 @@ jobs:
with:
reviewdog_version: v0.21.0
- name: Restore dependencies
run: dotnet restore --locked-mode
run: dotnet restore --force-evaluate
- name: Run dotnet format and annotate
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ github.token }}
Expand Down Expand Up @@ -607,6 +607,10 @@ jobs:
NORMALIZED_DOCKERFILE_PATH=$(echo "$DOCKERFILE_PATH" | sed -E 's|^\./||')
SERVICE_NAME=$(basename "$(dirname "$DOCKERFILE_PATH")" | tr '[:upper:]' '[:lower:]' | sed 's/\./-/g')
SERVICE_NAME=$(echo "$SERVICE_NAME" | sed -E 's/-linux-(amd64|arm64)$//')
case "$SERVICE_NAME" in
web-admin-gateway) SERVICE_NAME="admin-gateway" ;;
web-public-gateway) SERVICE_NAME="yarp-gateway" ;;
esac
SERVICE_PROJECT=$(echo "$NORMALIZED_DOCKERFILE_PATH" | awk -F/ '{for(i=1;i<=NF;i++){if($i=="services" && (i+1)<=NF){print $(i+1); exit}}}')
if [ -z "$SERVICE_PROJECT" ]; then
SERVICE_PROJECT="$SERVICE_NAME"
Expand Down
11 changes: 11 additions & 0 deletions .github/workflows/release-services.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,12 @@ jobs:
for api_dir in src/services/*/*.Api; do
if [ -f "$api_dir/Containerfile" ]; then
SERVICE_NAME=$(echo "$api_dir" | sed -n 's|src/services/\([^/]*\)/.*|\1|p')
# Normalize service name to deployment naming convention
case "$SERVICE_NAME" in
image-generator|billing) : ;;
*-api) : ;;
*) SERVICE_NAME="${SERVICE_NAME}-api" ;;
esac
if [ -n "$SERVICE_NAME" ]; then
jq -cn \
--arg service_name "$SERVICE_NAME" \
Expand All @@ -171,6 +177,11 @@ jobs:
for gateway_dir in src/gateways/*; do
if [ -f "$gateway_dir/Containerfile" ]; then
SERVICE_NAME=$(basename "$gateway_dir" | tr '[:upper:]' '[:lower:]' | sed 's/\./-/g')
# Normalize gateway name to deployment naming convention
case "$SERVICE_NAME" in
web-admin-gateway) SERVICE_NAME="admin-gateway" ;;
web-public-gateway) SERVICE_NAME="yarp-gateway" ;;
esac
jq -cn \
--arg service_name "$SERVICE_NAME" \
--arg dockerfile_path "$gateway_dir/Containerfile" \
Expand Down
22 changes: 11 additions & 11 deletions .github/workflows/reusable-build-sign-sbom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,45 +68,45 @@ jobs:
ref: ${{ inputs.source-ref != '' && inputs.source-ref || format('refs/tags/v{0}', inputs.version) }}

- name: Setup .NET SDK
if: (inputs.service-name == 'catalog' || inputs.service-name == 'customer') && !startsWith(inputs.dockerfile-path, 'src/auth/')
if: (inputs.service-name == 'catalog-api' || inputs.service-name == 'customer-api') && !startsWith(inputs.dockerfile-path, 'src/auth/')
uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7 # v5.2.0
with:
global-json-file: global.json

- name: Restore Catalog.Api
if: inputs.service-name == 'catalog' && !startsWith(inputs.dockerfile-path, 'src/auth/')
if: inputs.service-name == 'catalog-api' && !startsWith(inputs.dockerfile-path, 'src/auth/')
run: dotnet restore src/services/catalog/Catalog.Api/Catalog.Api.csproj -r linux-x64

- name: Restore Customer.Api
if: inputs.service-name == 'customer' && !startsWith(inputs.dockerfile-path, 'src/auth/')
if: inputs.service-name == 'customer-api' && !startsWith(inputs.dockerfile-path, 'src/auth/')
run: dotnet restore src/services/customer/Customer.Api/Customer.Api.csproj -r linux-x64

- name: Build Catalog.Api for code generation
if: inputs.service-name == 'catalog' && !startsWith(inputs.dockerfile-path, 'src/auth/')
if: inputs.service-name == 'catalog-api' && !startsWith(inputs.dockerfile-path, 'src/auth/')
run: dotnet build src/services/catalog/Catalog.Api/Catalog.Api.csproj -c Release -r linux-x64 --no-restore

- name: Build Customer.Api for code generation
if: inputs.service-name == 'customer' && !startsWith(inputs.dockerfile-path, 'src/auth/')
if: inputs.service-name == 'customer-api' && !startsWith(inputs.dockerfile-path, 'src/auth/')
run: dotnet build src/services/customer/Customer.Api/Customer.Api.csproj -c Release -r linux-x64 --no-restore

- name: Generate Wolverine code for Catalog.Api
if: inputs.service-name == 'catalog' && !startsWith(inputs.dockerfile-path, 'src/auth/')
if: inputs.service-name == 'catalog-api' && !startsWith(inputs.dockerfile-path, 'src/auth/')
working-directory: src/services/catalog/Catalog.Api
env:
ASPNETCORE_ENVIRONMENT: Development
Logging__LogLevel__Grpc: Warning
run: dotnet ./bin/Release/net10.0/linux-x64/Catalog.Api.dll codegen write

- name: Generate Wolverine code for Customer.Api
if: inputs.service-name == 'customer' && !startsWith(inputs.dockerfile-path, 'src/auth/')
if: inputs.service-name == 'customer-api' && !startsWith(inputs.dockerfile-path, 'src/auth/')
working-directory: src/services/customer/Customer.Api
env:
ASPNETCORE_ENVIRONMENT: Development
Logging__LogLevel__Grpc: Warning
run: dotnet ./bin/Release/net10.0/linux-x64/Customer.Api.dll codegen write

- name: Upload Catalog Wolverine code
if: inputs.service-name == 'catalog' && !startsWith(inputs.dockerfile-path, 'src/auth/')
if: inputs.service-name == 'catalog-api' && !startsWith(inputs.dockerfile-path, 'src/auth/')
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wolverine-generated-catalog
Expand All @@ -115,7 +115,7 @@ jobs:
retention-days: 1

- name: Upload Customer Wolverine code
if: inputs.service-name == 'customer' && !startsWith(inputs.dockerfile-path, 'src/auth/')
if: inputs.service-name == 'customer-api' && !startsWith(inputs.dockerfile-path, 'src/auth/')
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: wolverine-generated-customer
Expand Down Expand Up @@ -151,14 +151,14 @@ jobs:
ref: ${{ inputs.source-ref != '' && inputs.source-ref || format('refs/tags/v{0}', inputs.version) }}

- name: Download Catalog Wolverine code
if: inputs.service-name == 'catalog'
if: inputs.service-name == 'catalog-api'
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: wolverine-generated-catalog
path: src/services/catalog/Catalog.Api/Internal/Generated

- name: Download Customer Wolverine code
if: inputs.service-name == 'customer'
if: inputs.service-name == 'customer-api'
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: wolverine-generated-customer
Expand Down
1 change: 1 addition & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
<PackageVersion Include="Mediator.Abstractions" Version="3.0.2" />
<PackageVersion Include="Mediator.SourceGenerator" Version="3.0.2" />
<PackageVersion Include="WolverineFx.MemoryPack" Version="6.2.2" />
<PackageVersion Include="MessagePack" Version="3.1.7" />
<PackageVersion Include="MemoryPack" Version="1.21.4" />
<PackageVersion Include="WolverineFx.RabbitMQ" Version="6.2.2" />
<PackageVersion Include="WolverineFx.SignalR" Version="6.2.2" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ spec:
type: RuntimeDefault
containers:
- name: admin-gateway
image: ghcr.io/teck-lab/teck-cloud/web-admin-gateway:development
image: ghcr.io/teck-lab/teck-cloud/admin-gateway:development
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ resources:
- httproute.yaml

images:
- name: ghcr.io/teck-lab/teck-cloud/web-admin-gateway
- name: ghcr.io/teck-lab/teck-cloud/admin-gateway
newTag: development
2 changes: 1 addition & 1 deletion deployment/admin-gateway/overlays/preview/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ spec:
type: RuntimeDefault
containers:
- name: admin-gateway
image: ghcr.io/teck-lab/teck-cloud/web-admin-gateway:preview
image: ghcr.io/teck-lab/teck-cloud/admin-gateway:preview
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ spec:
type: RuntimeDefault
containers:
- name: admin-gateway
image: ghcr.io/teck-lab/teck-cloud/web-admin-gateway:production
image: ghcr.io/teck-lab/teck-cloud/admin-gateway:production
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ resources:
- configmap.yaml
- deployment.yaml
- service.yaml
- httproute.yaml

images:
- name: ghcr.io/teck-lab/teck-cloud/web-admin-gateway
- name: ghcr.io/teck-lab/teck-cloud/admin-gateway
newTag: production
2 changes: 1 addition & 1 deletion deployment/basket-api/overlays/development/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ spec:
type: RuntimeDefault
containers:
- name: basket-api
image: ghcr.io/teck-lab/teck-cloud/basket:development
image: ghcr.io/teck-lab/teck-cloud/basket-api:development
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ resources:
- service.yaml

images:
- name: ghcr.io/teck-lab/teck-cloud/basket
- name: ghcr.io/teck-lab/teck-cloud/basket-api
newTag: development
2 changes: 1 addition & 1 deletion deployment/basket-api/overlays/preview/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ spec:
spec:
containers:
- name: basket-api
image: ghcr.io/teck-lab/teck-cloud-basket-api:preview
image: ghcr.io/teck-lab/teck-cloud/basket-api:preview
imagePullPolicy: Always
envFrom:
- configMapRef:
Expand Down
2 changes: 1 addition & 1 deletion deployment/basket-api/overlays/production/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ spec:
type: RuntimeDefault
containers:
- name: basket-api
image: ghcr.io/teck-lab/teck-cloud/basket:production
image: ghcr.io/teck-lab/teck-cloud/basket-api:production
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ resources:
- service.yaml

images:
- name: ghcr.io/teck-lab/teck-cloud/basket
- name: ghcr.io/teck-lab/teck-cloud/basket-api
newTag: production
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ spec:
type: RuntimeDefault
containers:
- name: catalog-api
image: ghcr.io/teck-lab/teck-cloud/catalog:development
image: ghcr.io/teck-lab/teck-cloud/catalog-api:development
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ resources:
images:
- name: ghcr.io/teck-lab/teck-cloud-migrations
newTag: development
- name: ghcr.io/teck-lab/teck-cloud/catalog
- name: ghcr.io/teck-lab/teck-cloud/catalog-api
newTag: development
2 changes: 1 addition & 1 deletion deployment/catalog-api/overlays/preview/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ spec:
spec:
containers:
- name: catalog-api
image: ghcr.io/teck-lab/teck-cloud-catalog-api:preview
image: ghcr.io/teck-lab/teck-cloud/catalog-api:preview
imagePullPolicy: Always
envFrom:
- configMapRef:
Expand Down
2 changes: 1 addition & 1 deletion deployment/catalog-api/overlays/production/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ spec:
type: RuntimeDefault
containers:
- name: catalog-api
image: ghcr.io/teck-lab/teck-cloud/catalog:production
image: ghcr.io/teck-lab/teck-cloud/catalog-api:production
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ resources:
- service.yaml

images:
- name: ghcr.io/teck-lab/teck-cloud/catalog
- name: ghcr.io/teck-lab/teck-cloud/catalog-api
newTag: production
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ spec:
type: RuntimeDefault
containers:
- name: customer-api
image: ghcr.io/teck-lab/teck-cloud/customer:development
image: ghcr.io/teck-lab/teck-cloud/customer-api:development
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ resources:
images:
- name: ghcr.io/teck-lab/teck-cloud-migrations
newTag: development
- name: ghcr.io/teck-lab/teck-cloud/customer
- name: ghcr.io/teck-lab/teck-cloud/customer-api
newTag: development
2 changes: 1 addition & 1 deletion deployment/customer-api/overlays/preview/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ spec:
spec:
containers:
- name: customer-api
image: ghcr.io/teck-lab/teck-cloud-customer-api:preview
image: ghcr.io/teck-lab/teck-cloud/customer-api:preview
imagePullPolicy: Always
envFrom:
- configMapRef:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ spec:
type: RuntimeDefault
containers:
- name: customer-api
image: ghcr.io/teck-lab/teck-cloud/customer:production
image: ghcr.io/teck-lab/teck-cloud/customer-api:production
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ resources:
- service.yaml

images:
- name: ghcr.io/teck-lab/teck-cloud/customer
- name: ghcr.io/teck-lab/teck-cloud/customer-api
newTag: production
2 changes: 1 addition & 1 deletion deployment/device-api/overlays/development/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ spec:
type: RuntimeDefault
containers:
- name: device-api
image: ghcr.io/teck-lab/teck-cloud/device:development
image: ghcr.io/teck-lab/teck-cloud/device-api:development
imagePullPolicy: Always
securityContext:
allowPrivilegeEscalation: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ resources:
- service.yaml

images:
- name: ghcr.io/teck-lab/teck-cloud/device
- name: ghcr.io/teck-lab/teck-cloud/device-api
newTag: development
Loading
Loading