目标
我是Azure和管道的新手,我正在尝试从Azure中的pr触发管道。repo在Github上。
下面是管道yaml:管道.yml
trigger: none # I turned this off for to stop push triggers (but they work fine)
pr:
branches:
include:
- "*" # This does not trigger the pipeline
stages:
- stage: EchoTriggerStage
displayName: Echoing trigger reason
jobs:
- job: A
steps:
- script: echo 'Build reason::::' $(Build.Reason)
displayName: The build reason
# ... some more stages here triggered by PullRequests....
# ... some more stages here triggered by push (CI)....
Github上的pr看起来像这样:
问题
但是,当push触发器工作正常时,管道不会被触发。
我读了文档,但我不明白为什么这不起作用。
当我通过git push
触发它时,管道工作得非常好。然而,当我试图用Github的PR触发它时,什么也没有发生。在上面的代码中,我尝试关闭推送触发器,并允许所有公关触发管道。还是没动静
我还不想删除管道并创建一个新管道。
更新
我更新了yaml文件,使其按照下面的建议工作。由于管道现在实际上是通过一个push命令运行的,所以yaml文件的其余细节都不相关,因此被忽略了。
我尝试过的其他事情
- 在Github上打开新PR
- 关闭/重新打开Github上的PR
- 在Github上更改现有PR
->仍然没有触发管道。
4条答案
按热度按时间knsnq2tg1#
你的管道出了点问题。应该是这样的:
请把这个兑换
到
编辑
我用了你的管道
一切似乎都很顺利
这里是PR,这里是build for it
我没有这样做,但你可以尝试通过分支策略来强制执行。要做到这一点,请转到存储库设置,然后如下所示:
noj0wjuj2#
解决方案是转到Azure管道->编辑管道->触发器->启用PR验证。
vwhgwdsa3#
您可以按照下面的步骤来排除管道故障。
首先,你需要确保管道是从Azure DevOps Portal上的yaml文件创建的。请参见本教程中的示例。
2,下面的部分你的yaml文件是不正确的.
- script
任务应该在steps
部分下。变更:
收件人:
3,我看到你在yaml文件中使用了模板。请确保模板yaml文件格式正确。举例来说:
您的
dockerbuild-dashboard-client.yml
模板是一个步骤模板。您需要确保其内容如下所示:你的
webapprelease-dashboard-dev-client.yml
是一个工作模板。其内容应如下所示:4、在Azure DevOps Portal上创建管道后。您可以手动运行此管道,以确保yaml文件中没有错误,并且管道可以成功执行。
5、如果以上都被勾选,但PR触发器仍然不工作。您可以尝试删除在Azure devops门户上创建的管道(在第一步中创建),并从yaml文件重新创建新管道。
6mzjoqzu4#
非常糟糕。我在Azure上遇到了很多问题。
关闭
Limit building pull requests from forked GitHub repositories
使能的管道PR触发器。在您的devops组织中:
这是非常糟糕的,因为据推测,这个设置是从一个分叉的回购PR,而不是从同一个分支的检查。