Дженкинс Артефакты из параллельных заданий - PullRequest
0 голосов
/ 12 марта 2020

Какие Артефакты архивируют Jenkins, используя archiveArtifacts , если задание выполняет параллельные задания на разных узлах?

matrix {
    axes {
        axis {
            name 'PLATFORM'
            values 'linux', 'mac', 'windows'
        }
    }
    agent {label 'PLATFORM'}
    stages {
        stage('build-and-test') {
            // create artifacts in env.WORKSPACE/delivery/
            archiveArtifacts artifacts: env.WORKSPACE + 'delivery/**'
        }
    }
}

В этом случае могут быть одинаковые или разные артефакты с одинаковыми именами. Дженкинс хранит их все? Какие артефакты мы увидим на странице «Работа» в разделе «Последние успешные артефакты» ?

1 Ответ

2 голосов
/ 12 марта 2020

Вы не получите все, и, насколько я помню, Дженкинс переопределит артефакты, поэтому этапы, которые запрашивают архивирование, например, "тесты. xml", будут в гонке, победителем будет последний из fini sh line.

Мы перемещаем артефакты в уникальную папку перед архивированием, например,

...
script {
    sh label: "Moving artifacts to ${testName}",
        script: """rm -rf ${env.WORKSPACE}/${testName} || true
            mkdir ${env.WORKSPACE}/${testName}
            mv ${env.WORKSPACE}/tests.xml ${env.WORKSPACE}/${testName}/"""

    archiveArtifacts artifacts: "${testName}/**" 
}
...