From ef147f41aa64ddd65961f6d37ff44ee82a38ad37 Mon Sep 17 00:00:00 2001 From: Scott Gerring Date: Fri, 13 Jun 2025 10:50:49 +0200 Subject: [PATCH 1/3] chore: bring james' changes over into a single commit' --- ...anagement-test.yml => user-management.yml} | 66 ++++++++++++++++--- ...ickerlandia.UserManagement.Agnostic.csproj | 59 +++++++++-------- .../Dockerfile | 7 +- .../Dockerfile-x86 | 4 ++ 4 files changed, 97 insertions(+), 39 deletions(-) rename .github/workflows/{user-management-test.yml => user-management.yml} (64%) 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 From a611405139ea363f3e6c4e02e87392b1700219b1 Mon Sep 17 00:00:00 2001 From: Scott Gerring Date: Fri, 13 Jun 2025 10:56:48 +0200 Subject: [PATCH 2/3] chore: add sticker award publishing, testing initially with push from branch --- .github/workflows/sticker-award.yml | 58 ++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/.github/workflows/sticker-award.yml b/.github/workflows/sticker-award.yml index cba64532..ef3878d4 100644 --- a/.github/workflows/sticker-award.yml +++ b/.github/workflows/sticker-award.yml @@ -11,6 +11,11 @@ on: - "sticker-award/**" workflow_dispatch: +env: + REGISTRY: ghcr.io + IMAGE_NAME_AWARD_SERVICE: ${{ github.repository_owner }}/stickerlandia/sticker-award-service + REPOSITORY_URL: github.com/${{ github.repository }} + jobs: build-and-test: runs-on: ubuntu-latest @@ -38,4 +43,55 @@ jobs: - name: Run Integration Tests run: | cd sticker-award - ./mvnw verify -Dskip.unit.tests=true -DskipITs=false \ No newline at end of file + ./mvnw verify -Dskip.unit.tests=true -DskipITs=false + + push-image: + runs-on: ubuntu-latest + needs: build-and-test + # 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_AWARD_SERVICE }} + tags: | + latest + ${{ env.COMMIT_SHA }} + + - name: Build and push Docker image + id: push + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: ./sticker-award + file: ./sticker-award/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 }} From 1f95c6ac7131d7989460a44fad6235026fc50c84 Mon Sep 17 00:00:00 2001 From: Scott Gerring Date: Fri, 13 Jun 2025 11:24:30 +0200 Subject: [PATCH 3/3] chore: workflows should run on changes to .github --- .github/workflows/sticker-award.yml | 1 + .github/workflows/user-management.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/sticker-award.yml b/.github/workflows/sticker-award.yml index ef3878d4..c44061ab 100644 --- a/.github/workflows/sticker-award.yml +++ b/.github/workflows/sticker-award.yml @@ -5,6 +5,7 @@ on: branches: ["main"] paths: - "sticker-award/**" + - ".github" pull_request: branches: ["main"] paths: diff --git a/.github/workflows/user-management.yml b/.github/workflows/user-management.yml index 3859c556..3cc94499 100644 --- a/.github/workflows/user-management.yml +++ b/.github/workflows/user-management.yml @@ -5,6 +5,7 @@ on: branches: ["main"] paths: - "user-management/**" + - ".github" pull_request: branches: ["main"] paths: