【问题标题】:Can I trigger an Azure DevOps build from Jenkins我可以从 Jenkins 触发 Azure DevOps 构建吗
【发布时间】:2019-04-12 00:44:01
【问题描述】:

我们使用 Jenkins 作为我们的构建协调器,并且只是在为特定项目增加 Azure DevOps 的使用。我们的构建工作正常,从 Git 提取代码并创建我们需要的工件,无论我们是从 git 自动触发还是手动触发。

不过,我仍然希望 Jenkins 担任协调者,这样我们的管道对于团队以外的人来说更加明显。

有很多关于从 DevOps 触发 Jenkins 的信息,但我没有找到任何支持我们需要的东西。有可能吗,你能分享一些例子吗?

【问题讨论】:

    标签: azure jenkins build azure-devops continuous-integration


    【解决方案1】:

    您可以使用 Azure DevOps 的 REST API 触发构建。 API for triggering build is documented here

    基本上它是对以下端点的 POST 操作:

    POST https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=5.0
    

    还有authentication can be done using OAuth or Personal Access Token as documented here

    取决于您选择的技术,there may also be a client object model you can use

    A powershell sample can be found here.

    【讨论】:

    • 这看起来很完美,非常感谢。我宁愿使用 OAuth 进行 REST 调用,也不愿依赖插件。
    • 确保请求正文看起来像这样 { "definition": {"id": <your_pipeline_id>} } 您可以在此 URL https://dev.azure.com/{organization}/{project}/_apis 获取管道列表
    【解决方案2】:

    这可以使用 Azure Pipeline Releases 本机完成。

    1. 在 Azure DevOps 和您的 Jenkins Server 之间创建一个 Service Connection
    2. 在 Azure Devops 的 Pipelines 部分下的 Releases 选项卡中创建一个新的 Release Pipeline
    3. Add an artifact to the release pipeline(在左侧)。在出现的视图中选择“4 more artifact sources”,詹金斯就会出现。
    4. 从下拉列表中选择您为 Jenkins 连接创建的服务连接,然后从下一个下拉列表中选择 Jenkins 作业。

    这让您的开发人员更清楚地了解正在发生的事情。虽然使用休息是一种很好的方法,但它隐藏了很多工作。这样,任何查看版本首页的人都可以看到工件源。

    HTH

    【讨论】:

    • 嘿,谢谢您,我同意您的观点,即在首页上保留所有内容。以上是不是从 DevOps 触发了 Jenkins,而不是相反?
    • 不,它触发了 Jenkins 的 DevOps。我找不到更好的文档,但是如果您设置服务连接并设置新管道并将 Jenkins 添加为人工制品,希望您能看到它是如何工作的。
    • 非常感谢,我去看看。我们现在真的很兴奋,所以看看一些事情是件好事。
    • 谢谢,这帮助我启动和运行。我还使用Trigger Build Task 开始实际构建。
    猜你喜欢
    • 1970-01-01
    • 2019-07-05
    • 2019-08-22
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 2020-06-23
    • 2013-04-24
    • 1970-01-01
    相关资源
    最近更新 更多