首页 > 解决方案 > 如何将最新提交推送到 devops 构建管道的外部远程源?

问题描述

我有 2 个单独的代码仓库,包含相同的代码,源 1 和源 2。我们的开发团队只将新代码推送到源 1,但我需要从源 2 构建我们的代码。

如何使用 Azure Devops CI 使两个源远程自动保持最新?

我的想法是使用连接到 Origin 1 的 Azure Devops Build Pipeline 并在构建中添加 Origin 2 作为远程,然后推送更改,但是在克隆最新更改时,devops 管道似乎分离了头部。

知道如何自动化吗?

现在我有:

- task: CmdLine@2
  inputs:
    script: |
      echo Adding git remote
      git remote add origin2 https://myRemoteoriginGit
      git push origin2 my-branch
    failOnStderr: true

标签: gitazurebuildazure-devops

解决方案


知道如何自动化吗?

在 Origin 1 管道中,您可以在PowerShell任务中尝试以下脚本。

- task: PowerShell@2
  inputs:
    targetType: 'inline'
    script: |
      $branch="$(Build.SourceBranch)".replace("refs/heads/","")
      git remote add Reponame https://PAT@dev.azure.com/org/project/_git/reponame
      git checkout $branch
      git push Reponame $branch -f

您可以设置所有分支来触发此构建(CI 触发器)。

然后此脚本将更新对 Origin 2 中相应分支的更改。

克隆最新更改时,devops 管道似乎分离了头部。

根据你的描述,我猜你看到的是这段文字:</p>

您处于“分离 HEAD”状态。您可以环顾四周,进行实验性更改并提交它们,您可以放弃在此状态下所做的任何提交,而不会通过切换回分支来影响任何分支。

如果是,这就是 Azure DevOps 的工作方式。没有什么是错的。

这是一张票,你可以参考一下。

希望这可以帮助。


推荐阅读