Files
TakeoutSaaS.TenantApi/.gitea/workflows/deploy.yml
MSuMshk 7d3542735b
All checks were successful
Build and Deploy TenantApi + SkuWorker / build-and-deploy (push) Successful in 1m55s
ci: 流水线新增SkuWorker容器并自动执行数据库迁移
2026-02-25 11:37:27 +08:00

77 lines
2.8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Build and Deploy TenantApi + SkuWorker
on:
push:
branches:
- dev
jobs:
build-and-deploy:
runs-on: host
steps:
- name: Checkout code
run: |
cd /opt/deploy/tenantapi || mkdir -p /opt/deploy/tenantapi
cd /opt/deploy/tenantapi
# 如果已有仓库就 pull否则 clone
if [ -d ".git" ]; then
git fetch origin dev
git reset --hard origin/dev
git submodule update --init --recursive
else
git clone --branch dev ssh://git@git.laosankeji.com:2222/msumshk/TakeoutSaaS.TenantApi.git .
git submodule init
git config submodule.TakeoutSaaS.BuildingBlocks.url ssh://git@git.laosankeji.com:2222/msumshk/TakeoutSaaS.BuildingBlocks.git
git config submodule.TakeoutSaaS.Docs.url ssh://git@git.laosankeji.com:2222/msumshk/TakeoutSaaS.Docs.git
git submodule update
fi
- name: Build on host
run: |
cd /opt/deploy/tenantapi
dotnet restore TakeoutSaaS.sln
dotnet publish src/Api/TakeoutSaaS.TenantApi/TakeoutSaaS.TenantApi.csproj -c Release -o /opt/deploy/tenantapi/publish --no-restore
dotnet publish src/Worker/TakeoutSaaS.SkuWorker/TakeoutSaaS.SkuWorker.csproj -c Release -o /opt/deploy/tenantapi/publish-worker --no-restore
- name: Apply database migrations
run: |
cd /opt/deploy/tenantapi
export ASPNETCORE_ENVIRONMENT=Development
export TAKEOUTSAAS_APPSETTINGS_DIR=/opt/deploy/tenantapi/src/Api/TakeoutSaaS.TenantApi
dotnet tool restore
dotnet tool run dotnet-ef database update \
--context TakeoutAppDbContext \
--project src/Infrastructure/TakeoutSaaS.Infrastructure \
--startup-project src/Infrastructure/TakeoutSaaS.Infrastructure
- name: Build Docker images
run: |
cd /opt/deploy/tenantapi
docker build -t takeoutsaas-tenantapi:latest -f src/Api/TakeoutSaaS.TenantApi/Dockerfile .
docker build -t takeoutsaas-skuworker:latest -f src/Worker/TakeoutSaaS.SkuWorker/Dockerfile .
- name: Deploy containers
run: |
docker stop tenantapi || true
docker rm tenantapi || true
docker stop skuworker || true
docker rm skuworker || true
docker run -d \
--name tenantapi \
--restart unless-stopped \
-p 7903:7903 \
-e ASPNETCORE_ENVIRONMENT=Development \
takeoutsaas-tenantapi:latest
docker run -d \
--name skuworker \
--restart unless-stopped \
-e ASPNETCORE_ENVIRONMENT=Development \
takeoutsaas-skuworker:latest
- name: Clean up old images
run: |
docker image prune -f