• Русский
  • Запуск с помощью операций Git

    Для обычных пользователей

    В этом руководстве приведены примеры команд Git для запуска PAC pipelines через операции Git.

    В этом руководстве показаны распространенные команды Git, используемые для запуска PAC pipelines через события Git provider.

    Как работают триггеры PAC

    PAC использует webhooks от Git providers, таких как GitHub или GitLab, для обнаружения событий:

    1. Настройка Webhook: когда вы создаете Repository CR, PAC автоматически настраивает webhook в вашем Git provider
    2. Обнаружение событий: когда происходят события (push, pull request, comments), Git provider отправляет webhook в PAC controller
    3. Сопоставление pipeline: PAC controller сопоставляет событие с аннотациями в ваших файлах PipelineRun
    4. Выполнение pipeline: если найдено совпадение, PAC создает PipelineRun в вашем cluster

    Подробнее о определениях pipeline и аннотациях событий см. Определение PipelineRun в Git.

    Тестирование триггеров push

    Базовый push

    Внесите изменение и выполните push, чтобы запустить pipelines:

    echo "test" >> test.txt
    git add test.txt
    git commit -m "Test push trigger"
    git push origin main

    Push в определенную ветку

    Создайте feature branch и выполните push:

    git checkout -b feature/new-feature
    echo "feature code" >> feature.txt
    git add feature.txt
    git commit -m "Add new feature"
    git push origin feature/new-feature

    Пустой commit

    Запустите pipeline без изменений в коде:

    git commit --allow-empty -m "Trigger pipeline"
    git push origin main

    Тестирование триггеров Merge Request

    Создание Merge Request

    1. Создайте feature branch:

      git checkout -b feature/test-mr
      echo "feature" >> feature.txt
      git add feature.txt
      git commit -m "Add feature for MR test"
      git push origin feature/test-mr
    2. Создайте Pull/Merge Request, нацеленный на ветку main, через интерфейс вашего Git provider

    Обновление Merge Request

    Отправьте еще несколько commit, чтобы снова запустить pipeline:

    echo "update" >> feature.txt
    git add feature.txt
    git commit -m "Update feature"
    git push origin feature/test-mr

    Force push в Merge Request

    Перепишите историю и выполните force push:

    git commit --amend --no-edit
    git push --force-with-lease origin feature/test-mr

    Примечание: используйте --force-with-lease вместо --force, чтобы не перезаписать работу других пользователей.

    Использование команд в комментариях

    Команды в комментариях работают только в Merge Requests (Pull Requests), но не в обычных commit или событиях push.

    Запуск через комментарий

    1. Откройте ваш Pull/Merge Request в интерфейсе Git provider

    2. Добавьте комментарий с командой:

      /retest

    или

    /test
    1. PAC обнаружит комментарий и запустит соответствующий pipeline

    Распространенные команды в комментариях

    КомандаОписание
    /retestПовторно запустить все неудачные tests
    /testЗапустить tests
    /ok-to-testРазрешить запуск tests (если требуется)
    /cancelОтменить выполняющийся pipeline

    Примечание: точные команды зависят от конфигурации вашего pipeline. Вы определяете команды в аннотации on-comment в файлах PipelineRun.

    Проверка состояния pipeline

    Просмотр PipelineRun

    Проверьте, был ли запущен pipeline:

    kubectl get pipelineruns -n <namespace>

    Просмотр логов Pipeline

    Просмотрите логи определенного PipelineRun:

    tkn pipelinerun logs <pipelinerun-name> -n <namespace>

    Или отслеживайте логи в реальном времени:

    tkn pipelinerun logs <pipelinerun-name> -n <namespace> -f

    Проверка последнего PipelineRun

    Получите последний PipelineRun:

    kubectl get pipelineruns -n <namespace> --sort-by=.metadata.creationTimestamp | tail -1

    Устранение неполадок при операциях Git

    Проверка текущей ветки

    Убедитесь, что вы находитесь в правильной ветке:

    git branch --show-current

    Проверка последнего commit

    Посмотрите сведения о последнем commit:

    git log --oneline -1

    Проверка удаленной ветки

    Убедитесь, что ветка существует в удаленном репозитории:

    git branch -r | grep <branch-name>

    Просмотр Git remote

    Проверьте настроенный URL remote:

    git remote -v

    Принудительная синхронизация с remote

    Сбросьте локальную ветку, чтобы она соответствовала remote:

    git fetch origin
    git reset --hard origin/<branch-name>

    Предупреждение: это удалит локальные изменения.

    Следующие шаги