Hi, I think you should not use global variables at all : only global functions. Trust me : you don't need global variables :) To use global functions :
# /vars/myGlobFunc.groovy def call() { // .... } // This way you can call you function directly in "steps" if you are in declarative pipeline, from anywhere in scripted // This function has access to other global methods # Or this way, in /vars/myClass.groovy : def myGlobFunc.groovy { // ... } return this // myClass.myGlobFunc() // This function has also access to other global methods because of this special class declaration // But you cannot call this from steps in declarative, you must be inside script But if you really want global variables, I would recommand to use a single object containing what you need and give this object to people who need it, for example a class or a map : def myVars = [:] myVars['myGlobVar'] = 'hello' pipeline { // ... aFunction(myVars) } # But if you really really want global, just remove the "def" : myVars = [:] myVars['myGlobVar'] = 'hello' pipeline { // ... aFunction() // myVars can be read in this function } // But I thihnk this is a bad code Another way is to use static field of class, but it is also a bad pratice to use static field if you want them mutable. You could also just try to use the existing global var "env". This is a clean solution, but you must only use text values. env['myGlobVar'] = "hello" echo env.myGlobVar Good luck On Thu, Dec 17, 2020 at 9:45 AM Ven H <venh....@gmail.com> wrote: > In my case, I do the following. I have a GlobalVars.groovy file with below > content. > > #!/usr/bin/env groovypackage com.<companyName>.<ProductName>;public class > GlobalVars { static String myVar = ""} > > Then in my Shared Library class, I use it like below. > > GlobalVars.myVar = "" > > Try it like this and check. Here, I have declared the class as Public and the > variable as static. That's the only difference. > > > Regards, > Venkatesh > > > On Thu, Dec 17, 2020 at 12:56 PM Adrian Wyssmann <a...@wyssmann.com> > wrote: > >> I see several problem >> >> 1. using ' will not expand the parameters is your call should be sh >> "echo ${CustomMessage}" >> 2. CustomMessage is declared within the class Vars(), so you cannot >> access it >> >> You could implement a getter an then do something like this "echo >> ${globalVars.getCustomMessage()}" >> >> Maybe others have better ideas...? >> On Thursday, December 17, 2020 at 12:10:19 AM UTC+1 netwar...@gmail.com >> wrote: >> >>> Hello there >>> Maybe this is a very basic question, but am not being able to access a >>> global variable >>> from a shared library from a Jenkinsfile >>> >>> under vars I defined something like this >>> >>> globalVars.groovy >>> class Vars () { >>> >>> def CustomMessage = "This is a new deployment" >>> >>> } >>> >>> from my Jenkinsfile >>> >>> library identifier: 'globalVars@master', \ >>> retriever: modernSCM([$class: 'GitSCMSource', \ >>> credentialsId: 'tfsservice', \ >>> remote: 'http://myrepo.com', \ >>> traits: [gitBranchDiscovery()]]) >>> >>> >>> pipeline { >>> >>> stages { >>> stage('Do Some Stuff') { >>> steps { >>> script { >>> >>> sh 'echo ${CustomMessage}' >>> >>> } >>> } >>> } >>> } >>> >>> } >>> >>> But the above returns nothing, what am I doing wrong? >>> Thanks >>> Regards >>> >> -- >> 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/099e3aee-dffc-459d-8eb5-d64204effb58n%40googlegroups.com >> <https://groups.google.com/d/msgid/jenkinsci-users/099e3aee-dffc-459d-8eb5-d64204effb58n%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/CAPp28eojNNe9xEFtD8rNhxXnY5Z118zrhGLJRVsqSqaL4qiHFA%40mail.gmail.com > <https://groups.google.com/d/msgid/jenkinsci-users/CAPp28eojNNe9xEFtD8rNhxXnY5Z118zrhGLJRVsqSqaL4qiHFA%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- Yannick LACAUTE Consultant indépendant 39 rue de Wattignies, 75012 Paris Tel : 06 16 85 95 76 -- 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/CAG1W_Axgd1GdUuD-6J4xFmEqQSMC_XU_ekaXAuAF8AvfXfS6Cg%40mail.gmail.com.