Gitlab-ci runner:如何在克隆存储库之前执行操作

pas*_*ama 6 gitlab-ci-runner

我想知道是否可以在克隆存储库之前执行一些操作。事实上,据我所知,gitlab-ci 运行程序的第一个操作是在执行任何 脚本之前克隆要构建的存储库。

我的问题:

  • 为了构建我的项目(让我们称之为我的插件),我需要克隆另一个特定的存储库,让我们称之为工作区,然后我需要执行一些操作来配置这个工作区(使用 cmake)。
  • 完成后,我需要将我的项目放入工作区的特定子文件夹中,例如工作区文件夹/plugins/ my plugin中。
  • 然后我只需要配置我的插件(使用 cmake)和构建/测试(使用不同的 make 命令)。

直观的方法是能够在运行程序克隆我的插件之前执行早期操作。例如:

  • cd builds/命名空间/我的插件
  • git clone “工作区的git地址”
  • cd 工作区 && cmake . -D“一些定义
  • 光盘插件

=> 从这里克隆/构建/测试可以照常进行。

我知道有before_script操作,但它是在克隆之后执行的。

我还看到运行程序的全局 config.toml 文件的 [[runner]] 部分中有pre_clone_script选项,我想知道是否可以使用它。不幸的是,这意味着所有项目都将运行这个脚本,这当然不是一个好主意......

好吧,如果有人有建议,或者更好地解决这个问题,我将不胜感激!

Mar*_*mid 6

自 Gitlab 16 起,pre_clone_script功能已被弃用,取而代之的是pre_get_sources_scripthook。

请参阅https://about.gitlab.com/blog/2023/03/27/changes-to-the-preclonescript/https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-跑步者部分

文档说:

pre_clone_script 已弃用 - 使用 pre_get_sources_script 代替。

pre_get_sources_script 在更新 Git 存储库和更新子模块之前要在运行器上执行的命令。例如,首先使用它来调整 Git 客户端配置。


Amo*_*mum 2

我知道这个问题已经很老了,但现在https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-section提到了pre_clone_script,但这需要修改gitlab配置