Упростите конвейер Jenkins: очистка рабочего пространства для плавной сборки

Jenkins — популярный сервер автоматизации, широко используемый в рабочих процессах непрерывной интеграции (CI) и непрерывной доставки (CD). В Jenkins конвейер — это мощный способ определения и координации сложных процессов сборки и развертывания. Однако по мере роста вашего конвейера важно следить за тем, чтобы ваше рабочее пространство оставалось чистым и свободным от ненужных артефактов. В этой статье мы рассмотрим различные методы эффективной очистки рабочего пространства Jenkins, позволяющие быстрее и плавнее создавать сборки.

Метод 1: использование шага «cleanWs».
Jenkins предоставляет встроенный шаг под названием «cleanWs», который позволяет удалить все файлы и каталоги в рабочей области. Он очищает как рабочее пространство агента, так и любое рабочее пространство, выделенное конвейеру. Его можно использовать на этапе или после сборки, чтобы обеспечить чистоту рабочего пространства до или после процесса сборки.

Пример:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                cleanWs()
                // Build steps go here
            }
        }
    }
}

Метод 2: реализация специального сценария очистки рабочего пространства.
Если вам требуется больший контроль над процессом очистки, вы можете создать собственный сценарий в своем конвейере для удаления определенных файлов или каталогов. Например, вы можете захотеть сохранить определенные файлы конфигурации или каталоги кэша, очистив остальные.

Пример:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'rm -rf *' // Delete all files and directories
                sh 'mkdir logs' // Create a new directory if required
                // Build steps go here
            }
        }
    }
}

Метод 3: использование шагов «stash» и «unstash».
Если ваш конвейер включает в себя архивирование и восстановление определенных файлов или каталогов, вы можете использовать шаги «stash» и «unstash» в Jenkins. Эти шаги позволят вам сохранить важные артефакты на разных этапах, одновременно очищая остальную часть рабочего пространства.

Пример:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                stash name: 'important-files', includes: '/*.txt' // Archive specific files
                cleanWs() // Clean the workspace
                unstash 'important-files' // Restore the archived files
                // Build steps go here
            }
        }
    }
}

Метод 4. Использование плагина «workspaceCleanup».
Jenkins предоставляет несколько плагинов для расширения его функциональности. Плагин «workspaceCleanup» предлагает расширенные функции для управления рабочим пространством. Он позволяет определять правила очистки на основе шаблонов, возраста и размера файлов, обеспечивая более автоматизированный и детальный подход к очистке рабочего пространства.

Пример (с установленным плагином):

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                // Build steps go here
            }
        }
    }
    post {
        always {
            workspaceCleanup()
        }
    }
}

Поддержание чистоты рабочего пространства Jenkins имеет решающее значение для поддержания эффективных и надежных процессов сборки. Используя такие методы, как шаг «cleanWs», пользовательские сценарии очистки, шаги «stash» и «unstash» или такие плагины, как «workspaceCleanup», вы можете обеспечить чистоту рабочего пространства и минимизировать риск появления артефактов, мешающих вашим сборкам. Поэкспериментируйте с этими методами, чтобы найти тот, который лучше всего соответствует требованиям вашего проекта, и наслаждайтесь более быстрым и плавным выполнением конвейера в среде Jenkins.