Azure Pipelines FtpUpload@2任务无法上传单个文件仅能上传目录
问题根本原因
- Azure DevOps的
FtpUpload@2任务中,filePatterns的匹配范围是相对于rootDirectory参数指定的路径进行查找的。你已经将rootDirectory设置为./dist,任务匹配文件时会默认以该目录作为根目录,此时配置的filePatterns: 'dist/*.js'会被解析为查找./dist/dist/*.js路径下的文件,该路径不存在,因此触发找不到待上传文件的警告。
修正后的配置
如果要上传dist目录下直接存放的所有.js文件(不包含子目录内的js文件),配置如下:
- task: FtpUpload@2 inputs: credentialsOption: 'inputs' serverUrl: 'FTPServerUrl' username: 'Username' password: 'Password' rootDirectory: './dist' filePatterns: '*.js' remoteDirectory: '/site/wwwroot' clean: true cleanContents: true preservePaths: false trustSSL: false
如果需要上传dist目录下所有层级的所有.js文件(包含子目录内的js文件),将filePatterns修改为**/*.js即可:
filePatterns: '**/*.js'
补充注意事项
- 如果你需要保留js文件在dist目录下的相对目录结构上传到远程服务器,可以将
preservePaths参数设置为true。 - 注意
clean和cleanContents参数开启后会先清空远程目录下的原有内容,确认操作符合你的预期再开启,避免误删文件。
内容的提问来源于stack exchange,提问作者Robin Doorenbosch
相关产品推荐
相关产品推荐

