name: "Build for PRe"
description: "Builds a docker image without pushing"

inputs:
  service:
    description: "Service to build"
    required: true
  registry_endpoint:
    description: "Image registry repo e.g. myacr.azureacr.io/eshop"
    required: true
  dotnet_version:
    description: "Version of dotnet to use for testing"
    required: true
  project_path:
    description: "Path to project to test e.g. Services/Catalog/Catalog.API"
    required: true
  tests_path:
    description: "Path to test project e.g. Services/Catalog/Catalog.UnitTests"
    required: true

runs:
  using: "composite"
  steps:
  - name: Setup dotnet
    uses: actions/setup-dotnet@v1
    with:
      dotnet-version: ${{ inputs.dotnet_version }}

  - name: Build and run unit tests
    shell: bash
    run: |
      cd src
      dotnet restore "eShopOnContainers-ServicesAndWebApps.sln"
      cd ${{ inputs.project_path }}
      dotnet build --no-restore
      cd -
      cd ${{ inputs.tests_path }}
      dotnet build --no-restore
      dotnet test --no-build -v=normal

  - name: Compose build ${{ inputs.service }}
    shell: bash
    run: sudo -E docker-compose build ${{ inputs.service }}
    working-directory: ./src
    env:
      TAG: ${{ env.BRANCH }}
      REGISTRY: ${{ inputs.registry_endpoint }}