I have the following pipeline (Jenkinsfile):
@Library('mylib@master')
import com.mylib.*
pipeline {
agent { label 'WindowsSlaveWS2016' }
stages {
stage('Demo') {
steps {
echo 'a'
determineOS()
echo 'b'
// sh 'echo "[Version 1.0.0]" | tee -a changelog.txt'
sayHello()
//getServiceVersion('.', 'changelog.txt', 'myservice')
// cat service.properties
// sendEmail('failed', '[email protected]')
script {
def utils = new Utils()
if (utils.isWindows()) {
echo '<-- Is windwos -->'
}
else {
echo '<-- Is linux -->'
}
}
}
}
}
}
determineOS() groovy script is a simple script that does the following:
#!/usr/bin/env groovy
def call() {
if (System.properties['os.name'].toLowerCase().contains('windows')) {
println "it's Windows"
} else {
println "it's not Windows"
}
}
and utils.Windows() does the following:
#!/usr/bin/groovy
package com.ciplatforms;
class Utils implements Serializable {
def isWindows() {
if (System.properties['os.name'].toLowerCase().contains('windows')) {
println "it's Windows"
return true
} else {
println "it's not Windows"
return false
}
}
}
I am running the job in a Windows machine as you can notice in the pipeline but the log displays the following:
Running on WindowsSlaveWS2016 in C:\Jenkins\workspace\test-pipeline-shared-library
[Pipeline] {
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Demo)
[Pipeline] echo
a
[Pipeline] echo
it's not Windows
[Pipeline] echo
b
[Pipeline] echo
Hello, human.
[Pipeline] script
[Pipeline] {
[Pipeline] echo
<-- Is linux -->
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
Any ideas why this is happening? Thank you.