git - 在 VSTS / Azure DevOps 中推送时将定义镜像存储库构建到外部 git 存储库
问题描述
如标题所示,我在 VSTS/Azure DevOps 中进行构建步骤时遇到问题,我想在推送到 ie 时更新外部 git 存储库。我的 realease 或 master 分支。我已经从市场上尝试了几个插件,但似乎没有一个能满足我的需求。我有几个先决条件:
- 我的外部 git 在端口 33 后面
- 我的外部 git 只接受 SSH 密钥作为身份验证,因此我需要将 SSH 私钥存储在某个地方以便能够推送到外部源。
由于内置镜像功能,我也尝试过 Gitlab,但不幸的是,它不接受端口 33,只有 22 和其他标准端口:-(
非常感谢您!
解决方案
如果“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 推送更改。
推荐阅读
- pyqt5 - 使窗口的一部分在视觉上透明并且对于鼠标输入也是透明的
- c++ - 是否应该在程序结束时调用 FreeLibrary?
- stm32 - 为什么stm32使用ICER=1而不是ISER=0来禁用中断?
- android - 在 LinearLayout 的屏幕上点添加视图
- c# - 自定义 IOptionsFactory 中的奇怪 ThreadAbortException
仅在调试时? - react-native - 导航后检查参数什么都不做
- python - 在 causalnex 中构建基于专业知识的贝叶斯网络
- azure-devops - 使用 appium,我可以从应用中心测试中获取 apk,而不是让开发人员为我在特定文件夹中发布 APK
- python - 使用权重的 ma 获取一个 keras 模型以输出一个结果和另一个
- c - sockaddr_nl 中的 nl_pid 和 nlmsghdr 中的 nlmsg_pid 有什么区别?