我使用Github作为我的源代码控制工具,并使用Github Actions作为我的CI/CD解决方案。我有一台专用的Windows服务器,接收我repo的发布版本。
我有一个Github Action,它执行构建、测试、发布和部署(使用FTP)。我并不认同“部署”的想法。例如,假设我的网站有一个巨大的代码库,每次提交(Push)时都要FTP上传并不是一个高效的想法(我发布的是已发布目录……而不是源代码到我的服务器)。有时候,由于IIS锁定文件,FTP传输根本无法正常工作。那么,使用Github Actions(或任何其他提供者)将文件发布/部署到远程服务器上的最可靠方法是什么?
以下是我的示例Yaml文件...
我有一个Github Action,它执行构建、测试、发布和部署(使用FTP)。我并不认同“部署”的想法。例如,假设我的网站有一个巨大的代码库,每次提交(Push)时都要FTP上传并不是一个高效的想法(我发布的是已发布目录……而不是源代码到我的服务器)。有时候,由于IIS锁定文件,FTP传输根本无法正常工作。那么,使用Github Actions(或任何其他提供者)将文件发布/部署到远程服务器上的最可靠方法是什么?
以下是我的示例Yaml文件...
name: .NET Core
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 2.1
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration Release --no-restore
- name: Test
run: dotnet test --no-restore --verbosity normal
- name: Run the Publish
run: dotnet publish --configuration Release --no-restore --output ./publish
- name: FTP-Deploy-Action
uses: sebastianpopp/ftp-action@releases/v2
with:
host: my_host
user: my_user
password: ${{ secrets.FTP_PASSWORD }}
localDir: "/home/runner/work/CiTest/CiTest/CiTest/publish"
remoteDir: "CI-Test"