【问题标题】:Testing project deployment ci-runner测试项目部署 ci-runner
【发布时间】:2015-08-31 12:38:57
【问题描述】:

下午好

我最近开始与 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 上的任何脚本所做的任何更改都会触发 runner 构建并将整个项目推送到 /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 功能?

runner的yml文件顺便说一下:

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

提前致谢

【问题讨论】:

    标签: gitlab gitlab-ci gitlab-ci-runner gitlab-omnibus


    【解决方案1】:

    您可以在 gitlab-runner 的配置中更改 builds_dir 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"
    

    【讨论】:

      猜你喜欢
      • 2018-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-04
      • 1970-01-01
      • 2014-09-28
      • 1970-01-01
      相关资源
      最近更新 更多