diff --git a/.github/workflows/build-publish-docker.yml b/.github/workflows/build-publish-docker.yml deleted file mode 100644 index f418cbb..0000000 --- a/.github/workflows/build-publish-docker.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: build-publish-docker - -on: - push: - branches: [ develop ] - pull_request: - -jobs: - - build-and-push-docker-image: - name: Build and Publish Docker image to DockerHub - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 'lts/*' - - - name: Semantic Release Version - id: semantic-version - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # because of using none default (conventionalcommits) `preset` for `semantic-release`, we should add dependency `conventional-changelog-conventionalcommits` - # using dry-run here for preventing publish release note and just calculate version - run: npx -p @semantic-release/git -p @semantic-release/changelog -p @semantic-release/exec semantic-release --dry-run - - - name: Semantic Release Versions Outputs - run: | - echo ${{ steps.semantic-version.outputs.semantic_nextRelease_version }} - echo ${{ steps.semantic-version.outputs.semantic_nextRelease_channel }} - echo ${{ steps.semantic-version.outputs.semantic_nextRelease_gitTag }} - echo ${{ steps.semantic-version.outputs.semantic_lastRelease_version }} - echo ${{ steps.semantic-version.outputs.semantic_lastRelease_channel }} - echo ${{ steps.semantic-version.outputs.semantic_lastRelease_gitTag }} - - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - - - name: Build image - run: | - docker build -t meysamh66/booking-microservices-flight:latest -f "${{ github.workspace }}/src/Services/Flight/Dockerfile" . - docker build -t meysamh66/booking-microservices-identity:latest -f "${{ github.workspace }}/src/Services/Identity/Dockerfile" . - docker build -t meysamh66/booking-microservices-passenger:latest -f "${{ github.workspace }}/src/Services/Passenger/Dockerfile" . - docker build -t meysamh66/booking-microservices-booking:latest -f "${{ github.workspace }}/src/Services/Booking/Dockerfile" . - - - name: Publish image - run: | - docker push meysamh66/booking-microservices-flight:latest - docker push meysamh66/booking-microservices-identity:latest - docker push meysamh66/booking-microservices-passenger:latest - docker push meysamh66/booking-microservices-booking:latest - diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..26a28ec --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,70 @@ +name: CI + +on: + push: + branches: [ "main" , "develop" ] + paths-ignore: + - "README.md" + pull_request: + branches: [ "main" , "develop" ] + paths-ignore: + - "README.md" + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Setup .NET + uses: actions/setup-dotnet@v2 + with: + dotnet-version: 7.0.x + + - name: Cache NuGet Packages + uses: actions/cache@v3 + with: + key: ${{ runner.os }}-dotnet-nuget + path: ~/.nuget/packages + + - name: Restore dependencies + run: dotnet restore + + - name: Build + run: dotnet build -c Release --no-restore + + - name: Test + run: dotnet test -c Release --no-restore + + - name: Update Release Drafter + if: github.ref == 'refs/heads/main' + id: last_release + uses: release-drafter/release-drafter@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Login to DockerHub + if: github.ref == 'refs/heads/main' + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} + + ##ref: https://docs.docker.com/language/golang/configure-ci-cd/ + ##ref: https://event-driven.io/en/how_to_buid_and_push_docker_image_with_github_actions + - name: Build Docker Image + if: github.ref == 'refs/heads/main' + run: | + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-flight:${{ steps.last_release.outputs.tag_name }} -f "${{ github.workspace }}/src/Services/Flight/Dockerfile" . + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-identity:${{ steps.last_release.outputs.tag_name }} -f "${{ github.workspace }}/src/Services/Identity/Dockerfile" . + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-passenger:${{ steps.last_release.outputs.tag_name }} -f "${{ github.workspace }}/src/Services/Passenger/Dockerfile" . + docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-booking:${{ steps.last_release.outputs.tag_name }} -f "${{ github.workspace }}/src/Services/Booking/Dockerfile" . + + - name: Publish Docker Image + if: github.ref == 'refs/heads/main' + run: | + docker push ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-flight:${{ steps.last_release.outputs.tag_name }} + docker push ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-identity:${{ steps.last_release.outputs.tag_name }} + docker push ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-passenger:${{ steps.last_release.outputs.tag_name }} + docker push ${{ secrets.DOCKERHUB_USERNAME }}/booking-microservices-booking:${{ steps.last_release.outputs.tag_name }} + diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml deleted file mode 100644 index 9d6567a..0000000 --- a/.github/workflows/dotnet.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Build-Test - -on: - push: - branches: [ "main" , "develop" ] - paths-ignore: - - "README.md" - pull_request: - branches: [ "main" , "develop" ] - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Setup .NET - uses: actions/setup-dotnet@v2 - with: - dotnet-version: 7.0.x - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 'lts/*' - - - name: Cache NuGet Packages - uses: actions/cache@v3 - with: - key: ${{ runner.os }}-dotnet-nuget - path: ~/.nuget/packages - - - name: Restore dependencies - run: dotnet restore - - - name: Build - run: dotnet build -c Release --no-restore - - - name: Test - run: dotnet test -c Release --no-restore - diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml deleted file mode 100644 index 98af17d..0000000 --- a/.github/workflows/release-drafter.yml +++ /dev/null @@ -1,18 +0,0 @@ - # https://johanneskonings.dev/github/2021/02/28/github_automatic_releases_and-changelog/ - # https://tiagomichaelsousa.dev/articles/stop-writing-your-changelogs-manually - name: Release Drafter - - on: - push: - branches: - - main - jobs: - update_release_draft: - name: Release drafter - runs-on: ubuntu-latest - - steps: - - name: Update Release Draft - uses: release-drafter/release-drafter@v5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/current-version.txt b/current-version.txt new file mode 100644 index 0000000..e69de29 diff --git a/package.json b/package.json new file mode 100644 index 0000000..d1992e2 --- /dev/null +++ b/package.json @@ -0,0 +1,3 @@ +{ + "version": "0.0.0" +} diff --git a/src/BuildingBlocks/PersistMessageProcessor/Data/DesignTimeDbContextFactory.cs b/src/BuildingBlocks/PersistMessageProcessor/Data/DesignTimeDbContextFactory.cs index 5609afe..ce710a6 100644 --- a/src/BuildingBlocks/PersistMessageProcessor/Data/DesignTimeDbContextFactory.cs +++ b/src/BuildingBlocks/PersistMessageProcessor/Data/DesignTimeDbContextFactory.cs @@ -11,6 +11,6 @@ public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory> _logger; + private readonly ILogger _logger; - public PersistMessageDbContext(DbContextOptions options) + public PersistMessageDbContext(DbContextOptions options, + ILogger logger) : base(options) { - _logger = new Lazy>(() => - { - var factory = LoggerFactory.Create(b => b.AddConsole()); - var logger = factory.CreateLogger(); - return logger; - }); + _logger = logger; } public DbSet PersistMessages => Set(); @@ -45,7 +41,7 @@ public class PersistMessageDbContext : DbContext, IPersistMessageDbContext { if (exception != null) { - _logger.Value.LogError(exception, + _logger.LogError(exception, "Request failed with {StatusCode}. Waiting {TimeSpan} before next retry. Retry attempt {RetryCount}.", HttpStatusCode.Conflict, timeSpan, @@ -63,7 +59,7 @@ public class PersistMessageDbContext : DbContext, IPersistMessageDbContext var currentValue = entry.Entity; // we can use it for specific merging var databaseValue = await entry.GetDatabaseValuesAsync(cancellationToken); - _logger.Value.LogInformation( + _logger.LogInformation( "Entry to entity with type: {Type}, database-value: {DatabaseValue} and current-value: {CurrentValue}", entry.GetType().Name, databaseValue,