Не удается условно удалить каталог внутри рабочей области, используя основные шаги конвейера Jenkins - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь удалить каталог junit, расположенный в рабочей области моей работы Jenkins, с использованием сценария Pipeline, который выглядит примерно так:

node {
        stage('Build') {

            checkout scm
            app = docker.build("...")
        }

        stage('Test') {


                app.withRun("--name = ${CONTAINER_ID} ...") {

                    // sh "mkdir -p junit"
                    // sh "rm -rf junit/"
                    dir "junit" {
                        deleteDir
                    }


                    sh "docker exec ${CONTAINER_ID} /bin/bash -c 'source venv/bin/activate && python run.py test -x junit'"

                    sh "docker cp ${CONTAINER_ID}:/home/foo/junit junit"
                }
        }

        junit 'junit/*.xml'
}

Однако я получаю следующую ошибку (красный харинг?), Например

java.lang.ClassCastException: hudson.tasks.junit.pipeline.JUnitResultsStep.testResults ожидает класс java.lang.String но получил класс org.jenkinsci.plugins.workflow.cps.CpsClosure2

Однако, когда я использую шаги оболочки:

sh "mkdir -p junit"
sh "rm -rf junit/"

Работает как положено. Что я делаю не так?

1 Ответ

0 голосов
/ 31 августа 2018

Попробуйте использовать скобки:

dir ("junit") {
    deleteDir()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...