代码存储在/var/www/abc
-“ CodePath”
运行gitlab-ci(运行程序)时,通过/home/gitlab-runner/builds/4v8bC1n9/0/_gitlabgroup_/_gitprojectname_/abc
-“ RealPath”
我正在使用本地运行程序和shell执行。
当我在PHP代码中使用realpath()
函数时,使用gitlab ci Runner而不是“ RealPath”时,它仍然显示“ CodePath”。
如何在代码中集成“ RealPath”,或者重新配置GitLab以使用“ CodePath”?
答案 0 :(得分:0)
Runner cli选项记录在这里:https://docs.gitlab.com/runner/executors/shell.html#overview
环境变量中提供了运行作业以及将您的源克隆到的路径:
CI_PROJECT_DIR
克隆存储库以及运行作业的完整路径。如果设置了GitLab Runner的builds_dir参数,则相对于builds_dir的值设置此变量。有关更多信息,请参见GitLab Runner的高级配置。
您没有说明如何使用realpath(path)
...
尽管必须提供路径,但该值可以是空字符串。在这种情况下,该值将解释为当前目录。
那么也许您在某处对chdir('/var/www/abc');
进行了硬编码?
在调用realpath()之前执行chdir(getenv('CI_PROJECT_DIR'));
时-它应使用CI
目录。假设您使用的realpath
不带参数。
也:也许您可以进行一些更改,并使用当前目录的内置常量之一:https://www.php.net/manual/en/language.constants.predefined.php
答案 1 :(得分:0)
感谢madflow提到了变量,我设法弄清楚了以下内容:
跑步者特定的配置文件存在,可以将其配置为described here
我需要做这些事情:
在config.toml中指定启用[runners.custom_build_dir]
部分
builds_dir = "/var/www/abc"
[runners.custom_build_dir]
enable = true
在我的yml中指定一个变量
variables:
GIT_CLONE_PATH: $CI_BUILDS_DIR/
在OS级别上,有一些用于所需目录的特权设置,我在本地机器上进行了快速而肮脏的777操作