0

下午好

我最近开始与 gitlab 合作,试图弄清楚它是否符合我们在 UX 管理团队中的需求。

我在我们的云上创建了 3 台服务器进行测试,如下所示:

  • Server_1 Gitlab 和 Gitlab-CI

  • Server_2 Gitlab 跑步者

  • Server_3 脚本存储库

想法是将以前的脚本存储库推送到 Gitlab,然后控制对它们所做的任何更改和安全问题。

我在服务器 1 上安装了 Gitlab-Omnibus 并使用他的项目 Testproject1 创建了用户“test1”,之后我将一些测试脚本推送到项目中。在此之后,我在 Server_2 上安装了运行器并针对 Gitlab 进行配置,创建了一个运行器,注册它并针对 Server3 配置了 ssh 密钥

这里的问题如下,用户 test1 对 Gitlab 的 Testproject1 上的任何脚本所做的任何更改都会触发运行器构建并将整个项目推送到 /home/user/build/"number"/number/Testproject1/ 执行这些的脚本操作位于该位置,名称为“Testproject1.sh”,其中包含如下代码:

if [[ -d $'builds/6461cd4f/0/test1/Testproject1/.git' ]]; then
echo $'\x1b[32;1mFetching changes...\x1b[0;m'
cd $'builds/6461cd4f/0/test1/Testproject1' 

..... 等等。

我们不希望将存储库部署在用户家中,我认为使用所需的部署路径和命令配置文件“.gitlab-ci.yml”就足够了,但我唯一实现的就是存储库是每次都部署在用户家中和 .yml 文件中所述的路径上。

任何人都知道如何修改这种行为?是否有任何环境变量或任何可以解决此问题的东西?还是我使用了错误的 CI 功能?

顺便说一下,跑步者的 yml 文件如下:

job:
    script:
        - cd /opt/gitlab/aplicacion1
        - git init .
        - git add .
        - git pull origin master
        - pwd
        - ls -ltra
    tags:
        - master

提前致谢

4

1 回答 1

1

您可以更改builds_dirgitlab-runner 的配置,gitlab-runner 的默认 builds_dir 是 $HOME/$version/build gitlab-link

示例:
/etc/gitlab-runner/config.toml:

[[runners]]
  ...
  name = "runner_name"
  executor = "ssh"
  builds_dir = "/data/git_build"
  [runners.ssh]
    user = "user"
    host = "192.xxx.xxx.xxx"
    port = "22"
    identity_file = "/home/user/.ssh/id_rsa"

或者您可以在注册 gitlab-runner 时设置 builds_dir:

有论据--builds-dir

 gitlab-ci-multi-runner register \
        --name "$NAME" \
        --non-interactive \
        --url " $URL" \
        --tag-list $TAG \
        --registration-token "$TOKEN" \
        --executor "ssh"  \
        --builds-dir  "$BUILD_DIR" \
        --ssh-user "$SSH_USER" \
        --ssh-host "$SSH_HOST" \
        --ssh-port "$SSH_PORT" \
        --ssh-identity-file "$SSH_IDENTITY_FILE"
于 2015-11-21T05:55:03.710 回答