Browse Source

👕调整CI发布

pull/73/head
王军 4 years ago
parent
commit
441fce310a
  1. 116
      .github/workflows/deploy-demo.yml
  2. 6
      aspnet-core/gateways/Lion.AbpPro.WebGateway/appsettings.Production.json
  3. 16
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.Production.json
  4. 4
      aspnet-core/services/host/Lion.AbpPro.HttpApi.Host/appsettings.json
  5. 12
      aspnet-core/services/src/Lion.AbpPro.DbMigrator/Lion.AbpPro.DbMigrator.csproj
  6. 11
      aspnet-core/services/src/Lion.AbpPro.DbMigrator/Program.cs
  7. 2
      aspnet-core/services/src/Lion.AbpPro.DbMigrator/appsettings.Production.json
  8. 30
      docker/docker-compose.yml

116
.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

6
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
}
],

16
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",

4
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",

12
aspnet-core/services/src/Lion.AbpPro.DbMigrator/Lion.AbpPro.DbMigrator.csproj

@ -27,12 +27,16 @@
<Content Remove="Logs\**" />
<EmbeddedResource Remove="Logs\**" />
<None Remove="Logs\**" />
<None Update="appsettings.json">
<Content Include="appsettings.json">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="appsettings.Production.json">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
<Content Include="appsettings.Production.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>
</Project>

11
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<DbMigratorHostedService>();

2
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"
}
}

30
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
Loading…
Cancel
Save