From 441fce310a32099d76d742f0ba9ff395212def74 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=8E=8B=E5=86=9B?= <510423039@qq.com>
Date: Tue, 13 Sep 2022 23:44:53 +0800
Subject: [PATCH] =?UTF-8?q?=F0=9F=91=95=E8=B0=83=E6=95=B4CI=E5=8F=91?=
=?UTF-8?q?=E5=B8=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.github/workflows/deploy-demo.yml | 116 ++++++++++++++++++
.../appsettings.Production.json | 6 +-
.../appsettings.Production.json | 16 +--
.../Lion.AbpPro.HttpApi.Host/appsettings.json | 4 +-
.../Lion.AbpPro.DbMigrator.csproj | 12 +-
.../src/Lion.AbpPro.DbMigrator/Program.cs | 11 ++
.../appsettings.Production.json | 2 +-
docker/docker-compose.yml | 30 ++---
8 files changed, 159 insertions(+), 38 deletions(-)
create mode 100644 .github/workflows/deploy-demo.yml
diff --git a/.github/workflows/deploy-demo.yml b/.github/workflows/deploy-demo.yml
new file mode 100644
index 00000000..e309a7dd
--- /dev/null
+++ b/.github/workflows/deploy-demo.yml
@@ -0,0 +1,116 @@
+name: 部署
+on:
+ push:
+ branches:
+ - main
+
+jobs:
+ api:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install Dotnet 6.x
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: "6.0"
+ include-prerelease: True
+ - name: Build
+ run: dotnet build aspnet-core/Lion.AbpPro.sln
+
+ - name: Run Xunit
+ run: dotnet test aspnet-core/services/test/Lion.AbpPro.Domain.Tests/Lion.AbpPro.Domain.Tests.csproj
+
+ - name: Publish Lion.AbpPro.HttpApi.Host
+ run: dotnet publish aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/Lion.AbpPro.HttpApi.Host.csproj -o aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/publish
+
+ - name: Publish Lion.AbpPro.DbMigrator
+ run: dotnet publish aspnet-core/services/src/Lion.AbpPro.DbMigrator/Lion.AbpPro.DbMigrator.csproj -o aspnet-core/services/src/Lion.AbpPro.DbMigrator/publish
+
+ - name: Setting Version
+ id: vars
+ run: echo ::set-output name=RELEASE_VERSION::$(echo ${GITHUB_REF:10})
+
+ # docker login
+ - name: Login to Docker Hub
+ uses: docker/login-action@v1
+ with:
+ username: ${{ secrets.DOCKER_USERNAME }}
+ password: ${{ secrets.DOCKER_PASSWORD }}
+
+ # 设置 docker 环境
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
+
+
+ # build 并且 push docker 镜像
+ - name: Push Lion.AbpPro.HttpApi.Host Image
+ uses: docker/build-push-action@v2
+ with:
+ context: aspnet-core/services/host/Lion.AbpPro.HttpApi.Host
+ push: true
+ tags: zzzwangjun/lion.abp.pro
+
+ - name: Push Lion.AbpPro.DbMigrator Image
+ uses: docker/build-push-action@v2
+ with:
+ context: aspnet-core/services/src/Lion.AbpPro.DbMigrator
+ push: true
+ tags: zzzwangjun/lion.abp.pro.migrator
+
+ vben28:
+ runs-on: ubuntu-latest
+ needs: api
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v2.3.1
+ with:
+ persist-credentials: false
+
+ - name: Install pnpm
+ uses: pnpm/action-setup@v2.2.2
+ with:
+ version: 6.0.2
+
+ - name: Build
+ run: |
+ cd vben28
+ pnpm install
+ npm run build
+
+ - name: Setting Version
+ id: vars
+ run: echo ::set-output name=RELEASE_VERSION::$(echo ${GITHUB_REF:10})
+
+ # docker login
+ - name: Login to Docker Hub
+ uses: docker/login-action@v1
+ with:
+ username: ${{ secrets.DOCKER_USERNAME }}
+ password: ${{ secrets.DOCKER_PASSWORD }}
+
+ # 设置 docker 环境
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
+
+ # build 并且 push docker 镜像
+ - name: Push Vue3 Image
+ uses: docker/build-push-action@v2
+ with:
+ context: vben28
+ push: true
+ tags: zzzwangjun/lion.abp.pro.vben28
+
+ deploy:
+ runs-on: ubuntu-latest
+ needs: vben28
+ steps:
+ - name: Deploy 🛎️
+ uses: appleboy/ssh-action@master
+ with:
+ host: ${{ secrets.HUAWEI_HOST }}
+ username: ${{ secrets.HUAWEI_HOST_USERNAME }}
+ password: ${{ secrets.HUAWEI_HOST_PASSWORD }}
+ port: 22
+ script: |
+ cd /root/abp
+ docker-compose up -d --build
\ No newline at end of file
diff --git a/aspnet-core/gateways/Lion.AbpPro.WebGateway/appsettings.Production.json b/aspnet-core/gateways/Lion.AbpPro.WebGateway/appsettings.Production.json
index cc6a82e1..1c1d6e95 100644
--- a/aspnet-core/gateways/Lion.AbpPro.WebGateway/appsettings.Production.json
+++ b/aspnet-core/gateways/Lion.AbpPro.WebGateway/appsettings.Production.json
@@ -9,7 +9,7 @@
"AllowedHosts": "*",
"App": {
"SelfUrl": "http://localhost:44314",
- "CorsOrigins": "http://*:*,https://*,http://*,http://localhost,http://116.205.176.173"
+ "CorsOrigins": "http://*:*,https://*:*"
},
"GlobalConfiguration": {
},
@@ -19,7 +19,7 @@
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
- "Host": "lion.abp.pro",
+ "Host": "localhost",
"Port": 8080
}
],
@@ -36,7 +36,7 @@
"DownstreamScheme": "ws",
"DownstreamHostAndPorts": [
{
- "Host": "lion.abp.pro",
+ "Host": "localhost",
"Port": 8080
}
],
diff --git a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.Production.json b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.Production.json
index 55dbf9e1..418ace5e 100644
--- a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.Production.json
+++ b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.Production.json
@@ -7,13 +7,13 @@
"MinimumLevel": {
"Default": "Information",
"Override": {
- "Microsoft": "Information",
- "Volo.Abp": "Information",
- "Hangfire": "Information",
- "DotNetCore.CAP": "Information",
- "Serilog.AspNetCore": "Information",
+ "Microsoft": "Warning",
+ "Volo.Abp": "Warning",
+ "Hangfire": "Warning",
+ "DotNetCore.CAP": "Warning",
+ "Serilog.AspNetCore": "Warning",
"Microsoft.EntityFrameworkCore": "Warning",
- "Microsoft.AspNetCore": "Information"
+ "Microsoft.AspNetCore": "Warning"
}
},
"WriteTo": [
@@ -31,7 +31,7 @@
},
"App": {
"SelfUrl": "http://localhost:44315",
- "CorsOrigins": "http://*:*,https://*,http://*,http://localhost,http://116.205.176.173"
+ "CorsOrigins": "http://localhost:80,http://116.205.176.173:80"
},
"ConnectionStrings": {
"Default": "Data Source=mysql;Port=3306;Database=LionAbpProDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
@@ -55,7 +55,7 @@
}
},
"ElasticSearch": {
- "Enabled": "false",
+ "Enabled": false,
"Url": "http://es.cn",
"IndexFormat": "Lion.AbpPro.development.{0:yyyy.MM.dd}",
"UserName": "elastic",
diff --git a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json
index 10e6fb94..0bafe67d 100644
--- a/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json
+++ b/aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json
@@ -46,7 +46,7 @@
"ExpirationTime": 2
},
"Cap": {
- "Enabled": "false",
+ "Enabled": true,
"RabbitMq": {
"HostName": "localhost",
"UserName": "admin",
@@ -54,7 +54,7 @@
}
},
"ElasticSearch": {
- "Enabled": "false",
+ "Enabled": false,
"Url": "http://es.cn",
"IndexFormat": "Lion.AbpPro.development.{0:yyyy.MM.dd}",
"UserName": "elastic",
diff --git a/aspnet-core/services/src/Lion.AbpPro.DbMigrator/Lion.AbpPro.DbMigrator.csproj b/aspnet-core/services/src/Lion.AbpPro.DbMigrator/Lion.AbpPro.DbMigrator.csproj
index 1f4c9fea..b0398a23 100644
--- a/aspnet-core/services/src/Lion.AbpPro.DbMigrator/Lion.AbpPro.DbMigrator.csproj
+++ b/aspnet-core/services/src/Lion.AbpPro.DbMigrator/Lion.AbpPro.DbMigrator.csproj
@@ -27,12 +27,16 @@
-
+
+ true
Always
-
-
+ PreserveNewest
+
+
Always
-
+ true
+ PreserveNewest
+
diff --git a/aspnet-core/services/src/Lion.AbpPro.DbMigrator/Program.cs b/aspnet-core/services/src/Lion.AbpPro.DbMigrator/Program.cs
index ecb0b4a5..5a39ccf4 100644
--- a/aspnet-core/services/src/Lion.AbpPro.DbMigrator/Program.cs
+++ b/aspnet-core/services/src/Lion.AbpPro.DbMigrator/Program.cs
@@ -24,6 +24,17 @@ namespace Lion.AbpPro.DbMigrator
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging((context, logging) => logging.ClearProviders())
+ .ConfigureAppConfiguration
+ (
+ otpions =>
+ {
+ var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
+ var appSettingFileName = "appsettings.json";
+ if (!environment.IsNullOrWhiteSpace())
+ appSettingFileName = $"appsettings.{environment}.json";
+ otpions.AddJsonFile(appSettingFileName, optional: true);
+ }
+ )
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService();
diff --git a/aspnet-core/services/src/Lion.AbpPro.DbMigrator/appsettings.Production.json b/aspnet-core/services/src/Lion.AbpPro.DbMigrator/appsettings.Production.json
index e711c4f8..311efd7a 100644
--- a/aspnet-core/services/src/Lion.AbpPro.DbMigrator/appsettings.Production.json
+++ b/aspnet-core/services/src/Lion.AbpPro.DbMigrator/appsettings.Production.json
@@ -1,5 +1,5 @@
{
"ConnectionStrings": {
- "Default": "Data Source=localhost;Port=3306;Database=LionAbpProDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
+ "Default": "Data Source=mysql;Port=3306;Database=LionAbpProDB;uid=root;pwd=1q2w3E*;charset=utf8mb4;Allow User Variables=true;AllowLoadLocalInfile=true"
}
}
\ No newline at end of file
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 4363e452..c322f406 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -13,7 +13,7 @@ services:
MYSQL_ENABLE_SLOW_QUERY: 0 # 是否开启慢查询,0:不开启 1:开启
MYSQL_LONG_QUERY_TIME: 5.0 # 慢查询超时时间
ports:
- - "3306:3306"
+ - "3306:3306"
redis:
image: redis:6.2.6
@@ -35,46 +35,36 @@ services:
- RABBITMQ_DEFAULT_PASS=1q2w3E*
lion.abp.pro:
- build: ../aspnet-core/services/host/Lion.AbpPro.HttpApi.Host
+ image: zzzwangjun/lion.abp.pro
container_name: lion.abp.pro
restart: always
ports:
- "8080:80"
depends_on:
- - mysql
+ - mysql
- rabbitmq
- redis
- lion.abp.pro.migrator
links:
- mysql
- redis
- - rabbitmq
+ - rabbitmq
lion.abp.pro.migrator:
- build: ../aspnet-core/services/src/Lion.AbpPro.DbMigrator
+ image: zzzwangjun/lion.abp.pro.migrator
container_name: lion.abp.pro.migrator
depends_on:
- - mysql
+ - mysql
links:
- mysql
-
- lion.abp.pro.gateway:
- build: ../aspnet-core/gateways/Lion.AbpPro.WebGateway
- container_name: lion.abp.pro.gateway
- ports:
- - "8081:80"
- depends_on:
- - lion.abp.pro
- links:
- - lion.abp.pro
+
lion.abp.pro.vben28:
- build: ../vben28
+ image: zzzwangjun/lion.abp.pro.vben28
container_name: lion.abp.pro.vben28
ports:
- "80:80"
depends_on:
- - lion.abp.pro.gateway
+ - lion.abp.pro
links:
- - lion.abp.pro.gateway
-
+ - lion.abp.pro
\ No newline at end of file