Azure 管道 - 执行容器中的一个阶段
Azure pipeline - Execute one of the stages in a Container
我们的组织已开始迁移到 Azure。
我们有 Azure 管道模板,在 vmImage: 'ubuntu-18.04'
上 运行s 签出、构建和部署 个阶段。
我们的计划是在模板中引入 “测试” 阶段,在容器中引入 运行 测试。
问题:
- 当整个管道 运行 在
vmImage
上运行时,是否可以 运行 容器中的阶段之一(测试)?
- 如何将构建工件从 vmImage 复制到容器中的 运行 测试?
有人可以解释一下吗?
非常感谢!
When the entire pipeline is running on vmImage, is it possible to run one of the stages (Test) in Container?
在 Azure Devops Yaml Pipeline 中,您可以在作业级别指定 container
。
然后作业可以 运行 在目标容器上。
这里是a doc的详细信息。
How to copy build artifacts from vmImage to run tests in Container?
在前一阶段,您可以使用 Publish Build Artifacts task
.
发布构建工件
在阶段(运行容器中的作业),您可以使用 Download Build Artifacts
任务将工件下载到容器中。
最后,您可以添加测试它的步骤。
这是我的示例:
resources:
containers:
- container: python
image: python:3.8
trigger:
- none
stages:
- stage: artifacts
pool:
vmimage: ubuntu-latest
jobs:
- job: test123
steps:
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.Sourcesdirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
- script: echo $(System.ArtifactsDirectory)
- stage: testcontainer
jobs:
- job: test123
container: python
steps:
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- script: |
echo $(System.ArtifactsDirectory)
displayName: 'Run a multi-line script'
注意:容器镜像来自DockerHub、Azure Container Registry或其他私有容器注册表。
我们的组织已开始迁移到 Azure。
我们有 Azure 管道模板,在 vmImage: 'ubuntu-18.04'
上 运行s 签出、构建和部署 个阶段。
我们的计划是在模板中引入 “测试” 阶段,在容器中引入 运行 测试。
问题:
- 当整个管道 运行 在
vmImage
上运行时,是否可以 运行 容器中的阶段之一(测试)? - 如何将构建工件从 vmImage 复制到容器中的 运行 测试?
有人可以解释一下吗?
非常感谢!
When the entire pipeline is running on vmImage, is it possible to run one of the stages (Test) in Container?
在 Azure Devops Yaml Pipeline 中,您可以在作业级别指定 container
。
然后作业可以 运行 在目标容器上。
这里是a doc的详细信息。
How to copy build artifacts from vmImage to run tests in Container?
在前一阶段,您可以使用 Publish Build Artifacts task
.
在阶段(运行容器中的作业),您可以使用 Download Build Artifacts
任务将工件下载到容器中。
最后,您可以添加测试它的步骤。
这是我的示例:
resources:
containers:
- container: python
image: python:3.8
trigger:
- none
stages:
- stage: artifacts
pool:
vmimage: ubuntu-latest
jobs:
- job: test123
steps:
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.Sourcesdirectory)'
ArtifactName: 'drop'
publishLocation: 'Container'
- script: echo $(System.ArtifactsDirectory)
- stage: testcontainer
jobs:
- job: test123
container: python
steps:
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- script: |
echo $(System.ArtifactsDirectory)
displayName: 'Run a multi-line script'
注意:容器镜像来自DockerHub、Azure Container Registry或其他私有容器注册表。