dotnet 使用 ftp 发布和部署 Github Actions

And*_*fte 5 .net ftp asp.net-core dotnet-cli github-actions

我正在尝试将 Github Actions 设置为: -build .net Core 应用程序 -测试应用程序(单元测试) -发布版本(dotnet 发布) -部署到 ftp 服务器

我在最后一步遇到一些问题。我正在使用此操作部署到 ftp:https ://github.com/SamKirkland/FTP-Deploy-Action

它始终部署整个存储库,而不仅仅是发布文件。

我的工作流程:

name: BuildAndTest

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: 3.1.101
- name: Install dependencies
  run: dotnet restore
- name: Build with dotnet
  run: dotnet build --configuration Release --no-restore
- name: Test
  run: dotnet test --no-restore --verbosity normal
- name: Publish
  run: dotnet publish MyApp.sln --configuration Release --framework netcoreapp3.1 --output ./publish --runtime win-x86  --self-contained true -p:PublishTrimmed=true -p:PublishSingleFile=true
- name: FTP Deploy
  uses: SamKirkland/FTP-Deploy-Action@3.0.0
  with:
    # Deployment destination server & path. Formatted as protocol://domain.com:port/full/destination/path/
    ftp-server: ${{ secrets.FTP_SERVER }}
    # FTP account username
    ftp-username: ${{ secrets.FTP_USERNAME }}
    # FTP account password
    ftp-password: ${{ secrets.FTP_PASSWORD }}
    # The local folder to copy, defaults to root project folder
    local-dir: /home/runner/work/MyApp/MyApp/publish/
Run Code Online (Sandbox Code Playgroud)

local-dir 指向我在 dotnetpublish 命令中指定的目录

工作流程不会失败,但未传输正确的文件。我缺少什么?

提前致谢!

Moh*_*Joy 4

让它变得简单!
更改发布命令

- name: Publish
    run: dotnet publish -c Release --output ./Release
Run Code Online (Sandbox Code Playgroud)

然后只需从 Release 文件夹发送所有这些已编译的文件,local-dir: ./Release/而不必担心主文件夹。

- name: FTP Deploy
  uses: SamKirkland/FTP-Deploy-Action@3.0.0
  with:
    ........
    local-dir: ./Release/
Run Code Online (Sandbox Code Playgroud)