2017-09-23 1 views
0

Env: Jenkins 2.73.1 & Kubernetes Plugin 1.0Comment passer l'environnement de construction jenkins dans un pod en utilisant le plugin kubernetes?

A l'intérieur du récipient, j'aime obtenir les normales jenkins construire la variable d'environnement comme BUILD_NUMBER

 
podTemplate(label: 'mypod', containers: [ 
    containerTemplate(name: 'python', image: 'python:2.7.8', ttyEnabled: true) 
]) { 

    node("mypod") { 
     echo sh(returnStdout: true, script: 'env') 

     container('python') { 
      stage('Checkout') { 
       sh "env" 
      } 
     } 
    } 
} 

Jusqu'à présent dans le code ci-dessus, à l'intérieur python, il n'a pas la variable de construction traditionnelle.

Une solution pour obtenir ces variables à l'intérieur du conteneur?

+0

J'obtiens l'erreur: Jenkins n'a pas encore l'étiquette MyPOD dans jenkins et ne sont pas capables de démarrer POD. Une idée? –

Répondre

0

Vous pouvez utiliser env.BUILD_NUMBER -à-dire

node{ 
    echo env.BUILD_NUMBER 
} 

Aussi, si vous voulez une liste de tous les vars env qui sont disponibles, vous pouvez exécuter

node{ 
    echo "${env.getEnvironment()}" 
} 

Ce sont les plug-ins par défaut de jenkins env vars mais vous pouvez également définir env vars pour vos pods de build plugin kubernetes dans le modèle de pod, par exemple ..

envVars: [ 
    envVar(key: 'GOPATH', value: '/home/jenkins/go') 
]), 

FWIW est ici que le code utilisé https://github.com/fabric8io/fabric8-pipeline-library/blob/3834f0f/vars/goTemplate.groovy#L27

Plus de détails here

+0

comment passer $ BUILD_NUMBER dans le conteneur? pouvez-vous fournir le code de travail? –