.gitlab-ci.yml
可以添加一个在所有定义的作业before_script
之前运行的默认值。script
我的问题是为什么要before_script
在工作中定义而不是仅仅script
在工作中使用?是before_script
在作业内部使用只是为了覆盖默认值before_script
,还是有其他情况或原因?
.gitlab-ci.yml
可以添加一个在所有定义的作业before_script
之前运行的默认值。script
我的问题是为什么要before_script
在工作中定义而不是仅仅script
在工作中使用?是before_script
在作业内部使用只是为了覆盖默认值before_script
,还是有其他情况或原因?
正如您所提到的,在使用include:
(模板)和/或extends:
和/或全局变量/默认值时,添加或覆盖步骤对作业最有用。before_script
例如,您可以创建一个隐藏的关键作业,该作业定义script:
旨在由其他作业扩展。扩展它的那些作业可以提供一个before_script:
不覆盖的密钥,script:
反之亦然。
.install_dependencies:
before_script:
- pip install --upgrade pip
- pip install -r requirements.txt
my_test_job:
extends: .install_dependencies
script:
- pytest
所以,它只是为了工作的组成。否则,没有区别。before_script:
并且script:
在作业运行时简单地连接在一起。
值得一提的after_script:
是script:
,它与/有很大不同before_script:
。after_script
在单独的 shell 实例中运行,并将在不同的情况下运行。有关更多信息,请参阅文档。