t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как в jenkins организован workspace на слейвах?

Теги: #<Tag:0x00007fd768878128> #<Tag:0x00007fd768878038> #<Tag:0x00007fd768e6ff18> #<Tag:0x00007fd768e6fe50>

Вопрос в следующем, у меня есть гит с pipeline и динамической библиотекой, выполнение сборки будет происходить на slave. Когда я в мастере все настроил и нажал работу джобы, то как происходит процесс? В начале pipeline скачивается на мастер, там он видит что выполняться должен на slave, и уже переводит работу на того, тот уже качает опять все с гита к себе на workspace и выполняет сборку?

так вы запустите и логи посмотрите :rofl:

Обычно дефолтный чекаут выключается в пайплайне, если его не надо делать на мастере.

Далее уже переключаетесь на нужного слейва и делаете там чекаут.

Как пример:

pipeline {
    agent none
    options {
        buildDiscarder(logRotator(numToKeepStr: '10', artifactNumToKeepStr: '10'))
        disableConcurrentBuilds()
        skipDefaultCheckout() // вот тут мы отключаем дефолтный чекаут на мастере
        timestamps()
        timeout(time: 60, unit: 'MINUTES')
    }
    environment {
        LC_ALL = 'ru_RU.UTF-8'
        LANG    = 'ru_RU.UTF-8'
        LANGUAGE = 'ru_RU.UTF-8'
    }
    stages {
        stage('build') {
            agent {
                node {
                    label 'win-builder'
                    customWorkspace "$JOB_NAME"
                }
            }
            steps {
                cleanWs()
                checkout scm // тут мы делаем чекаут из сорса, который указан в джобе.
ну и тд...