【发布时间】:2016-01-05 04:14:14
【问题描述】:
我是一名初学者网络程序员,我的公司要求我研究最适合他们的 CI。起初他们想使用 VS Team Services,因为它对不到 5 人免费。以下是我们的情况
- 我们将网站托管为 Azure 云服务
- 网站的代码在 GitHub 上,并且希望保持这种方式(开发和主分支)
- GitHub 上有一个单独的硒测试存储库(仅 master 分支)
我们喜欢遵循的工作流程如下
在 GitHub 上与 dev 分支合并 -> 在 Team Services 上构建触发器 -> 构建通过 -> 部署到 Azure 上的测试槽 -> 从 Github 主分支获取最新的 selenium 测试 -> 针对测试槽 URL 构建和运行 selenium 测试在 Azure 上 -> 测试通过 -> 请求部署到生产和其他插槽(如演示)的权限。
如果任何构建或测试失败,CI 将停止并向开发人员发送电子邮件。
到目前为止我所知道的:
我四处搜索并设法在与分支合并时触发 Team Services 上的自动构建。但正如我所说,主要的 web 代码和 selenium 测试位于两个不同的存储库中,我的老板希望保持这种方式。 我还了解到,在托管的 Team Services 构建代理上运行 selenium firefox 测试是不可能的,因此我们计划使用一些本地 PC 来构建和测试(尽管我们最初希望一切都在 Team Services 上发生)
问题 #1:测试和主应用程序位于两个不同的存储库中,所以我不知道 Team Services 是否支持链式构建(主应用程序构建通行证 -> 硒构建和运行 -> ...) . 问题#2:在 selenium 测试通过后,当代码在 github 上时,我如何让 VS Team Services 部署到 Azure 云服务
如果您认为在 Team Services 中执行此操作太复杂,请建议适合 Team Services 的其他工作流程(但将存储库保留在 github 上)或其他 CI 服务,这些服务可以满足我们的需求,但更易于使用。
提前感谢大家尝试回答我的问题
【问题讨论】:
标签: azure selenium github continuous-integration azure-devops