GitlabHQ + Gitlab-CI:定制构build逻辑

我们在基础架构中使用GitlabHQ和Gitlab-CI。 有了这样的持续集成,我们愿意定制CI中的构build逻辑。

现在在新的提交GitlabHQ触发CI的钩子,它告诉gitlab-ci-runner运行构build或testing。

亚军有一个硬编码的逻辑(至less不能在Web UI中定制),并且在运行用户定义的脚本之前发出这些命令:

 cd $ HOMEDIR / gitlab-ci-runner / tmp / builds && git clone git @ $ GITLABSERVER:root / test1.git project-1 && cd project-1 && git checkout $ COMMIT

 cd $ HOMEDIR / gitlab-ci-runner / tmp / builds / project-1 && git reset --hard && git checkout $ COMMIT

然后用户定义的脚本去

我想要什么:

  • 自定义传递给git的选项
  • 在发出上面的命令之前运行一些用户定义的脚本(在我的情况下,我想启动一个虚拟机保持在runner上,以获得一个干净的环境testing)

问题是:有没有人有类似的情况? 有没有一个很好的方法来解决缺less必要的选项?

现在我正在使用一个非常肮脏的黑客:用名为“git”的bash脚本replacegit二进制文件,它捕获传递给git的选项并在虚拟机中运行它,但这似乎不是一个好方法IMO。