-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
Jenkins 2.235.5 (official docker image)
Pipeline: Declarative 1.7.2
Kubernetes plugin 1.27.1.1
The following declarative pipeline does not run the desired code in the JNLP container:
final pod = ''' apiVersion: v1 kind: Pod spec: containers: - name: busybox image: busybox command: ['/bin/sh', '-c', 'sleep infinity & wait'] ''' final block = { sh returnStdout: true, script: 'git --version' } pipeline { agent { kubernetes { yaml pod defaultContainer 'busybox' } } environment { one = container('jnlp', block) two = container('jnlp') { sh returnStdout: true, script: 'git --version' } } stages { stage('A') { steps { sh 'echo $one' sh 'echo $two' } } } }
So the assignment of environment variable one succeeds but two fails with a message like:
/home/jenkins/agent/workspace/_test@tmp/durable-96f999a3/script.sh: line 1: git: not found
[JENKINS-63839] container() doesn't work inside environment block
Attachment | New: Capture d’écran 2020-12-23 à 14.00.00.png [ 53724 ] |
Component/s | New: pipeline-model-definition-plugin [ 21706 ] | |
Component/s | Original: kubernetes-plugin [ 20639 ] | |
Component/s | Original: pipeline [ 21692 ] |