代码之家  ›  专栏  ›  技术社区  ›  imekon

管道中有env的jenkins不在windows上设置环境变量

  •  0
  • imekon  · 技术社区  · 8 年前

    我希望能够在jenkins管道中更改windows上的环境变量,并且只有在该管道中,我该如何做?

    系统中的环境变量设置为:

    XXX_DEV_DATA_DIR = E:\tools\jenkins\workspace\data\XXX-IDM
    XXX_DEV_LIBS_DIR = E:\tools\jenkins\workspace\dev\libs
    

    我尝试了withenv命令,但没有效果:

    node
    {
        withEnv(["XXX_DEV_LIBS_DIR=E:\\tools\\jenkins\\workspace\\dev\\libs', 'XXX_DEV_DATA_DIR=E:\\tools\\jenkins\\workspace\\data\\XXX-IDM-Testing"])
        {
            dir('E:\\tools\\jenkins\\workspace\\samples\\GetXXXSettings\\bin\\x64\\Release')
            {
                bat 'GetXXXSettings.exe'
            }
        }
    }
    

    getxxxsettings.exe应用程序:

    class Program
    {
        static void Main(string[] args)
        {
            var data = Environment.GetEnvironmentVariable("XXX_DEV_DATA_DIR");
            var libs = Environment.GetEnvironmentVariable("XXX_DEV_LIBS_DIR");
    
            Console.WriteLine("XXX ENVIRONMENT VARIABLES");
            Console.WriteLine();
            Console.WriteLine($"XXX_DEV_DATA_DIR = {data}");
            Console.WriteLine($"XXX_DEV_LIBS_DIR = {libs}");
            Console.WriteLine();
            Console.WriteLine("END");
        }
    }
    

    结果如下:

    XXX ENVIRONMENT VARIABLES
    
    XXX_DEV_DATA_DIR = E:\tools\jenkins\workspace\data\XXX-IDM
    XXX_DEV_LIBS_DIR = E:\tools\jenkins\workspace\dev\libs', 'XXX_DEV_DATA_DIR=E:\tools\jenkins\workspace\data\XXX-IDM-Testing
    
    END
    

    环境变量xxx_dev_data_dir没有变化,我不确定xxx_dev_libs_dir发生了什么。

    1 回复  |  直到 8 年前
        1
  •  1
  •   slashpai    8 年前

    看来你在WITHENV处引用了引号,请尝试更新它

    node
    {
        withEnv(['XXX_DEV_LIBS_DIR=E:\\tools\\jenkins\\workspace\\dev\\libs', 'XXX_DEV_DATA_DIR=E:\\tools\\jenkins\\workspace\\data\\XXX-IDM-Testing'])
        {
            dir('E:\\tools\\jenkins\\workspace\\samples\\GetXXXSettings\\bin\\x64\\Release')
            {
                bat 'GetXXXSettings.exe'
            }
        }
    }