Azure DevOps 管道 - Flutter - 目录“/home/vsts/work/1/a”为空。不会添加任何内容来构建工件 'drop'
Azure DevOps Pipeline - Flutter - Directory '/home/vsts/work/1/a' is empty. Nothing will be added to build artifact 'drop'
一段时间以来,我一直在尝试发布一个 flutter artefact,但一直出现同样的错误。许多 Whosebug 解决方案似乎都适用于 .NET,但对我来说却不行。我正在使用 Flutter Tasks 扩展来构建。
感谢您的帮助。
如果有人以后需要它,这是解决方案。 https://gist.github.com/OriginalMHV/bca27623c32dc04a311f6dff837e2d42
stages:
- stage: Build
jobs:
- job: iOSBuild
pool:
vmImage: 'macOS-latest'
steps:
- task: FlutterInstall@0
inputs:
channel: 'stable'
version: 'latest'
- task: FlutterBuild@0
inputs:
target: ios
projectDirectory: $(projectDirectory)
iosCodesign: false
iosTargetPlatform: device
- job: AndroidBuild
pool:
vmImage: 'macOS-latest'
steps:
- task: FlutterInstall@0
inputs:
channel: 'stable'
version: 'latest'
- task: FlutterBuild@0
inputs:
target: apk
projectDirectory: $(projectDirectory)
- stage: CopyAndPublishArtifact
jobs:
- job: CopyArtifactFiles
steps:
- task: CopyFiles@2
inputs:
SourceFolder: $(Build.SourcesDirectory)
TargetFolder: $(Build.ArtifactStagingDirectory)
- job: PublishArtifact
steps:
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)
ArtifactName: drop
确保将工件复制到创建它们的作业中。
每个作业(以及每个阶段)都在代理上运行,并且在每个作业开始时清理作业的目录。
因此,您的两个构建作业都必须发布它们自己的工件并使用唯一的名称。然后你不需要最后阶段。
如果您想要一个包含两个文件的工件,您需要在一个作业中构建两个工件,或者让发布作业下载 2 个工件,然后创建一个包含两个工件的新工件 iOS 和 Android 个包。
一段时间以来,我一直在尝试发布一个 flutter artefact,但一直出现同样的错误。许多 Whosebug 解决方案似乎都适用于 .NET,但对我来说却不行。我正在使用 Flutter Tasks 扩展来构建。
感谢您的帮助。 如果有人以后需要它,这是解决方案。 https://gist.github.com/OriginalMHV/bca27623c32dc04a311f6dff837e2d42
stages:
- stage: Build
jobs:
- job: iOSBuild
pool:
vmImage: 'macOS-latest'
steps:
- task: FlutterInstall@0
inputs:
channel: 'stable'
version: 'latest'
- task: FlutterBuild@0
inputs:
target: ios
projectDirectory: $(projectDirectory)
iosCodesign: false
iosTargetPlatform: device
- job: AndroidBuild
pool:
vmImage: 'macOS-latest'
steps:
- task: FlutterInstall@0
inputs:
channel: 'stable'
version: 'latest'
- task: FlutterBuild@0
inputs:
target: apk
projectDirectory: $(projectDirectory)
- stage: CopyAndPublishArtifact
jobs:
- job: CopyArtifactFiles
steps:
- task: CopyFiles@2
inputs:
SourceFolder: $(Build.SourcesDirectory)
TargetFolder: $(Build.ArtifactStagingDirectory)
- job: PublishArtifact
steps:
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)
ArtifactName: drop
确保将工件复制到创建它们的作业中。
每个作业(以及每个阶段)都在代理上运行,并且在每个作业开始时清理作业的目录。
因此,您的两个构建作业都必须发布它们自己的工件并使用唯一的名称。然后你不需要最后阶段。
如果您想要一个包含两个文件的工件,您需要在一个作业中构建两个工件,或者让发布作业下载 2 个工件,然后创建一个包含两个工件的新工件 iOS 和 Android 个包。