Тестирование развертывания проекта ci-runner

Добрый день

Недавно я начал работать с gitlab, пытаясь выяснить, подойдет ли он нам по потребности в команде администрирования UX.

Я создал 3 сервера в нашем облаке для тестирования следующим образом:

  • Сервер_1 Gitlab и Gitlab-CI

  • Server_2 Gitlab Runners

  • Сервер_3 Сценарий хранилища

Идея заключалась в том, чтобы перенести хранилище предыдущих сценариев в Gitlab, а затем контролировать все внесенные в них изменения и проблемы безопасности.

Я установил Gitlab-Omnibus на сервере 1 и создал пользователя "test1" с его проектом Testproject1, после чего я добавил несколько тестовых скриптов в проект. После этого я установил бегуны на сервере Server_2 и настроил их на Gitlab, создал бегуна, зарегистрировал его и настроил ключи ssh на сервере Server3.

Проблема здесь заключается в следующем: любое изменение, внесенное в любой скрипт в Testproject1 Gitlab пользователем test1, запускает бегуна для сборки и передачи всего проекта в /home/user/build/"number"/number/Testproject1/ Сценарий, который выполняет эти Actions находится в этом месте с именем "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

заранее спасибо

1 ответ

Решение

Вы могли бы изменить builds_dir в конфигурации gitlab-runner по умолчанию builds_dir для gitlab-runner имеет вид $ 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"

или вы можете установить builds_dir при регистрации gitlab-runner:

с аргументами --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"
Другие вопросы по тегам