Использование секретов
Использование секретов
Подготовительные действия
Установите docker, скачайте раннер и настройте secretsDemo.yaml
файл конфигурации CI/CD.
Для проверки примеров CI/CD с конфигурацией secretsDemo.yaml
доступен репозиторий CICD_examples, ветка secretsDemo (opens in a new tab), в нем:
- подготовлен файл конфигурации
.gitverse/workflows/secretsDemo.yaml
; - загружен раннер
act_runner
.
Конфигурация secretsDemo.yaml
Файл secretsDemo.yaml
следует расположить в директории ./gitverse/workflows
вашего проекта,
он определяет конфигурацию работы CI/CD для GitVerse:
name: Демо использования секрета в CI/CD
on: [push]
jobs:
build-test:
name: Build & Test
runs-on: ubuntu-latest
steps:
- if: ${{ secrets.SECRET == 'secret-word' }}
name: Check if secret is correct
run: echo "true"
Раннер так же обработает .yaml
файлы в директории .github/workflows
.
Структура:
- name: Название конфигурации CI/CD - "Демо использования секрета в CI/CD";
- on: Определяет события, на которые реагирует CI/CD. В данном случае это событие push;
- jobs: Определяет список задач, которые нужно выполнить:
- build-test:
- name: Название задачи - "Build & Test";
- runs-on: Определяет операционную систему, на которой будет выполняться задача - "ubuntu-latest";
- steps: Список шагов, которые нужно выполнить в рамках задачи:
- if: Условие для выполнения шага. В данном случае, проверяется, равно ли значение секрета
SECRET
строкеsecret-word
; - name: Название шага - "Check if secret is correct";
- run: Команда echo "true", которая будет выполнена только если условие
secrets.SECRET == 'secret-word'
истинно.
- if: Условие для выполнения шага. В данном случае, проверяется, равно ли значение секрета
- build-test:
Раннер с проверкой секрета
Включите CI/CD в профиле вашего репозитория (Настройки>Репозиторий>CI/CD>Обновить):
Пример:
Получите регистрационный токен раннера (Настройки>Раннеры>Добавить раннер>копировать токен):
Пример:
Создайте secretsDemo.yaml в директории
./gitverse/workflows вашего проекта
.Сделайте раннер исполняемым и зарегистрируйте его, используя полученный токен.
Пример:
$sudo chmod +x act_runner $sudo ./act_runner register
У вас запросят регистрационный токен, введите его:
INFO Registering runner, arch=amd64, os=linux, version=40a6fce. WARN Runner in user-mode. INFO Enter the runner token: <token>
Далее введите имя раннера:
INFO Enter the runner name (if set empty, use hostname: <host name>): secretsDemo-runner
(Опционально) введите лейбл раннера:
INFO Enter the runner labels, leave blank to use the default labels (comma-separated, for example, ubuntu-20.04:docker://node:16-bullseye,ubuntu-18.04:docker://node:16-buster,linux_arm:host):
Сообщение об успешной регистрации:
INFO Registering runner, name=secretsDemo-runner, instance=https://gitverse.ru/sc, labels=[ubuntu-latest:docker://node:16-bullseye ubuntu-22.04:docker://node:16-bullseye ubuntu-20.04:docker://node:16-bullseye ubuntu-18.04:docker://node:16-buster]. DEBU Successfully pinged the GitVerse instance server INFO Runner registered successfully.
Регистрационный токен раннера может быть активирован только один раз.
💡После регистрации в текущей директории появится файл
.runner
. Он хранит данные регистрации – не редактируйте его вручную! Если файл потеряется или повредится, просто удалите его и проведите регистрацию снова. При необходимости можно указать иное местоположение файла через конфигурацию.Зарегистрированный раннер отобразится со статусом "Недоступен" (Профиль репозитория>Настройки>Раннеры).
Пример:
Добавьте секрет в профиле репозитория (Настройки>Секреты>Добавить секрет).
Пример:
Заполните название секрета и его значение:
Запустите раннер.
Пример:
sudo ./act_runner daemon
Внесите изменения в репозиторий, чтобы раннер среагировал на событие push.
Пример:
Выберите данную задачу в профиле репозитория на вкладке Настройки>CI/CD.
Пример:
Отобразятся детали.
Пример:
Выполнилось условие secretsDemo.yaml в части содержания секрета, который мы задали вначале:
if: ${{ secrets.SECRET == 'secret-word' }} name: Check if secret is correct run: echo "true"