Я даю свой before_script.sh
, который можно использовать в любом .gitlab-ci.yml
before_script:
- ./before_script.sh
Все, что вам нужно, это установить в своем проекте переменную защищенной среды с именем GL_TOKEN
или GITLAB_TOKEN
.
if [[ -v "GL_TOKEN" || -v "GITLAB_TOKEN" ]]; then
if [[ "${CI_PROJECT_URL}" =~ (([^/]*/){3}) ]]; then
mkdir -p $HOME/.config/git
echo "${BASH_REMATCH[1]/:\/\//://gitlab-ci-token:${GL_TOKEN:-$GITLAB_TOKEN}@}" > $HOME/.config/git/credentials
git config --global credential.helper store
fi
fi
Это не требует изменения стратегии git по умолчанию, и она будет нормально работать с незащищенной веткой, используя стандартную gitlab-ci-token
.
В защищенной ветке вы можете использоватькоманда git push
как обычно.
Мы прекратили использовать SSH-ключи, ответы Vít Kotačka помогли нам понять, почему она не работала раньше.