diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..9da703b --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,34 @@ +# 复制到 admin .gitea/workflows/deploy.yml +name: Build and Deploy + +on: + push: + branches: [master, main] + workflow_dispatch: + +env: + CSPROJ: src/SimpleAdmin.Api/SimpleAdmin.Api.csproj + IMAGE_NAME: admin_api + DEPLOY_NAME: admin-api + CONTAINER_NAME: admin-api + TCR_REGISTRY: ccr.ccs.tencentyun.com + TCR_NAMESPACE: ideship + +jobs: + deploy: + runs-on: k3s-host + steps: + - name: Build and deploy + run: | + set -euxo pipefail + export KUBECONFIG=/etc/rancher/k3s/k3s.yaml + TAG="${{ gitea.sha }}" + IMG="${{ env.TCR_REGISTRY }}/${{ env.TCR_NAMESPACE }}/${{ env.IMAGE_NAME }}:${TAG}" + REPO="${{ gitea.repository }}" + test -n "$REPO" && [[ "$REPO" == */* ]] + echo "REPO=$REPO TAG=$TAG host=$(hostname)" + cd /data/k3s + ./scripts/ci-publish-container.sh "$REPO" "${{ env.CSPROJ }}" \ + "${{ env.IMAGE_NAME }}" "$TAG" "$TAG" + ./scripts/ci-deploy-api.sh "${{ env.DEPLOY_NAME }}" \ + "${{ env.CONTAINER_NAME }}" "$IMG" diff --git a/NuGet.Config b/NuGet.Config index 69486f2..f1710cc 100644 --- a/NuGet.Config +++ b/NuGet.Config @@ -1,7 +1,8 @@  - + + diff --git a/SimpleAdmin.sln b/SimpleAdmin.sln index 1f0347f..8816a47 100644 --- a/SimpleAdmin.sln +++ b/SimpleAdmin.sln @@ -15,6 +15,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "items", "items", "{BE5132AD oms表结构与接口设计20260427.md = oms表结构与接口设计20260427.md db.sql = db.sql Directory.Build.props = Directory.Build.props + .gitea\workflows\deploy.yml = .gitea\workflows\deploy.yml EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleAdmin.Api", "src\SimpleAdmin.Api\SimpleAdmin.Api.csproj", "{229ED167-9ECC-4736-8DFB-522EEA8FF680}" diff --git a/src/SimpleAdmin.Api/Dockerfile b/src/SimpleAdmin.Api/Dockerfile index cc7eb8e..ae072d7 100644 --- a/src/SimpleAdmin.Api/Dockerfile +++ b/src/SimpleAdmin.Api/Dockerfile @@ -1,17 +1,28 @@ -FROM mcr.microsoft.com/dotnet/sdk:8.0.303 AS base -ARG BUILD_CONFIGURATION=Release +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src -COPY . /src + +ARG NUGET_IDESHIP=https://baget.ideship.com/v3/index.json + +COPY ["NuGet.Config", "Directory.Build.props", "./"] +RUN sed -i \ + -e "s|https://baget.ideship.com/v3/index.json|${NUGET_IDESHIP}|g" \ + -e "s|http://baget.ideship.com/v3/index.json|${NUGET_IDESHIP}|g" \ + -e "s|https://baget.xiaolipro.cn/v3/index.json|${NUGET_IDESHIP}|g" \ + NuGet.Config \ + && cat NuGet.Config + +COPY ["src/Oms.Domain/Oms.Domain.csproj", "src/Oms.Domain/"] +COPY ["src/Oms.SqlSugarCore/Oms.SqlSugarCore.csproj", "src/Oms.SqlSugarCore/"] +COPY ["src/Oms.Application/Oms.Application.csproj", "src/Oms.Application/"] +COPY ["src/SimpleAdmin.Api/SimpleAdmin.Api.csproj", "src/SimpleAdmin.Api/"] RUN dotnet restore "src/SimpleAdmin.Api/SimpleAdmin.Api.csproj" -WORKDIR "/src/src/SimpleAdmin.Api" -RUN dotnet build "SimpleAdmin.Api.csproj" -c $BUILD_CONFIGURATION -o /app/build -FROM base AS publish +COPY . . +WORKDIR /src/src/SimpleAdmin.Api ARG BUILD_CONFIGURATION=Release -RUN dotnet publish "SimpleAdmin.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false +RUN dotnet publish "SimpleAdmin.Api.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false --no-restore -# 使用运行时镜像 FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime WORKDIR /app -COPY --from=publish /app/publish . +COPY --from=build /app/publish . ENTRYPOINT ["dotnet", "SimpleAdmin.Api.dll"] diff --git a/src/SimpleAdmin.Api/SimpleAdmin.Api.csproj b/src/SimpleAdmin.Api/SimpleAdmin.Api.csproj index 6de202a..2648d19 100644 --- a/src/SimpleAdmin.Api/SimpleAdmin.Api.csproj +++ b/src/SimpleAdmin.Api/SimpleAdmin.Api.csproj @@ -7,8 +7,11 @@ Linux True $(NoWarn);CS1591 + true + mcr.microsoft.com/dotnet/aspnet:8.0 + /app - +