diff --git a/.github/workflows/user-management-test.yml b/.github/workflows/user-management.yml
similarity index 64%
rename from .github/workflows/user-management-test.yml
rename to .github/workflows/user-management.yml
index cb67d097..3859c556 100644
--- a/.github/workflows/user-management-test.yml
+++ b/.github/workflows/user-management.yml
@@ -1,4 +1,4 @@
-name: User Management Tests
+name: User Management
on:
push:
@@ -11,6 +11,11 @@ on:
- "user-management/**"
workflow_dispatch:
+env:
+ REGISTRY: ghcr.io
+ IMAGE_NAME_USER_SERVICE: ${{ github.repository_owner }}/stickerlandia/user-management-service
+ REPOSITORY_URL: github.com/${{ github.repository }}
+
jobs:
unit-test:
runs-on: ubuntu-latest
@@ -35,12 +40,6 @@ jobs:
- AZURE
fail-fast: false
- services:
- cosmosdb:
- image: mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview
- ports:
- - 8081:8081
-
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 #4.3.1
@@ -114,4 +113,55 @@ jobs:
DRIVING: ${{ matrix.DRIVING }}
DRIVEN: AGNOSTIC
run: |
- cd user-management/tests/Stickerlandia.UserManagement.IntegrationTest && dotnet test --logger:"console;verbosity=detailed"
\ No newline at end of file
+ cd user-management/tests/Stickerlandia.UserManagement.IntegrationTest && dotnet test --logger:"console;verbosity=detailed"
+
+ push-image:
+ runs-on: ubuntu-latest
+ needs: [integration-test-azure, integration-test-agnostic]
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
+ permissions:
+ contents: read
+ packages: write
+ attestations: write
+ id-token: write
+ steps:
+ - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+ - name: Get Commit Info
+ id: get_sha
+ run: |
+ echo "COMMIT_SHA=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
+
+ - name: Log in to the Container registry
+ uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
+ with:
+ registry: ${{ env.REGISTRY }}
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Extract metadata (tags, labels) for Docker
+ id: meta
+ uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
+ with:
+ images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME_USER_SERVICE }}
+ tags: |
+ latest
+ ${{ env.COMMIT_SHA }}
+
+ - name: Build and push Docker image
+ id: push
+ uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4
+ with:
+ context: ./user-management
+ file: ./user-management/src/Stickerlandia.UserManagement.Api/Dockerfile
+ platforms: linux/amd64,linux/arm64
+ push: true
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
+ build-args: |
+ GIT_COMMIT_SHA=${{ env.COMMIT_SHA }}
+ GIT_REPOSITORY_URL=${{ env.REPOSITORY_URL }}
+ DD_GIT_REPOSITORY_URL=${{ env.REPOSITORY_URL }}
+ DD_GIT_COMMIT_SHA=${{ env.COMMIT_SHA }}
diff --git a/user-management/src/Stickerlandia.UserManagement.Agnostic/Stickerlandia.UserManagement.Agnostic.csproj b/user-management/src/Stickerlandia.UserManagement.Agnostic/Stickerlandia.UserManagement.Agnostic.csproj
index 72eb400c..78e9e029 100644
--- a/user-management/src/Stickerlandia.UserManagement.Agnostic/Stickerlandia.UserManagement.Agnostic.csproj
+++ b/user-management/src/Stickerlandia.UserManagement.Agnostic/Stickerlandia.UserManagement.Agnostic.csproj
@@ -1,34 +1,35 @@
-
- net8.0
- enable
- enable
-
+
+ net8.0
+ enable
+ enable
+
-
-
-
-
-
-
+
-
-
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/user-management/src/Stickerlandia.UserManagement.Api/Dockerfile b/user-management/src/Stickerlandia.UserManagement.Api/Dockerfile
index f4689224..dfc4bf98 100644
--- a/user-management/src/Stickerlandia.UserManagement.Api/Dockerfile
+++ b/user-management/src/Stickerlandia.UserManagement.Api/Dockerfile
@@ -12,8 +12,11 @@ COPY . ./
# Publish the application
RUN dotnet publish src/Stickerlandia.UserManagement.Api/Stickerlandia.UserManagement.Api.csproj -o out -c Release
-FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
-RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/*
+FROM mcr.microsoft.com/dotnet/aspnet:8.0-noble-chiseled AS runtime
+ARG DD_GIT_REPOSITORY_URL
+ARG DD_GIT_COMMIT_SHA
+ENV DD_GIT_REPOSITORY_URL=${DD_GIT_REPOSITORY_URL}
+ENV DD_GIT_COMMIT_SHA=${DD_GIT_COMMIT_SHA}
WORKDIR /App
COPY --from=build /App/out .
EXPOSE 80
diff --git a/user-management/src/Stickerlandia.UserManagement.Api/Dockerfile-x86 b/user-management/src/Stickerlandia.UserManagement.Api/Dockerfile-x86
index 03a3930a..0382dbc6 100644
--- a/user-management/src/Stickerlandia.UserManagement.Api/Dockerfile-x86
+++ b/user-management/src/Stickerlandia.UserManagement.Api/Dockerfile-x86
@@ -13,6 +13,10 @@ COPY . ./
RUN dotnet publish src/Stickerlandia.UserManagement.Api/Stickerlandia.UserManagement.Api.csproj -o out -c Release -r linux-x64
FROM mcr.microsoft.com/dotnet/aspnet:8.0-noble-chiseled AS runtime
+ARG DD_GIT_REPOSITORY_URL
+ARG DD_GIT_COMMIT_SHA
+ENV DD_GIT_REPOSITORY_URL=${DD_GIT_REPOSITORY_URL}
+ENV DD_GIT_COMMIT_SHA=${DD_GIT_COMMIT_SHA}
WORKDIR /App
COPY --from=build /App/out .
EXPOSE 80