.gitlab-ci.yml是否适用于Gitlab CI中GIT_STRATEGY = none的作业?

时间:2017-10-01 18:20:58

标签: gitlab-ci gitlab-ci-runner

Gitlab文档说明了以下GIT_STRATEGY: none

  

none也会重新使用项目工作区,但会跳过所有Git操作(包括GitLab Runner的预克隆脚本,如果存在)。它主要用于专门针对工件(例如,部署)的作业。 Git存储库数据可能存在,但肯定会过时,因此您应该只依赖从缓存或工件带入项目工作区的文件。

我仍然对这应该如何工作感到困惑。如果不保证源代码存在,那么项目工作区中可能没有源,因此.gitlab-ci.yml文件也将丢失。如果没有构建脚本,作业必须失败。如果源仅在部分时间内缺失,具体取决于外部因素,则作业将随机失败,这甚至比每次失败都要糟糕。但是,如果它每次都失败,那么该功能的重点是什么?

我看到的另一种可能性是.gitlab-ci.yml可能会在运行时注入,因此即使没有存储库的新副本,也会有构建脚本。如果是这样,我可以从我的存储库中定义更多文件以注入构建过程吗?这些特定工​​作有哪些限制?

1 个答案:

答案 0 :(得分:0)

是的,.gitlab-ci.yml文件不会像所有其他文件一样复制到系统上。但这并不重要,因为作业不是从文件中运行的。作业在目标上作为脚本运行(甚至在此之前,它定义了将运行的目标)。虽然您可能希望从其他服务器复制文件,但不能仅复制没有git克隆的选定文件。

当你真的不想克隆千兆字节的存储库数据只是为了发送通知时,你想要运行GIT_STRATEGY: none的一个很好的例子就是slackchat通知作为构建的最后阶段。< / p>