Дженкинсфайл для Robotframework - PullRequest
1 голос
/ 10 июня 2019

У меня проблемы с запуском заданий через Jenkinsfile. Прямо сейчас задание запускается на стадии сборки, и после этого оно терпит неудачу на каждом этапе. Я прилагаю изображение для получения консольного вывода.

Искал везде, но не нашел решения, не знаю, где я делаю ошибку в коде. [! [введите описание изображения здесь] [1]] [1]

        parameters {
            booleanParam(defaultValue: true, description: 'Execute Pipeline?', name: 'GO')
        }
        agent {label 'test'}
        stages {
            stage('Preconditions'){
                steps {
                    script {
                        result = sh (script: "git log -1 | grep ' _*\\[ci skip\\].*'", returnStatus: true)
                        if (result == 0) {
                            echo "This build should be skipped. Aborting"
                            GO = "false"
                        }
                    }
                }
            }
            stage('Build'){
                steps {
                    script {
                        sh "pip install -r requirements.txt"
                        sh "mkdir -p ${out}/results"
                    }
                }
            }
            stage('Smoke') {
                steps {
                    script {
                        sh "robot -d results -i Smoke -v BROWSER:chrome test_suites"
                        currentBuild.result = 'SUCCESS'
                    }
                }
            }
            stage('Sanity') {
                steps {
                    script {
                    sh "robot -d results -i Sanity -v BROWSER:chrome test_suites"
                    currentBuild.result = 'SUCCESS'
                    }
                }
            }
            stage('Process Results') {
                steps {
                    script {
                        bat 'del "Results\\*.zip"'
                        zip zipFile: 'results/results.zip', archive: false, dir: 'results', glob: '*.html'
                        step([
                            $class : 'RobotPublisher',
                            outputPath : 'results',
                            outputFileName : "output.xml",
                            reportFileName : 'report.html',
                            logFileName : 'log.html',
                            disableArchiveOutput : false,
                            passThreshold : 95.0,
                            unstableThreshold: 95.0,
                            otherFiles : "**/*.png",
                            ])
                        }
                    }
                }
            }
        post {
            always {
                googlechatnotification url: 
            }
        }
    }````

The requirements.txt files contain all the bindings like: 
selenium==3.141.0
virtualenv==16.5.0
robotframework==3.1.1
robotframework-pabot==0.53
robotframework-seleniumlibrary==3.3.1
robotframework-react==1.0.0a2

[![Console Output][2]][2]


  [1]: https://i.stack.imgur.com/FPPPz.png

1 Ответ

0 голосов
/ 11 июня 2019

Я полагаю, что ошибочная команда - это создание каталога results на этапе Build, поскольку переменная ${out} имеет синтаксис groovy, а не shell:

stage('Build'){
            steps {
                script {
                    sh "pip install -r requirements.txt"
                    sh "mkdir -p ${out}/results"
                }
            }
        }
...