Полное руководство: публикация через переменную среды FTP в Jenkins

Jenkins – это популярный инструмент непрерывной интеграции и развертывания, используемый разработчиками для автоматизации процессов сборки, тестирования и развертывания программного обеспечения. Одной из распространенных задач в Jenkins является публикация артефактов или файлов на FTP-сервере. В этом сообщении блога мы рассмотрим различные методы достижения этой цели, используя переменные среды в Jenkins.

Метод 1: использование плагина Publish Over FTP
Плагин Publish Over FTP — это широко используемый плагин Jenkins, который упрощает процесс публикации артефактов на FTP-сервере. Вот пример настройки этого плагина:

  1. Установите плагин «Публикация через FTP» в Jenkins.
  2. Перейдите в свой проект Jenkins и нажмите «Настроить».
  3. Прокрутите вниз до раздела «Действия после сборки» и нажмите «Добавить действие после сборки».
  4. Выберите «Отправить артефакты сборки по FTP».
  5. Настройте данные FTP-сервера, такие как имя хоста, порт, учетные данные и удаленный каталог.
  6. В настройках «Дополнительно…» вы можете указать файлы для загрузки, выбрать настройки передачи и многое другое.
  7. Сохраните конфигурацию.

Метод 2: использование конвейера Jenkins с загрузкой по FTP
Если вы предпочитаете использовать конвейер Jenkins, вы можете использовать функцию загрузки по FTP в сценарии конвейера. Вот пример:

pipeline {
    agent any

    stages {
        stage('FTP Upload') {
            steps {
                script {
                    def ftpServer = env.FTP_SERVER
                    def ftpUsername = env.FTP_USERNAME
                    def ftpPassword = env.FTP_PASSWORD
                    def localFilePath = "path/to/local/file.txt"
                    def remoteFilePath = "path/to/remote/file.txt"

                    ftpUpload ftpServer: ftpServer, credentialsId: '', 
                        failOnError: true, flatten: true, 
                        remoteDirectory: remoteFilePath, sourceFiles: localFilePath,
                        useBaseDir: true, username: ftpUsername, password: ftpPassword
                }
            }
        }
    }
}

В этом примере мы используем переменные среды (FTP_SERVER, FTP_USERNAMEи FTP_PASSWORD) для хранения данных и учетных данных FTP-сервера.. Настройте переменные localFilePathи remoteFilePathв соответствии со своими требованиями.

Метод 3: использование команд оболочки
Другой метод — использовать команды оболочки непосредственно в задании Jenkins для загрузки файлов на FTP-сервер. Вот пример:

stage('FTP Upload') {
    steps {
        sh '''
            FTP_SERVER="ftp.example.com"
            FTP_USERNAME="your_username"
            FTP_PASSWORD="your_password"
            LOCAL_FILE="path/to/local/file.txt"
            REMOTE_FILE="path/to/remote/file.txt"

            ftp -inv $FTP_SERVER <<EOF
            user $FTP_USERNAME $FTP_PASSWORD
            put $LOCAL_FILE $REMOTE_FILE
            bye
            EOF
        '''
    }
}

В этом примере мы используем инструмент командной строки ftpдля загрузки по FTP. Настройте переменные (FTP_SERVER, FTP_USERNAME, FTP_PASSWORD, LOCAL_FILEи REMOTE_FILE). в соответствии с вашими настройками.

Публикация артефактов через FTP — обычное требование в Jenkins, а использование переменных среды может упростить процесс и сделать его более гибким. В этой статье мы рассмотрели различные методы, в том числе использование плагина Publish Over FTP, Jenkins Pipeline и команд оболочки. Выберите метод, который соответствует вашим потребностям, и интегрируйте его в свой рабочий процесс Jenkins, чтобы эффективно автоматизировать процесс развертывания FTP.