Azure DevOps Yaml管道触发器

时间:2020-09-17 07:50:56

标签: azure-devops azure-pipelines

我在Azure DevOps中的管道触发器不会触发。

环境:

  • PipelineA(分支机构开发人员)
  • PipelineB(分支开发)

如果PipelineB成功运行,则应触发PipelineB

这是我当前的PipelineB.yaml代码

a<- c("Question a", "Question b", "Question c", "Question d")

library(shiny)
library(shinyalert)

ui <- fluidPage(
  useShinyalert()
)

server <- function(input, output) {
  shinyalert(
    title = "Hello",
    text = paste0(1:4, ") ", a, collapse="\n"),
    closeOnEsc = TRUE,
    closeOnClickOutside = FALSE,
    html = FALSE,
    type = "success",
    showConfirmButton = TRUE,
    showCancelButton = FALSE,
    confirmButtonText = "OK",
    confirmButtonCol = "#AEDEF4",
    timer = 0,
    imageUrl = "",
    animation = TRUE
  )
}

shinyApp(ui, server)

它过去曾奏效,但突然停了

2 个答案:

答案 0 :(得分:0)

我刚刚创建了几乎相同的管道

trigger: none

resources:        
  pipelines:
  - pipeline: build_pipeline  
    source: kmadof.devops-manual (14)
    branch: master
    trigger:
     branches:
     - master

steps:
- task: Bash@3
  inputs:
    targetType: 'inline'
    script: |
      echo 'Hello world'

,一切正常。您确定在dev分支上运行PipelineA吗?

答案 1 :(得分:0)

这是Pipeline Triggers的文档,请检查以下语句:

但是,如果两个管道使用不同的存储库,则触发的管道将使用其默认分支中的最新版本的代码。

问题的原因:

在您的方案中,触发的管道为PipelineB,而default branch始终为master。由于dev的{​​{1}}分支的管道触发器是在您的PipelineA分支中定义的,而不是默认的dev分支中定义的,因此管道触发器不会触发是预期的行为。

使管道触发器起作用:

1。您可以选择为master的默认dev of PipelineA中的master定义管道触发器。

2。或者您可以更改PipelineB中的Default branch for manual and scheduled builds(将其从master更改为dev)。您可以从#2 of this answer中找到有关如何查找此设置的详细步骤。

以上两种选择都可以解决您的问题并使管道触发工作。