推动触发器和夜间构建在一起有意义吗?

问题描述

我是一名相当新的DevOps工程师,我主要处理CI流程。

我想知道是否应该在每次推送时同时定义每晚构建

表面上看,这是没有意义的,因为如果代码是在每次推送之后生成的,为什么您需要在午夜进行生成,所以将其推送到存储库时已经生成了。

我说的对吗?

解决方法

恕我直言,您是对的-如果您同时具有推动触发器,则没有固定的时间表是没有道理的。

您仍然想进行夜间构建(或其他固定时间表)的原因可能是,如果您无法对每个构建都进行全面测试。 例如,您可以决定只对每次触发触发的构建都进行最低限度的测试(或冒烟测试),但是每天(例如晚上)进行一次完整的测试运行。

,

据我所知,午夜构建的优点是可以在午夜运行运行/部署时间长的任务。

这些任务在午夜运行后,您可以在第二天直接查看结果。

在这种情况下,您可以为特定任务设置condition,以控制其是否在午夜运行。您可以使用$(Build.Reason)进行判断。

另一方面,我们建议您设置特定的时间表触发器。

CI触发器会在您将更新推送到指定分支或推送指定标签时使管道运行。仅在代码更改时触发构建。

管道本身和操作环境中的更改不会触发构建。

但是他们有时可以确定项目是否可以成功运行。

在这种情况下,计划触发器可以在特定时间运行构建以确保项目是可执行的。

,

我将分享我们的工作,也许会为您提供帮助:

我们有三个构建层,一个用于覆盖您所指出的Push示例之类的构建层,另一个用于一组PowerShell测试,另一个用于计划的包含全部测试的过程,大约需要5个小时。

您可以根据时间和各种测试来描绘每种情况的情况。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...