Gitlab Runner
Добавьте файл .gitlab-ci.yml в корневую директорию проекта.Вся система непрерывной интеграции поставляется с Gitlab.Все, что вам нужно сделать, это добавить Runner в систему для разбора скриптовой части файла.
Установите Gitlab Runner
официально предоставленспособ установки, личный выбор — установить на macOS, устанавливайте по порядку:
- скачать:
sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
- Открытые разрешения:
sudo chmod +x /usr/local/bin/gitlab-runner
- Зарегистрировать бегуна
- Установите и запустите Runner:
cd ~
gitlab-runner install
gitlab-runner start
Перед тем, как зарегистрировать раннер, нужно сделать некоторые приготовления:
- Установить Докер, и начать
- Получите токен через интерфейс Gitlab. Процесс приобретения выглядит следующим образом:
- Войдите в Gitlab и перейдите в Настройки -> CI/CD -> Runners.
- Полученный Токен показан на рисунке:
Зарегистрируйте Gitlab Runner:
- Выполните следующую команду:
sudo gitlab-runner register
- Введите URL экземпляра Gitlab:
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
https://gitlab.com
- Введите токен, используемый для регистрации Runner:
Please enter the gitlab-ci token for this runner
xxx
- Введите описание Runner, которое затем можно будет изменить в интерфейсе GitLab:
Please enter the gitlab-ci description for this runner
[hostame] my-runner
- Ввод привязан к RunnerЭтикетка(Можно изменить):
Please enter the gitlab-ci tags for this runner (comma separated):
runner
- Выберите, как выполняется Runner:
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
docker
- Если выбран метод выполнения Docker, вам будет предложено заполнить образ по умолчанию, который также можно определить в .gitlab-ci.yml:
Please enter the Docker image (eg. ruby:2.1):
alpine:latest
Gitlab также предоставляет неинтерактивную регистрацию, которую можно сделать с помощью одной команды:
sudo gitlab-runner register \
--non-interactive \
--url "https://gitlab.com/" \
--registration-token "获取的 token " \
--executor "docker" \
--docker-image alpine:latest \
--description "runner" \
--tag-list "docker,aws" \
--run-untagged \
--locked="false" \
После процесса регистрации в каталоге ~/etc/gitlab-runner/ будет сгенерирован конфигурационный файл config.toml, в это время вы можете увидеть активированный Runner в настройках Gitlab:
Настройте файл .gitlab-ci.yml
Здесь размещена только личная конфигурация, подробнаяматериалВы можете найти их все, поэтому я не буду вдаваться в подробности здесь:
stages:
- build
- deploy
build:
image: node:alpine
stage: build
script:
- npm install
- npm run build
artifacts:
expire_in: 1 week
paths:
- dist/
only:
- master
deploy_staging:
image: alpine:latest
stage: deploy
before_script:
- apk update
- apk add --no-cache rsync openssh
script:
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY" >> ~/.ssh/id_dsa
- chmod 600 ~/.ssh/id_dsa
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
- rsync -rav --delete dist/ "$SERVER_USER_HOST:$SERVER_MASTER_PATH"
only:
- master
В конфигурационном файле установлены два проекта, а именно build и deploy.Необходимо добавить некоторые моменты:
- В проекте сборки отметьте только что созданный dist-файл артефактами, чтобы этот файл можно было повторно использовать в других проектах;
- авторизоваться на сервере по ssh;
- Используйте rsync для удаленной синхронизации файлов;
- Из соображений безопасности файл конфигурации похож на
$SERVER_USER_HOST
Такие переменные задаются в Настройках -> CI/CD -> Переменные; - Удалить обнаружение тегов в настройках Gitlab:
использоватьКомандная строказапустить Бегун,sudo gitlab-runner run
, после успешного запуска скриншот такой:
После успешной сборки скриншот выглядит следующим образом: