0

如标题所示,我在 VSTS/Azure DevOps 中进行构建步骤时遇到问题,我想在推送到 ie 时更新外部 git 存储库。我的 realease 或 master 分支。我已经从市场上尝试了几个插件,但似乎没有一个能满足我的需求。我有几个先决条件:

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

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

非常感谢您!

4

1 回答 1

0

如果“Build.SourceBranch”与“master”或“release”匹配,则可以添加带有 Condition 的 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 推送更改。

于 2018-10-02T19:07:23.427 回答