本地跑步者文件存储在哪里?

Where are local runner files stored?

我将 gitlab.com 与我自己的运行程序一起使用(它们在我的服务器上执行)。

.gitlab-ci.yml 中的 script 条目在 shell 上下文中执行时,文件创建在哪里?例如,下面的例子 运行 在 shell 跑步者

script:
  - date > hello.txt

我应该在哪里寻找 hello.txt

这个问题的具体原因是为了清理目的:我想删除我的跑步者创建的旧目录并用临时数据填充。

这里有很多选项,所以我将添加,这取决于

如果你有一个标准的 Linux shell 跑步者,没有任何额外的配置并且按照 GitLab 建议的方式安装,你将有一个类似以下的路径:

/home/gitlab-runner/builds/$RUNNER_TOKEN_KEY/$CONCURRENT_ID/$NAMESPACE/$PROJECT_NAME

可以使用运行器中的 builds_dir 选项更改此目录 config.toml


还有一点要补充的是,在你的脚本中,你还可以回显位置文件,也可以指定在运行器上保存文件的位置,例如:

script:
  - echo ${CI_PROJECT_DIR}
  - date > ${CI_PROJECT_DIR}/hello.txt

有关更多选项,请参阅 GitLab's pre-defined environment variables


默认情况下,所有作业都在这个 ${CI_PROJECT_DIR} 中,因此当您开始一个 script 部分时,您通常可以安全地假设您在这个目录中,而不必执行 [=15] =] 例如。

您也很可能希望所有工作都在此 ${CI_PROJECT_DIR} 内完成,因为 GitLab 运行程序还会在新工作开始时处理清理工作。默认情况下,runner 在检出存储库后执行 git clean -ffdx,因此在此示例中,将在继续作业之前删除 hello.txt 文件。有关详细信息,请参阅 git clean flags

请注意 shell 上的 handling concurrency 运行程序,如果他们共享相同的构建目录。

HTH!