1

.gitlab-ci.yml可以添加一个在所有定义的作业before_script之前运行的默认值。script

我的问题是为什么要before_script在工作中定义而不是仅仅script在工作中使用?是before_script在作业内部使用只是为了覆盖默认值before_script,还是有其他情况或原因?

4

1 回答 1

2

正如您所提到的,在使用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 实例中运行,并将在不同的情况下运行。有关更多信息,请参阅文档

于 2022-01-19T19:02:37.667 回答