当前位置: 首页 > 面试题库 >

如何在Jenkinsfile中设置和引用变量

斜昊空
2023-03-14
问题内容

对于多分支项目,我有一个声明性管道脚本,在该脚本中,我想读取文本文件并将结果存储为字符串变量,以供管道的后续步骤访问。使用摘要生成器,我尝试执行以下操作:

filename = readFile 'output.txt'

为此,这filename将是我的字符串。

在Jenkins控制台输出中出现错误:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 30: Expected a step @ line 30, column 5.
            filename = readFile 'output.txt'

我是否需要使用一个withEnv步骤来将readFileJenkins环境变量的输出设置为?如果是这样,怎么办?

谢谢


问题答案:

该错误是由于只允许您在steps指令中使用管道步骤。我知道一种解决方法是使用scriptstep并将任意管道脚本包装在其中,并将结果保存在环境变量中,以便以后使用。

因此,在您的情况下:

pipeline {
    agent any
    stages {
        stage("foo") {
            steps {
                script {
                    env.FILENAME = readFile 'output.txt'
                }
                echo "${env.FILENAME}"
            }
        }
    }
}


 类似资料:
  • 问题内容: 我正在使用Jenkins Multibranch Pipelines实施构建工作。最后阶段是将构建输出上传到Artifactory。 通过界面配置独立作业时,有一个选项“从Artifactory丢弃旧版本”,这使我只能保留与“要保留的最大版本数”设置中指定的相同数量的版本。 我的Jenkins文件中的上传阶段配置如下:https ://wiki.jenkins- ci.org/disp

  • 这是我在INNO设置中的三个示例部分。我想在INI部分使用。我该怎么做?

  • 我使用AWS ECS来托管我的应用程序,并使用DynamoDB进行所有数据库操作。因此,我将为不同的环境使用相同的数据库和不同的表名。如dev_users(Dev env)、test_users(Test env)等。(这是我们公司如何在不同环境下使用相同的Dynamo帐户) 因此,我想使用通过“AWS ECS任务定义”环境参数传递的环境变量更改模型类的“tableName”。 例如 我的模型类是

  • 问题内容: 我正在尝试从表中读取数据。该表具有表名列表。 对于数据集的每一行,我想运行几个查询以提取数据并将其插入到临时表中。 这是我所做的 每次我运行此查询时,都会出现此错误 我不知道为什么,因为我在上面的代码中看到了在顶部声明此变量的原因。 取得输出并手动执行。它没有问题,并且该变量将具有应有的datetime值。 问题答案: 您需要使用执行动态查询,可帮助您 变量 演示版

  • 我使用递归方法在二叉树中使用键查找节点。找到节点后,我将其设置为引用变量foundNode并返回。问题是,当我读取对象时,它的值仍然是null。有人能帮忙吗?

  • 我有一个groovy文件,我想从Jenkinsfile运行。 即加载脚本。groovy 但是,我不确定如何引用这个文件,如果它存储在与Jenkinsfile相同的目录中。我正在从git加载Jenkinsfile。我注意到它创建了一个名为的文件夹。它没有将其放在工作区目录中。我可以对文件夹进行硬编码,但我不确定这方面的规则,再次签出代码似乎有点多余。 默认情况下,它从工作区加载,而不是 我正在尝试将