如何将 VSTS 上的构建配置为 FTP 部署
Posted
技术标签:
【中文标题】如何将 VSTS 上的构建配置为 FTP 部署【英文标题】:How do I configure a build on VSTS to FTP deploy 【发布时间】:2019-11-21 02:55:01 【问题描述】:我想在更新我的项目的主分支时使用 VSTS 来构建和部署我的应用程序(到 FTP)。我有下面的脚本。它的工作原理是它触发并构建但随后无法部署,因为它找不到文件并且我不知道要输入什么值。我收到以下错误。
VSTS 构建时,构建文件放在哪里?
我看过 youtube,但所有的例子都是旧的,并不能反映 VSTS 现在是如何工作的,所以我完全被卡住了。这里没有文章可以反映 VSTS 现在是如何工作的,Microsoft 页面也没有帮助。
我要审查的文章已经不多了,现在几乎是在猜测,所以非常感谢任何帮助。
# 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: 'ubuntu-latest'
variables:
buildConfiguration: 'Release'
steps:
- script: dotnet build --configuration $(buildConfiguration)
displayName: 'dotnet build $(buildConfiguration)'
- task: FtpUpload@2
inputs:
credentialsOption: 'inputs'
serverUrl: 'ftp://xxxxxxx.xxxxxxxx.xxxxx/'
username: 'xxxxxxxxx'
password: 'xxxxxxxxxx'
rootDirectory: '/'
filePatterns: '**'
remoteDirectory: '/'
clean: false
cleanContents: true
preservePaths: false
trustSSL: false
我改成了这个
rootDirectory: $(Agent.BuildDirectory)
并尝试过
rootDirectory: $(Build.StagingDirectory)
现在构建成功,但现在我收到此错误/警告。没有部署任何东西。
【问题讨论】:
您不会将任何内容复制到“$(build.stagingdirectory)”,因此不会有任何内容要上传 您必须添加复制任务或指向项目的构建输出 只是想看看下面的方法是否能帮助你抓住成功的管道。如果对您的问题没有帮助,请随时在下面发表评论:-) 手动,我可以发布到本地文件夹,然后压缩/解压缩到我的主机。我希望的是,当 VSTS 进行构建时,它会将文件放在发布位置的某个文件夹(类似)中,然后我可以添加一个任务或其他东西来完成复制位。我只是不知道发布的文件如何或去哪里 好吧,好像知道你有什么问题了。在这个问题中,您面临的困惑是不知道dotnet build
步骤完成后文件/文件夹在哪里?那么,这条线索你被rootDirectory
误导了吗?
【参考方案1】:
当你设置system.debug=true
,然后打开日志查看详细的编译过程,你可以看到:
它正在寻找您在任务中指定的目录“/
”。但是,不幸的是,使用/
获得的内容不是您的存储库的任何部分。然后服务器告诉你对不起,在你的 repos 中找不到这样的文件或目录。
这个参数是从你的 VSTS repos 中获取文件或文件夹,所以这里你需要用一些词让服务器知道你想从 Repos 中获取什么。
(1) 由于此任务在您的构建管道中,您可以使用$(Build.SourcesDirectory)
来代表您的整个存储库。
(2) 另外,如果你只是想复制repos的一部分,如文件夹或文件,只需输入相对路径即可。例如:
上传文件夹jobs
下的文件upload.json
,就可以了
输入rootDirectory: jobs/upload.json
。
上传Repos根路径下的文件夹或文件,输入即可
rootDirectory: folder name
,或rootDirectory: folder name
。喜欢:rootDirectory: jobs
,或rootDirectory: web.config
【讨论】:
我不想要 who repo。我只想要应用程序构建时创建的文件的位置,以便我可以将它们传输到 Web 服务器 @djack109, 只是想确认一下我可以为您提供什么帮助吗?如果这个答案对您有用,您可以接受它,这将有利于其他社区。span>以上是关于如何将 VSTS 上的构建配置为 FTP 部署的主要内容,如果未能解决你的问题,请参考以下文章