上下文
我们有一个repo,托管在本地gitlab实例上。
它包含一个ressource文件,该文件应该有效。有效性由给定的脚本检查。
我想要什么
我想确保,只要在master
repo上更新gitlab
分支,master
新头的文件就会通过验证脚本。
探讨了可能性
master
的所有更新都应通过合并请求
Merge
按钮的方法,hooks/
个回购的裸git
目录中上传一个脚本,但我不知道git中有pre-merge
个钩子可以通过开发人员推送对master的更新
update
钩子,它验证了裸git仓库上的主分支,master
分支问题
使用gitlab
和git
,如何确保master
分支的更新仅允许跳转到文件的验证版本?
答案 0 :(得分:2)
您尝试设置的是持续集成,(在Gitlab中称为“管道”),以检查合并请求是否会通过您的脚本。 Check out the Gitlab features page
设置非常简单:
.gitlab-ci.yml
文件which describes what script needs to be run in order to test your resource file。请注意,如果测试通过,脚本应以0退出,否则返回非零值。来源:https://docs.gitlab.com/ee/ci/pipelines.html
这个简短的示例可能会帮助您设置.gitlab-ci.yml
文件
stages:
- tests
ResourceFileTests:
stage: tests
allow_failure: false
script:
- bash /path/to/the/validation_script.sh
您可以使用GitLab's CI lint tool检查配置文件是否有效。