gitlab-runner shell没有使用config.toml中的配置

quhf5bfb  于 2023-04-21  发布在  Shell
关注(0)|答案(1)|浏览(231)

系统:Ubuntu 18.04的WSL2示例
我正在使用gitlab-runner exec shell <job>本地测试小的gitlab-ci作业,但是将源文件签入<working-directory>/builds/<short-token>/<concurrent-id>/<namespace>/<project-name>的默认行为导致了我的IDE停止识别父git repo为有效的问题,这很烦人。
我的解决方案是将构建和缓存文件的默认位置移动到工作目录之外。我按照文档修改了最初为空的config.toml,以添加以下定义:

[[runners]]
  name = "shell executor runner"
  executor = "shell"
  shell = "sh"
  builds_dir = "/home/myuser/dev/gitlab-runner-files/builds"
  cache_dir = "/home/myuser/dev/gitlab-runner-files/cache"

然而,当我再次尝试运行gitlab-runner exec shell my-job时,它显示了这个初始输出,表明它没有使用我配置的运行器,因此它也没有使用我的目录覆盖。

Runtime platform                                    arch=amd64 os=linux pid=26105 revision=dcfb4b66 version=15.10.1
WARNING: You most probably have uncommitted changes.
WARNING: These changes will not be tested.
Running with gitlab-runner 15.10.1 (dcfb4b66)
Preparing the "shell" executor
Using Shell (bash) executor...
executor not supported                              job=1 project=0 referee=metrics
Preparing environment
Running on PC-01099...
Getting source from Git repository
Fetching changes...
Initialized empty Git repository in /home/myuser/dev/my-app/builds/0/project-0/.git/

我如何让它使用我在config.toml中配置的运行器,而不是这里默认的运行器?

twh00eeo

twh00eeo1#

命令gitlab-runner exec shell my-job使用shell执行器触发作业。它不加载高级配置文件config.toml。支持advanced configuration的命令具有选项-c, --config和/或支持CONFIG_FILE环境参数。
然而,您可以使用exec命令并尝试使用config.toml配置执行您想要的操作,只需为runner exec shell命令提供相应的选项和环境参数,比较:

$ gitlab-runner exec shell --help | grep dir
   --builds-dir value           Directory where builds are stored [$RUNNER_BUILDS_DIR]
   --cache-dir value            Directory where build cache is stored [$RUNNER_CACHE_DIR]
   --custom_build_dir-enabled   Enable job specific build directories [$CUSTOM_BUILD_DIR_ENABLED]
   --docker-cache-dir value     Directory where to store caches [$DOCKER_CACHE_DIR]
  • (使用分页器,输出相当宽和高)*
$ gitlab-runner exec shell --builds-dir /tmp/runner-builds my-job
...

配置完成后,切换到环境参数(也称为变量):

$ RUNNER_BUILDS_DIR=/tmp/runner-builds gitlab-runner exec shell my-job
...

然后在集成开发环境(IDE)中配置运行程序任务,提供您选择的环境。

相关问题