我们可以在Jenkins参数化构建中定义变量吗?

时间:2018-06-12 10:00:40

标签: jenkins jenkins-plugins

我的场景是,我已经参数化了构建,在构建部分内部,我已经执行了shell,我在其中定义了一个变量,然后使用echo来打印它。但它不会在控制台输出中打印任何内容。

我希望我已经说清楚了。有人可以回答我的问题吗?

public void doFilter(request , response , chain) {
            HttpServletResponse httpServletResponse = (HttpServletResponse) response;
            CharResponseWrapper responseWrapper = new CharResponseWrapper(httpServletResponse);
            ServletResponse newResponse = response;
            if (request instanceof HttpServletRequest) {
              newResponse = new CharResponseWrapper((HttpServletResponse) response);
            }
            chain.doFilter(request, newResponse);
            if (newResponse instanceof CharResponseWrapper) {
                String responseString = newResponse.toString();
                if(StringUtils.isNotBlank(walletResponseString)) {
                    //code to handle response by converting to object
                }
            }
}

enter image description here

1 个答案:

答案 0 :(得分:0)

我正在使用 Jenkins ver。 2.32.3 和一个简单的自由式作业,在mac OS上运行,使用执行shell构建步骤:

current_folder=`date +%Y%m%d-%H%M%S`
echo $current_folder

输出:

$ /bin/sh -xe /var/folders/kh/4fl0eeldofefmmsfd/T/hudson89388543547899686.sh
++ date +%Y%m%d-%H%M%S
+ current_folder=20180613-081712
+ echo 20180613-081712
20180613-081712
Finished: SUCCESS

以类似的方式设置shell:

#!/bin/bash
current_folder=`date +%Y%m%d-%H%M%S`
echo $current_folder

给出:

$ /bin/bash /var/folders/kh/by0kd93dfew5fgjhy000h6/T/hudson62702345565786787.sh
20180613-081655
Finished: SUCCESS

这同样适用于作为Jenkins作业的一部分定义的参数,在< 设置This project is parameterized复选框。例如,如果您有一个名为userName的字符串参数,默认值为User1,那么您可以使用以下内容在Execute Shell构建步骤中打印它的值:

echo $userName
echo ${userName}
echo "In a string ${userName}"

,并提供:

User1
User1
In a string User1