FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env

COPY tools/Build/ tools/Build/
WORKDIR /tools/Build
RUN dotnet build

WORKDIR /
COPY src/**/*.csproj src/
COPY *.sln /
RUN dotnet run --project ./tools/Build/Build.csproj restore

COPY src/. src/
RUN dotnet run --project ./tools/Build/Build.csproj build --skip restore

RUN dotnet run --project ./tools/Build/Build.csproj test --skip build

RUN dotnet run --project ./tools/Build/Build.csproj deployment-package --skip test

# Build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:8.0
EXPOSE 8080
WORKDIR /app
COPY --from=build-env /artifacts .

ENTRYPOINT ["./app"]