Тестирование развертывания проекта 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"