我有我的主要分支保护。我已经将gitlab-ci配置为只在main
上执行。
我的要求是,没有人应该能够触发CI,除非有变化被审查和合并到主要。这工作正常,直到一些开发人员更新CI并删除only: main
条件,然后只要他将其推到分支,它就会触发特定的一个或多个步骤。即使主配置项仍然强制执行这些条件,并且这些更改尚未合并。
gitlab使用哪个版本的.gitlab-ci.yml
文件触发CI?从上面的场景中,我假设它是一个被推送的分支,而不是main
上的分支。
如果以上是真的,有没有一种方法可以限制这种行为,并实现我想要的,那就是只触发main
版本的CI,所以没有人可以在没有适当批准的情况下更改它?
stages:
- build
- test
build-code-job:
stage: build
script:
- echo "Hello."
# only:
# - main
test-code-job1:
stage: test
script:
- echo "Test"
only:
- main
1条答案
按热度按时间06odsfpq1#
实现此目的的最佳方法是在项目设置中指定自定义配置文件。例如,您可以使用像
.gitlab-ci.yml@namespace/my-config-project:main
这样的配置值,以便始终从特定分支上的特定项目获取CI配置。如果您愿意,它甚至可以是具有不同开发人员权限的不同项目。只有具有维护者权限或更高权限的用户才能更改此项目设置。