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

问题描述 投票:0回答:2

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

我的问题:

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

我的插件之前执行早期操作。例如:

    cd builds/
  • namespace/我的插件
  • git clone
  • “工作区的git地址”
  • cd 工作区 && cmake . -D"
  • 一些定义"
  • cd 插件
=> 从这里克隆/构建/测试可以照常进行。

我知道有

before_script 操作,但它是在 after 克隆之后执行的。

我还看到运行程序的全局 config.toml 文件的 [[runner]] 部分中有

pre_clone_script 选项,我想知道是否可以使用它来实现此目的。不幸的是,这意味着所有项目都将运行这个脚本,这当然不是一个好主意......

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

gitlab-ci-runner
2个回答
2
投票
我知道这个问题已经很老了,但现在

https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-section提到了pre_clone_script

但这需要修改
gitlab配置


0
投票

自 Gitlab 16 起,pre_clone_script

 功能已被
弃用,取而代之的是 pre_get_sources_script
 钩子。

请参阅

https://about.gitlab.com/blog/2023/03/27/changes-to-the-preclonescript/https://docs.gitlab.com/runner/configuration/advanced-configuration。 html#the-runners-section

文档说:

pre_clone_script

 
已弃用 - 使用 pre_get_sources_script 代替。

pre_get_sources_script

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

© www.soinside.com 2019 - 2024. All rights reserved.