перезапуск одного этапа в конвейере Дженкинса, удаляющий существующий каталог

#jenkins #jenkins-pipeline #restart #jenkins-declarative-pipeline

Вопрос:

Я использую декларативный конвейер Дженкинса jenkinsfile для нашего проекта. мы хотим попробовать вариант перезапуска на этапе.

 pipeline {
  agent { label 'worker' }

  stages {
    stage('clean directory') {
      steps {
        cleanWs()
      }
    }
    stage('checkout') {
      steps {
checkout([$class: 'GitSCM', branches: [[name: 'develop']], extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: devops], [$class: 'LocalBranch', localBranch: "**"]], userRemoteConfigs: [[credentialsId: 'xxxxxx', url: git@github.com/test/devops.git]]])
checkout([$class: 'GitSCM', branches: [[name: 'develop']], extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: harness], [$class: 'LocalBranch', localBranch: "**"]], userRemoteConfigs: [[credentialsId: 'xxxxxx', url: git@github.com/test/harness.git]]])
checkout([$class: 'GitSCM', branches: [[name: 'develop']], extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: automation], [$class: 'LocalBranch', localBranch: "**"]], userRemoteConfigs: [[credentialsId: 'xxxxxx', url: git@github.com/test/automation.git]]])
      }
    }
    stage('build initial commit to release train') {
      steps {
        sh '''#!/bin/bash
export TASK="build_initial_commit"
            cd automation
            sh main.sh
          '''
      }
    }
    stage('deploy application') {
      steps {
        sh '''#!/bin/bashexport TASK="deploy"
            cd automation
            sh main.sh
          '''
      }
    }
    }
    }
 

и в Дженкинсе я использую «Сценарий конвейера из SCM». Файл Дженкинса присутствует в репозитории automation.git (который также определен на этапе оформления заказа)

Всякий раз, когда я перезапускаю этап с графического интерфейса с 3-го … каталог рабочей области автоматически очищается, и он проверяет automation.git .. и запуск завершается неудачно, так как другие клонированные репозитории были очищены…

как с этим справиться.. Я хочу перезапустить сцену, не стирая директорию рабочего пространства.. если мы просто хотим запустить 3-й шаг «развертывание приложения».. Я не могу этого сделать , так как шаг зависит от всех 3 репо.. и при перезапуске только 3-го этапа рабочее пространство стирается.. и поскольку проверка выполняется на 1-м этапе(пропущена) … работа терпит неудачу

как мне запустить только 3-й этап с сохранением старого рабочего пространства ..