将代码从 VSTS 存储库推送到本地 TFS?
Push code from VSTS repository to on-prem TFS?
这是我第一次 post 在这里,如果我错过了这个问题的现有答案,请原谅我。
我公司基本上是为政府的各种客户进行异地开发。在内部,我们使用云 VSTS、Octopus 部署和 Selenium 来确保我们内部 Azure 环境中的持续交付管道。我们希望将此管道扩展到客户的本地环境中,以减少不必要的部署开销。不幸的是,由于安全政策,我们无法使用我们的 VSTS/Octopus 实例将代码直接推送到客户端环境中,因此我正在寻找一种方法将代码从我们的 VSTS 环境中获取到 TFS 的本地实例中托管在他们这边。
我真正想要的是一个系统,客户端可以通过该系统登录到我们的 VSTS 环境,验证代码,然后按下某种按钮,将其拉到他们的本地 TFS,我们自动化的副本构建和测试过程将通过其环境管理 CI 管道并进入产品。
这可能吗?我在这里有什么选择?
没有直接的方法可以实现将具有历史记录的源代码从 VSTS 迁移到 on-premise TFS。您需要第 3 方工具,例如 Commercial Edition of OpsHub(请注意它不是免费的)。
听起来您需要 Octopus Deploy 即将推出的新功能,请参阅 https://octopus.com/blog/roadmap-2017 --> Octopus Release Promotions
我引用:
许多客户在其中发布必须在多个 Octopus 服务器之间流动的环境中工作——两种最常见的情况是:
dev/test 使用一张八达通的机构,但随后需要在每个客户的站点使用八达通服务器来进行生产部署
我会提出以下建议。虽然它包含小的自定义脚本。
- 将构建代理添加到物理上位于客户场所的 vsts。这很简单,只需使用在线端点注册代理即可。
- 在 vsts 中创建从 vsts 获取代码的构建定义。但不是构建而是将其提交给本地 tfs。您将需要一个小的 powershell 代码。您可以将其添加为构建定义中的自定义 powershell 步骤。
- 本地 tfs 安排其余部分。
自定义代码:
假设你的代理在 d:/agent
1. 将本地 tfs 映射到某个目录(比如 c:/tfs)
- 该脚本通过一些代码从 d:/agent/work/ 复制新源到 c:/tfs
- 从 c:/tfs 提交到本地 tfs。
Note:You 将需要 /force 选项(可能还有更多)来防止冲突。
我相信这并不像听起来那么难看。
这是我第一次 post 在这里,如果我错过了这个问题的现有答案,请原谅我。
我公司基本上是为政府的各种客户进行异地开发。在内部,我们使用云 VSTS、Octopus 部署和 Selenium 来确保我们内部 Azure 环境中的持续交付管道。我们希望将此管道扩展到客户的本地环境中,以减少不必要的部署开销。不幸的是,由于安全政策,我们无法使用我们的 VSTS/Octopus 实例将代码直接推送到客户端环境中,因此我正在寻找一种方法将代码从我们的 VSTS 环境中获取到 TFS 的本地实例中托管在他们这边。
我真正想要的是一个系统,客户端可以通过该系统登录到我们的 VSTS 环境,验证代码,然后按下某种按钮,将其拉到他们的本地 TFS,我们自动化的副本构建和测试过程将通过其环境管理 CI 管道并进入产品。
这可能吗?我在这里有什么选择?
没有直接的方法可以实现将具有历史记录的源代码从 VSTS 迁移到 on-premise TFS。您需要第 3 方工具,例如 Commercial Edition of OpsHub(请注意它不是免费的)。
听起来您需要 Octopus Deploy 即将推出的新功能,请参阅 https://octopus.com/blog/roadmap-2017 --> Octopus Release Promotions
我引用: 许多客户在其中发布必须在多个 Octopus 服务器之间流动的环境中工作——两种最常见的情况是: dev/test 使用一张八达通的机构,但随后需要在每个客户的站点使用八达通服务器来进行生产部署
我会提出以下建议。虽然它包含小的自定义脚本。
- 将构建代理添加到物理上位于客户场所的 vsts。这很简单,只需使用在线端点注册代理即可。
- 在 vsts 中创建从 vsts 获取代码的构建定义。但不是构建而是将其提交给本地 tfs。您将需要一个小的 powershell 代码。您可以将其添加为构建定义中的自定义 powershell 步骤。
- 本地 tfs 安排其余部分。
自定义代码: 假设你的代理在 d:/agent 1. 将本地 tfs 映射到某个目录(比如 c:/tfs)
- 该脚本通过一些代码从 d:/agent/work/ 复制新源到 c:/tfs
- 从 c:/tfs 提交到本地 tfs。 Note:You 将需要 /force 选项(可能还有更多)来防止冲突。
我相信这并不像听起来那么难看。