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

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

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

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

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

    PAC использует webhook'и от Git provider'ов (GitHub, GitLab, Bitbucket и т. д.) для обнаружения событий:

    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 в вашем кластере

    Подробнее о определениях pipeline и аннотациях событий см. Maintain Pipeline Code.

    Проверка триггеров push

    Базовый push

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

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

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

    Создайте feature-ветку и выполните 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-ветку:

      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

    Выполните push дополнительных 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 Request (Pull Request), а не в обычных commit'ах или событиях push.

    Триггер через комментарий

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

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

      /retest

    или

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

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

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

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

    Проверка статуса pipeline

    Просмотр PipelineRun'ов

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

    kubectl get pipelineruns -n <namespace>

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

    Просмотрите логи конкретного 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

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

    Убедитесь, что ветка существует в remote:

    git branch -r | grep <branch-name>

    Просмотр Git remote

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

    git remote -v

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

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

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

    Предупреждение: Это приведет к удалению локальных изменений.

    Дальнейшие шаги

    • Maintain Pipeline Code - Узнайте, как определять pipeline и настраивать триггеры событий
    • Configure Repository - Руководство по настройке Repository
    • Common Issues - Руководство по устранению неполадок