GitLab
Создаем в Gitlab новый Runner
Устанавливаем на сервер, где будет публиковаться сайт
# Download the binary for your system
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
# Give it permission to execute
sudo chmod +x /usr/local/bin/gitlab-runner
# Create a GitLab Runner user
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
# Install and run as a service
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
Переходим к регистрации:
sudo gitlab-runner register --url https://gitlab.com/ --registration-token GR1348941kpqSxNJY81hUWcdVXVaJ
Токен: имя по которому мы будем запускать Runner
Соединение: shell
Запускаем:
gitlab-runner run
На сервере должен быть установлен git
Возможные ошибки:
GitLab Runner : ОШИБКА: Задание не выполнено: подготовка среды: Процесс завершен со статусом 1. Проверка...
Если вы получаете следующую ошибку при выполнении задания gitlab ci/cd через:gitlab-runner
ERROR: Job failed: prepare environment: Process exited with status 1.
Выполните следующую команду:
find / -name .bash_logout
и удалите следующие файлы, если они существуют
sudo rm -r /home/gitlab-runner/.bash_logout
sudo rm -r /home/<username>/.bash_logout
Попробуйте повторно запустить задания, которые должны работать.
Ошибка права доступа:
sudo visudo
gitlab-runner ALL=(ALL) NOPASSWD: ALL
Пример .gitlab-ci.yml:
stages:
- build
- revert
build-job:
stage: build
tags:
- test
script:
- sudo rm -rf /home/alex/Documents/last
- sudo mkdir -p /home/alex/Documents/last
- sudo cp -r /usr/share/nginx/html/ /home/alex/Documents/last/
- sudo cp -r . /usr/share/nginx/html/
only:
refs:
- main
revert:
stage: revert
tags:
- test
when: manual
script:
- sudo rm -rf /usr/share/nginx/html/
- sudo cp -r /home/alex/Documents/last/html /usr/share/nginx/