Azure DevOps yaml 管道:如何仅下载引用管道的特定工件?

nop*_*ace 4 azure-devops azure-pipelines

通过引用 YAML 管道资源中的另一个管道,所引用管道发布的所有工件都会自动下载。我不知道如何停止这种行为并仅下载所需的工件。仅添加所需工件的下载任务不会停止整套工件的初始下载。

Krz*_*tof 8

所以你需要的是禁用默认行为

工件仅在部署作业中自动下载。在常规构建作业中,您需要显式使用下载步骤关键字或下载管道工件任务。

要阻止自动下载工件,请添加下载步骤并将其值设置为 none:

steps:
- download: none
Run Code Online (Sandbox Code Playgroud)

然后添加额外的步骤来下载特定的工件。

这是一个例子:


resources:
  pipelines:
  - pipeline: MultipleArtifact
    project: 'DevOps Manual'
    source: 'kmadof.devops-manual (64)'

jobs:
- job: Build
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - script: echo Hello, world!
    displayName: 'Run a one-line script'

  - script: |
      echo Add other tasks to build, test, and deploy your project.
      echo See https://aka.ms/yaml
    displayName: 'Run a multi-line script'

  # Track deployments on the environment.
- deployment: DeployWeb
  displayName: deploy Web App
  pool:
    vmImage: 'Ubuntu-16.04'
  # Creates an environment if it doesn't exist.
  environment: 'smarthotel-dev'
  strategy:
    # Default deployment strategy, more coming...
    runOnce:
      deploy:
        steps:
        - download: none
        - download: MultipleArtifact
          artifact: art-1
        - checkout: self 
        - script: echo my first deployment
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述