Use the isUnix pipeline step <https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#isunix-checks-if-running-on-a-unix-like-node> rather than writing your own version of that step. The System.properties that you are using will execute on the master, not on the agent. When it executes on the master, it will report the os.name value of the master.
On Mon, Feb 10, 2020 at 5:10 AM judaondo <jonud...@gmail.com> wrote: > 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', 't...@test.com') > 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-jon-udaondo-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. > > -- > You received this message because you are subscribed to the Google Groups > "Jenkins Users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to jenkinsci-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-users/f35c67c1-0b6e-4f34-85d1-9c0d52d2b3c8%40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-users/f35c67c1-0b6e-4f34-85d1-9c0d52d2b3c8%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAO49JtFgnV8s7WYjx4XJjfTfwOV7OvWx5ZO_hwe4-E0N%3D9YRAQ%40mail.gmail.com.