Одиночное соединение SSH в трубопроводе Jenkins - PullRequest
0 голосов
/ 27 марта 2019

Я создал свой Jenkinsfile для создания своего проекта в производстве, и конвейер выглядит следующим образом:

pipeline {
  agent any
  stages {
    stage('Pull') {
      steps {
        sh '''ssh ${SSH_USER}@${SERVER_ADDRESS} <<EOF
              cd ${SOURCE_FOLDER}/project 
              git pull
              git status
           EOF'''
      }
    }
    stage('Composer') {
      parallel {
        stage('Composer') {
          steps {
            sh '''ssh ${SSH_USER}@${SERVER_ADDRESS} <<EOF 
                  docker run --rm -v ${SOURCE_FOLDER}/project:/app composer/composer:latest install
               EOF'''
          }
        }
        stage('Composer 2') {
          steps {
            sh '''ssh ${SSH_USER}@${SERVER_ADDRESS} <<EOF
                  docker run --rm -v ${SOURCE_FOLDER}/project/sub:/app 
composer/composer:latest install
               EOF'''
          }
        }
      }
   }
  }
 }

Есть ли способ объединить все этапы в одном соединении SSH, чтобы минимизироватьиздержки и номер соединения?

Я сделал все, что связано с SSL, вручную, создав ключи и вставив открытый ключ на рабочий компьютер.

1 Ответ

0 голосов
/ 27 марта 2019

Вы можете создать функцию для соединения и передать SSH_USER & SERVER_ADDRESS в качестве входных параметров для этой функции. Вызовите эту функцию со всех ваших этапов.

...