Как очистить конвейер перед извлечением репозитория в Jenkinsfile

Я хочу выполнить операцию clean before checkout, которая описана в документации подключаемого модуля Jenkins git:

Очищать перед извлечением Очищать рабочее пространство перед каждым извлечением, удаляя все неотслеживаемые файлы и каталоги, в том числе указанные в .gitignore. ...

Но как добавить эту опцию к шагу оформления заказа по умолчанию, который выполняется как первый шаг?

Я считаю, что это должна быть опция, расширенная плагином git, который может быть включен в options блок Jenkinsfile, как описано в документы:

Директива options позволяет настраивать специфичные для конвейера параметры из самого конвейера. Pipeline предоставляет ряд таких параметров, например buildDiscarder, но они также могут предоставляться плагинами...

Но как узнать, какие опции и их названия предлагает этот плагин? Не нашел его в документах, также я могу ошибаться, что clean before checkout должен быть помещен в options блок Jenkinsfile.

Пожалуйста помоги.


comment
Вы можете skipDefaultCheckout(true), а затем выполнить явное checkout, чтобы указать параметры.   -  person zett42    schedule 01.04.2020


Ответы (1)


Как уже упоминалось в комментариях, нужно использовать skipDefaultCheckout() (Source) в ваших параметрах конвейера, чтобы не извлекать репозиторий, если конвейер запущен.

пропустить проверку по умолчанию

Пропустить извлечение кода из системы управления версиями по умолчанию в директиве агента.

Чтобы получить репозиторий вручную, вы можете использовать checkout scm (Источник)

pipeline {
    agent any
    options {
        skipDefaultCheckout()
    }
    stages {
        stage('Example') {
            steps {
                // Cleanup before starting the stage
                // deleteDir() / cleanWs() or your own way of cleaning up

                // Checkout the repository
                checkout scm 

                // do whatever you like
            }
        }
    }
}
person Michael Kemmerzell    schedule 01.04.2020
comment
Спасибо, Майкл и zett42! Работает! Но также необходимо указать репозиторий git url в команде проверки, чтобы сделать чистую проверку. Он может оформить заказ без URL-адреса репо, но очистить его можно только при указании URL-адреса репо. Я смотрю на var GIT_URL, который есть у плагина git, но вижу ошибку: Нет такого свойства: GIT_URL. Есть ли другой способ получить URL-адрес git, указанный в графическом интерфейсе Jenkins на странице конфигурации задания? - person Mikhail P.; 01.04.2020
comment
@pleyades Не подписан. Вы говорите, что это работает... но потом подразумеваете, что это не так. Что работает? А что не работает? Что заставляет вас думать, что вам нужен URL? Я использую «checkout scm», и он использует URL-адрес (и все другие параметры), настроенный в разделе «Конвейер» конфигурации задания конвейера. - person steve; 02.04.2021
comment
@steve, возможно, непонятный комментарий, да. Это работает таким образом, как было предложено - пропустить проверку по умолчанию и добавить пользовательскую проверку. Однако то, что не работает, - это переменная GIT_URL, которая, как я предполагал, должна быть доступна для вашего пользовательского шага оформления заказа. Я определил GIT_URL в разделе среды. Однако, если шаг проверки по умолчанию не пропущен - GIT_URL виден, даже если он не указан в разделе среды. Любые вопросы? - person Mikhail P.; 26.04.2021