Jenkins construir acontecendo no mestre em vez de escravo

1

Eu tenho trabalhado em uma automação de construção do sistema operacional Android através do Jenkins e o repositório é enorme e a construção em si leva um bom tempo. Portanto, eu preciso para executar no meu escravo que tem muito mais poder e threads disponíveis para a compilação e não preencher o espaço em disco do mestre até o ponto onde os outros desenvolvedores não podem usá-lo.

Quando tive minha primeira compilação gerada para o mestre, verifiquei a configuração e revi as melhores práticas do Jenkins.

link

If you have a more complex security setup that allows some users to only configure jobs, but not administer Jenkins, you need to prevent them from running builds on the master node, otherwise they have unrestricted access into the JENKINS_HOME directory. You can do this by setting the executor count to zero. Instead, make sure all jobs run on slaves. This ensures that the jenkins master can scale to support many more jobs, and it also protects builds from modifying potentially sensitive data on $JENKINS_HOME accidentally/maliciously. If you need some jobs to run on the master (e.g. backups of Jenkins itself), use the Job Restrictions Plugin to limit which jobs can be executed there.

Percebi que tínhamos dois executores disponíveis no mestre e, de acordo com as melhores práticas, isso deveria ser definido como zero se você nunca quis construir o mestre. Eu defini isso para zero e tentei novamente minha compilação.

Para minha surpresa, ainda está se baseando no mestre. Abaixo está o meu arquivo Jenkins que implicitamente diz para construir meu escravo.

pipeline {
    agent {label 'van-droid'}

    stages {
        stage('Build') {
            steps {
        echo 'Building..'
        sh 'make clean'
        sh 'export USE_CCACHE=1'
        sh 'export CCACHE_DIR=/nvme/.ccache'
        sh './FFTools/make.sh'
             }
        }
    }
}

Alguém tem alguma ideia do que está acontecendo?

    
por Husk Rekoms 17.07.2018 / 21:10

1 resposta

1

Ok, então a única maneira de eu ter forçado a compilação para o slave foi instalar o plugin Node / Label e adicionar um parâmetro dizendo que o projeto só poderia ser construído no escravo específico que eu pedi. Esta parece ser uma maneira melhor de fazer isso, já que alguns desenvolvedores estavam usando o master para construir certos projetos e suas builds estavam pendentes quando eu coloquei os executores em zero.

    
por 20.07.2018 / 21:02