Azure devops无法发布Apk android



这里是azure DevOps的新手,试图在示例android应用程序上设置ci/cd进行测试。我有以下天青-哌啶。yml

trigger:
- master
pool: default
variables:
- name: 'apkFilePath'
value: '**/*debug*.apk'
steps:
- task: Gradle@2
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
publishJUnitResults: false
testResultsFiles: '**/TEST-*.xml'
tasks: 'assembleDebug'
- task: CopyFiles@2
displayName: "Copy files"
continueOnError: false
inputs:
Contents: ${apkFilePath}
targetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
continueOnError: false
displayName: "Publish to azure"
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName:   'debug'

当我运行管道时,我在publishBuildArtifacts步骤中收到警告##[警告]目录'/Users/XXXX/Desktop/myagent/_work/2/a'为空。不会向生成项目"debug"添加任何内容。

我猜文件没有被复制到"$(Build.ArtifactStagingDirectory(",但我无法理解为什么?

任何帮助都将被视为

我没有在yaml文件中发现任何错误。您得到的错误一定是由于apkFilePath造成的。如果您检查Microsoft的"复制文件任务"文档,您会发现"内容"是作为副本一部分包含的所需文件路径。并且它支持多行匹配模式,如下所示。

  • *复制指定源文件夹中的所有文件
  • **复制指定源文件夹中的所有文件以及所有子文件夹中的全部文件
  • **bin**从任何bin文件夹递归复制所有文件

请记住,该模式用于仅匹配文件路径,而不匹配文件夹路径。尝试以下yaml片段将.apk文件从源代码复制到工件目录。

- task: CopyFiles@2
displayName: 'Copy Files'
inputs:
SourceFolder: 'MobileApp/SourceCode -Android' 
Contents: '**/*.apk'
TargetFolder: '$(build.artifactStagingDirectory)'

- task: CopyFiles@2
- displayName: 'Copy Files'
inputs:
SourceFolder: $(Build.SourcesDirectory) //optional
contents: '**/*.debug.apk'
targetFolder: '$(build.artifactStagingDirectory)'

SourceFolder是包含要复制的文件的文件夹。如果保留为空,则从repo的根文件夹进行复制(与指定$(Build.SourcesDirectory)时相同(。

查看这些使用Azure DevOps构建Android移动应用程序以及如何使用Azure DevOp构建和签署您的Android应用程序文档以了解更多信息。还要查看堆栈溢出中发布的类似问题,以获得更多了解。

最新更新