From 583d1108faa9d88967324144df12b363f80f4951 Mon Sep 17 00:00:00 2001 From: pashko Date: Thu, 10 Jul 2025 14:25:40 +0800 Subject: [PATCH] Add pipline/prebuild.yml --- pipline/prebuild.yml | 66 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 pipline/prebuild.yml diff --git a/pipline/prebuild.yml b/pipline/prebuild.yml new file mode 100644 index 0000000..1a311e1 --- /dev/null +++ b/pipline/prebuild.yml @@ -0,0 +1,66 @@ +stages: + - prepare + - build + +variables: + DOCKER_TAG: "my-app:latest" + CONFIG_ENV: "Development" # можно использовать для генерации appsettings.{ENV}.json + +prepare: + stage: prepare + script: + # Генерация Dockerfile + - | + cat < Dockerfile + FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base + WORKDIR /app + EXPOSE 80 + + FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build + WORKDIR /src + COPY . . + RUN dotnet restore + RUN dotnet publish -c Release -o /app/publish + + FROM base AS final + WORKDIR /app + COPY --from=build /app/publish . + ENTRYPOINT ["dotnet", "MyApp.dll"] + EOF + + # Генерация nuget.config + - | + cat < nuget.config + + + + + + + EOF + + # Генерация appsettings.json + - | + cat < appsettings.json + { + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "Environment": "$CONFIG_ENV" + } + EOF + + artifacts: + paths: + - Dockerfile + - nuget.config + - appsettings.json + expire_in: 1 hour + +build: + stage: build + script: + - docker build -t $DOCKER_TAG .