Jenkins, пример пайплайна, структура

Последние изменения: 27.06.2025

1 Пример пайплайна Jenkins - загрузка результатов плагином 

pipeline {
    agent any
    environment {
        ALLURE_LAUNCH_ID  = '5560'      // передаем необходимые параметры окружения, например id запуска, если требуется загрузка в конкретный лонч
    }

    stages {
        stage('Checkout') {
            steps {
                git branch: 'main', url: 'https://github.com/Akklamantor/allure-example-ae'
            }
        }

        stage('Cleanup for previous test results') {
            steps {
                // команда очистки репозитория или любой другой скрипт выполняемый до загрузки результатов
            }
        }

        stage('Запуск тестов') {         // в данном стейдже должен быть только запуск тестов, можем указать помимо необходимых projectId, results path, serverId так же теги, название запуска и т.п.        
            steps {
                withAllureUpload(projectId: '1493', results: [[path: 'build/allure-results']], serverId: 'vg'
                ) {
                    sh './gradlew clean test'
                }
            }
        }
    }
}



Если не производится очистка репозиториев от файлов с предыдущих прогонов, то необходимо добавить параметр:

 withAllureUpload(indexExistingFiles:true  

в противном случае может быть ситуация когда после запуска пайплайна, лонч на стороне ТестОпс будет пустым (подробнее описано в разделе документации qatools.ru/docs/troubleshooting)


2 Пример пайплайна - загрузка результатов allurectl

pipeline {
    agent any
    environment {
        ALLURE_ENDPOINT = 'https://testops'
        ALLURE_PROJECT_ID = '1'
        ALLURE_RESULTS  = 'build/allure-results'
        ALLURE_LAUNCH_TAGS  = 'allurectl, java, junit'
    }


    stages {
        stage('clenup before run'){
            steps {
                sh "ls -lah ${env.WORKSPACE}/.allure || true"
                sh "rm -f ${env.WORKSPACE}/.allure/* || true"
            }
        }
        stage('pull the tests code from your repo') {
            steps {
                git branch: '${TESTS_BRANCH_NAME}', url: 'https://github.com/cheshi-mantu/allure-example-ae.git'
            }
        }
    
        stage('Running tests') {
            steps {
                withCredentials([string(credentialsId: 'testing', variable: 'ALLURE_TOKEN')]) {
                    sh "curl -L -o ./allurectl https://github.com/allure-framework/allurectl/releases/download/${ALLURECTL_RELEASE}/allurectl_linux_amd64"
                    sh 'chmod +x ./allurectl'
                    sh "rm -r -f build/allure-results"
                    sh "chmod +x ./gradlew"
                    sh 'printenv | grep ALLURE_'                               //вывод параметров ALLURE_
                    sh "./allurectl watch -- ./gradlew clean test"             //если у вас запуск "clean test", то стейдж с очисткой старых результатов не нужен
                    sh "./allurectl ci env > envparameters".                   //сбор параметров для передачи контекста (складываем в файл envparameters)
                }
            }
        }
                
    }
}

ci env - выступает за передачу контекста, более подробно описано в данном разделе документации

Помогла ли вам статья?