-
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
Looks like a declarative bug, or an unsupported syntax. Doesn't seem to be related to the kubernetes plugin.
Attached the generated step tree view from the above pipeline, we can clearly see the second call isn't nested under container('jnlp').