如何使用 TFS/GIT 创建将部署到非 Azure ftp 的构建管道?

How do I create a build pipeline using TFS/GIT that will deploy to non Azure ftp?

我想创建一个构建管道,以便当我签入 tfs-git 时,构建的应用程序将部署到 ftp。

ftp 站点不在 Azure 上,我有自己的外部主机。

我的管道成功构建了应用程序,但现在我需要将其部署到外部 FTP 站点。

我已经尝试了一段时间,但找不到任何说明或详细信息来执行此操作,有人可以帮忙吗?

任何人都可以指出一些对我有帮助的文章吗?

我要

  1. 推送到 Git (完成)
  2. 触发构建 (完成)
  3. 创建发布文件 (不知道)
  4. 将发布文件复制到我的 FTP(非 Azure) (Ftp 有效但看不到如何 select 发布目录)

有一个 FTP Upload task,您可以使用此任务使用文件传输协议 (FTP) 或使用 FTPS 安全地将文件上传到远程计算机。

您可以选择将构建生成的工件发布到 Azure DevOps 服务器端放置文件夹,然后使用发布管道将它们上传到远程 ftp 服务器。

建议你看看这个step-by-step教程:Use FTPS to deploy your WebApp using Azure DevOps

你也可以看看下面类似的问题:

为确保远程FTP服务器与Azure DevOps build/release代理之间的连接,请注意以下部分:

The Microsoft Hosted IP address is dynamic. You need to download the weekly JSON file and add IP ranges to your server.

More information, please refer to: To identify the possible IP ranges for Microsoft-hosted agents

对于您的场景,我建议您可以设置一个 self-hosted/private agent,然后在此代理上执行 build/release。这样,你只需要将代理机器的IP添加到你的服务器即可。

我终于搞定了 publish 参数需要在参数前加上“--” 如果您复制和粘贴命令,还要注意‘和’卷曲单引号

# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core

trigger:
- master

pool:
  vmImage: 'windows-2019'

variables:
  buildConfiguration: 'Release'

steps:
- script: dotnet build --configuration $(buildConfiguration)
  displayName: 'dotnet build $(buildConfiguration)'

- task: DotNetCoreCLI@2
  displayName: Publish
  inputs:
    command: publish
    publishWebProjects: True
    arguments: '--configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)'
    zipAfterPublish: True

- task: FtpUpload@2
  displayName: 'FTP Upload'
  inputs:
      credentialsOption: inputs
      serverUrl: 'xxxxxxxx'
      username: 'xxxxxx'
      password: 'xxxxxxxx'
      remoteDirectory: '/'
      trustSSL: true
      cleanContents: true
      rootDirectory: $(Build.artifactstagingdirectory)