CI
Установка и настройка self-hosted раннера
Информация
Для установки раннера вам потребуются права администратора на репозиторий.
-
Для создания раннера переходим по следующей ссылке, не забыв поменять
{repo}
на название репозитория, для которого планируется создать раннер.Привожу ниже пример ссылки для репозитория
SWAP-Docs
, то есть этой документации.https://github.com/SmartWorkforce-APP/SWAP-Docs/settings/actions/runners/new
Находим на странице секцию Configure и строчку с
url
иtoken
. Забираем из неё значения из--url
и--token
в переменные среды. -
Т.к. оригинальный github actions runner не запускается на старых системах, типа CentOS 7, мы воспользуемся этим мультиплатформенным раннером на основе
act
: https://github.com/ChristopherHX/github-act-runnerДля его установки и настройки выполним следующие команды:
Bash 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
# Добавляем пользователя runner useradd runner # Сменяем текущего пользователя и дальнейшие команды выполняем от его имени su - runner # Скачиваем последнюю версию github-act-runner curl -o runner.tar.gz -L https://github.com/ChristopherHX/github-act-runner/releases/download/v0.9.0/build-linux-amd64.tar.gz # И распаковываем её в текущий каталог tar xzf runner.tar.gz # Заполняем эти переменные своими значениями # (для удобства конфигурации они были вынесены в переменные среды) CI_RUNNER_NAME="goswap_app_ci_runner" CI_RUNNER_URL="https://github.com/{owner}/{repo}" # поменяйте здесь {owner} и {repo} на свои CI_RUNNER_TOKEN="{token}" # поменяйте здесь {token} на тот, что вы нашли на странице создания нового раннера CI_RUNNER_PAT="{pat}" # этот токен вы должны получить в настройках разработчика https://github.com/settings/tokens CI_RUNNER_LABELS="centos7-amd64" # Отконфигурируем раннер с этими параметрами ./github-act-runner configure \ --url "$CI_RUNNER_URL" \ --token "$CI_RUNNER_TOKEN" \ --pat "$CI_RUNNER_PAT" \ --name "$CI_RUNNER_NAME" \ --labels "$CI_RUNNER_LABELS" # И запустим его ./github-act-runner run
Тестирование CI-сценариев на локальной машине
- Для этого нам понадобится
act
. Скачайте и установите его по ссылке: https://nektosact.com/installation/index.html - Создайте файл
.actrc
в корне склонированного репозитория с проектом. Поместите в него следующее содержимое:
Text Only | |
---|---|
1 2 3 4 5 6 |
|
- Для тестирования загрузки артефактов нам также потребуется поднять локальный сервер артефактов. Делается это одной командой докера:
Bash | |
---|---|
1 2 3 4 5 6 |
|
Если у вас уже занят порт 8844
каким-то другим сервисом - поменяйте его на свой в команде выше и в файле .actrc
.
Обратите внимание на переменную AUTH_KEY
. Она должна быть равной значению ACTIONS_RUNTIME_TOKEN
из .actrc
.
- Также создайте файл
.secrets
в корне склонированного репозитория с проектом. Его содержимое будет примерно следующим:
Text Only | |
---|---|
1 2 3 |
|
После чего запускайте act
из консоли.
Команды act
Для просмотра всех существующих "заданий" (они же jobs):
Bash | |
---|---|
1 |
|
Для запуска конкретного задания:
Bash | |
---|---|
1 |
|
где {job_id}
- идентификатор выбранного задания из списка act -l
(вторая колонка таблицы)