将 push trigger 和 nightly build 放在一起有意义吗?
Does it make sense to have push trigger and nightly build together?
我是一名非常新的 DevOps 工程师,我主要处理 CI 个流程。
我想知道在每次推送时定义夜间构建 和 构建是否有意义。
貌似没有意义,既然代码是每次push后build的,为什么要半夜build呢,push到仓库的时候就已经build了
我说的对吗?
恕我直言,你是对的 - 如果同时你有一个推送触发器,那么有一个固定的时间表是没有意义的。
您仍然希望每晚构建(或其他固定时间表)的一个原因可能是您不能 运行 对每个构建进行完整测试。
例如,您可以决定只对每次推送触发的构建进行最小测试(或冒烟测试),但每天(例如晚上)进行一次完整测试 运行.
我会分享我们所做的,也许对你有帮助:
我们有三个构建层,一个用于涵盖像您指出的 Push 示例这样的案例,另一个包含一组 PowerShell 测试,还有一个包含完整测试集的计划层,大约需要 5 个小时。
正如您所想象的那样,每个案例都有一个基于时间和多项测试的场景。
据我所知,midnight build的好处是时间长running/deployment的任务可以在午夜运行
半夜完成这些任务运行,第二天就可以直接查看结果了。
在这种情况下,您可以为特定任务设置 condition 以控制它是否在午夜 运行。你可以用$(Build.Reason)
来判断。
另一方面,我们建议您可以设置一个特定的时间表触发器。
每当您将更新推送到指定分支或推送指定标签时,CI 触发器都会导致管道 运行。只有在代码更改时才会触发构建。
管道本身和运行环境的变化不会触发构建。
但他们有时可以确定项目是否可以 运行 成功。
在这种情况下,计划触发器可以运行在特定时间构建以确保项目可执行。
我是一名非常新的 DevOps 工程师,我主要处理 CI 个流程。
我想知道在每次推送时定义夜间构建 和 构建是否有意义。
貌似没有意义,既然代码是每次push后build的,为什么要半夜build呢,push到仓库的时候就已经build了
我说的对吗?
恕我直言,你是对的 - 如果同时你有一个推送触发器,那么有一个固定的时间表是没有意义的。
您仍然希望每晚构建(或其他固定时间表)的一个原因可能是您不能 运行 对每个构建进行完整测试。 例如,您可以决定只对每次推送触发的构建进行最小测试(或冒烟测试),但每天(例如晚上)进行一次完整测试 运行.
我会分享我们所做的,也许对你有帮助:
我们有三个构建层,一个用于涵盖像您指出的 Push 示例这样的案例,另一个包含一组 PowerShell 测试,还有一个包含完整测试集的计划层,大约需要 5 个小时。
正如您所想象的那样,每个案例都有一个基于时间和多项测试的场景。
据我所知,midnight build的好处是时间长running/deployment的任务可以在午夜运行
半夜完成这些任务运行,第二天就可以直接查看结果了。
在这种情况下,您可以为特定任务设置 condition 以控制它是否在午夜 运行。你可以用$(Build.Reason)
来判断。
另一方面,我们建议您可以设置一个特定的时间表触发器。
每当您将更新推送到指定分支或推送指定标签时,CI 触发器都会导致管道 运行。只有在代码更改时才会触发构建。
管道本身和运行环境的变化不会触发构建。
但他们有时可以确定项目是否可以 运行 成功。
在这种情况下,计划触发器可以运行在特定时间构建以确保项目可执行。