如何将最新提交推送到 DevOps 构建管道的外部远程源?



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

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

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

知道如何自动化吗?

现在我有:

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

知道如何自动化吗?

在 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 管道在克隆最新更改时似乎会分离头部。

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

您处于"分离的头部"状态。你可以环顾四周,制作 实验性更改并提交它们,您可以放弃任何提交 您可以在这种状态下通过切换来影响任何分支 回到分支。

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

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

希望这有帮助。