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