我目前正在设置Travis来运行我们的测试,如果测试成功就部署它。这很直接,但我不想在满足这些条件时部署:
- The time is between 07:00 and 22:00 (workdays)
- During the deploy the database has to migrate or elastic search has to index
因为迁移或索引可能非常昂贵并且意味着停机。我使用的是heroku提供程序,使用on
参数非常简单,但是我遇到了以下情况:
5分钟后
^{3}$所以我真正想要的是计划/延迟部署。当Travis检测到需要运行一个昂贵的操作时,它会安排一个部署,所有后续构建都会跳过部署,直到使用昂贵的脚本完成部署。部署应该在工作时间以外的任何地方自动启动。在
我希望我已经描述清楚了,如果需要更多的信息请告诉我!在
好吧,在特拉维斯的同事们的大力帮助下,我想出了以下解决方案:
我已经激活了CronJobs,并将它们设置为每天运行。在编写本文时,您不能指定cron的运行时间,而是在您创建cron时对其进行调度。所以在半夜里创建一个cron,它每晚运行。
让git检查迁移/索引文件在过去24小时内是否有任何更改,如果有,则跳过部署。
检查travis事件类型,只有在cron运行时才执行索引/迁移。
利润。
代码
相关问题 更多 >
编程相关推荐