name: Unit tests run-name: ${{ gitea.actor }} is testing on: push: branches: - master jobs: tests-and-publication: runs-on: ubuntu-latest # container: node # Service containers to run with `runner-job` services: # Label used to access the service container postgres: # Docker Hub image image: postgres # Provide the password for postgres env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres # Set health checks to wait until postgres has started options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: # Maps tcp port 5432 on service container to the host - 5442:5432 steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup .NET if: ${{ steps.cache-dotnet.outputs.cache-hit != 'true' }} uses: actions/setup-dotnet@v4 with: dotnet-version: 9.0.x - name: Add gitea as nuget source run: dotnet nuget add source --name gitea --username publisher --password ${{ secrets.PUBLISHER_PASSWORD }} --store-password-in-clear-text https://git.ddrilling.ru/api/packages/DDrilling/nuget/index.json - name: Restore dependencies run: dotnet restore - name: Build solution run: dotnet build --no-restore - name: Run integration tests run: dotnet test DD.Persistence.IntegrationTests - name: Run unit tests run: dotnet test DD.Persistence.Test --no-build - name: Pack Persistence Client run: dotnet pack DD.Persistence.Client/DD.Persistence.Client.csproj -c Debug -o ./artifacts - name: Pack Persistence Models run: dotnet pack DD.Persistence.Models/DD.Persistence.Models.csproj -c Debug -o ./artifacts - name: Publish Persistence Client Package run: dotnet nuget push ./artifacts/DD.Persistence.Client.*.nupkg --source gitea --skip-duplicate - name: Publish Persistence Models Package run: dotnet nuget push ./artifacts/DD.Persistence.Models.*.nupkg --source gitea --skip-duplicate - name: Login to Gitea Docker Registry run: docker login -u publisher -p ${{ secrets.PUBLISHER_PASSWORD }} https://git.ddrilling.ru - name: Docker Build run: docker build -t git.ddrilling.ru/ddrilling/persistence:latest --network=host --build-arg PUBLISHERPASSWORD="${{ secrets.PUBLISHER_PASSWORD }}" -f DD.Persistence.App/Dockerfile . - name: Push Docker image to Gitea run: docker push git.ddrilling.ru/ddrilling/persistence:latest