-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
26 lines (20 loc) · 1.58 KB
/
Dockerfile
File metadata and controls
26 lines (20 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /source
# copy csproj and restore as distinct layers
COPY src/StrEnum.Npgsql.EntityFrameworkCore/StrEnum.Npgsql.EntityFrameworkCore.csproj ./src/StrEnum.Npgsql.EntityFrameworkCore/StrEnum.Npgsql.EntityFrameworkCore.csproj
COPY test/StrEnum.Npgsql.EntityFrameworkCore.UnitTests/StrEnum.Npgsql.EntityFrameworkCore.UnitTests.csproj ./test/StrEnum.Npgsql.EntityFrameworkCore.UnitTests/StrEnum.Npgsql.EntityFrameworkCore.UnitTests.csproj
RUN dotnet restore ./src/StrEnum.Npgsql.EntityFrameworkCore/StrEnum.Npgsql.EntityFrameworkCore.csproj
RUN dotnet restore ./test/StrEnum.Npgsql.EntityFrameworkCore.UnitTests/StrEnum.Npgsql.EntityFrameworkCore.UnitTests.csproj
# copy everything else and build app
COPY ./ ./
WORKDIR /source
RUN dotnet build ./src/StrEnum.Npgsql.EntityFrameworkCore/StrEnum.Npgsql.EntityFrameworkCore.csproj -c release --no-restore /p:maxcpucount=1
RUN dotnet build ./test/StrEnum.Npgsql.EntityFrameworkCore.UnitTests/StrEnum.Npgsql.EntityFrameworkCore.UnitTests.csproj -c release --no-restore /p:maxcpucount=1
FROM build AS test
RUN dotnet test ./test/StrEnum.Npgsql.EntityFrameworkCore.UnitTests/StrEnum.Npgsql.EntityFrameworkCore.UnitTests.csproj --no-build -c release /p:maxcpucount=1
FROM build AS pack-and-push
WORKDIR /source
ARG PackageVersion
ARG NuGetApiKey
RUN dotnet pack ./src/StrEnum.Npgsql.EntityFrameworkCore/StrEnum.Npgsql.EntityFrameworkCore.csproj -o /out/package -c Release
RUN dotnet nuget push /out/package/StrEnum.Npgsql.EntityFrameworkCore.$PackageVersion.nupkg -k $NuGetApiKey -s https://api.nuget.org/v3/index.json