在 VSTS / Azure DevOps 中推送时将存储库镜像到外部 git 存储库的生成定义



正如标题所示,我在 VSTS/Azure DevOps 中执行构建步骤时遇到问题,我想在推送到 ie 时更新外部 git 存储库。 我的实现或主分支。我已经尝试了市场上的几个附加组件,但似乎都不符合我的需求。我有几个先决条件:

  • 我的外部 git 在端口 33 后面
  • 我的外部 git 只接受 SSH 密钥作为身份验证,所以我需要将 SSH 私钥存储在某个地方以便能够推送到外部源。

由于内置的镜像功能,我也尝试了 Gitlab,但不幸的是,它不接受端口 33,仅接受 22 和其他标准端口:-(

提前非常感谢!

如果"Build.SourceBranch"与"master"或"release"匹配,则可以添加带有条件的PowerShell构建步骤,然后PowerShell脚本类似于此示例。 这会一次性推送所有内容,而不是每次提交。这也可以赶上后面的存储库。

# Test to see if remote alias already exists
git ls-remote ssh://user@host:1234/srv/git/TargetRepoSameName
# Add a remote alias
git remote add any_name_123 ssh://user@host:1234/srv/git/TargetRepoSameName
# push local repo to 'any_name_123'
git push any_name_123 --all
# optional: delete all tags before attempting to push local tags
git push any_name_123 --delete `$(git tag -l)
# push local tags to remote repo 
git push any_name_123 --tags

请注意,我使用的是端口 # 1234,而如果您不指定端口,则 22 是默认值。 请在您的整体解决方案中使用此代码段。 您也可以使用 git-hook 来推送更改。

最新更新