jenkins Функция «Restart Test» перезапускает все тесты параллельно - PullRequest
0 голосов
/ 14 мая 2019

Я параллельно провожу несколько тестов Дженкинса. Тем не менее, если тест не пройден, я бы хотел запустить только один тест.

Я узнал, что функция «Перезапустить тест» состоит в том, чтобы перезапустить тест неудачных этапов, но как-то в моем случае это перезапуск всех тестов.

Ниже мой jenkinsfile:

#!/usr/bin/env groovy

def docker_image
def factory_key 
pipeline {

  agent any   

  stages {          

    // Checkout git repository
    stage('Build & Prepare environment') {

      // Execute this stage only on non-master branches
      when {
        not {
          branch 'master'
        }
      }

      steps {
         sh "docker pull $DOCKER_IMAGE"         
      }
    }        

    // Launch tests
    stage('Test') {

      when {
        not {
          branch 'master'
        }
      }      

      parallel {

        stage('Testing deploy_demo on sles-12-factory-base using --terraform-config parameter..') {
          when {
            expression { currentBuild.result != 'SUCCESS' }
          }
          steps {
            withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'artifactory-credentials', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
              script {
                docker.image("$DOCKER_IMAGE").inside("-u ansible") {                                                                  
                  sh '/docker/entrypoint-test.sh "deploy_role --deploy-config configs/deploy_demo.cfg --terraform-config sles-12-factory-base.cfg --ignore-common-roles"'
                }
              }              
            }                         
          } 
        }       

        stage('Testing deploy_demo on rhel-7-factory-base using --terraform-config parameter..') {
          when {
            expression { currentBuild.result != 'SUCCESS' }
          }
          steps {            
            script {
             docker.image("$DOCKER_IMAGE").inside("-u ansible"){              
                withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'artifactory-credentials', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {                  
                  sh '/docker/entrypoint-test.sh "deploy_role --deploy-config configs/deploy_demo.cfg --terraform-config rhel-7-factory-base.cfg --ignore-common-roles"'                  
                }                                             
              }
            }             
          }
        }           

      }                            
    }        

  }
}

Я добавил выражение when на каждом этапе тестирования, чтобы прекратить повторный запуск теста, когда currentBuild.result успешен, но не учитывает его.

when {
            expression { currentBuild.result != 'SUCCESS' }
      }

Я пытаюсь использовать ссылку "Перезапустить тест" из пользовательского интерфейса jenkins BlueOcean.

Restart Test

Любая помощь будет высоко ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...