如何在流水线中使用 Jenkins 文件参数

问题描述

我的 Jenkins 管道使用代理 { node { label 'slave_node1' } } 在 Slave 上运行。

我使用名为 uploaded_file 的 Jenkins 文件参数并上传名为 hello.pdf 的文件

我的管道包含以下代码

stage('Precheck')
{
  steps {
       sh "echo ${WORKSPACE}"
       sh "echo ${uploaded_file}
       sh "ls -ltr ${WORKSPACE}/*"

输出:

/web/jenkins/workspace/MYCOPY
hello.pdf
ls: cannot access /web/jenkins/workspace/MYCOPY/* No such file or directory

如您所见,在从属 WORKSPACE 上没有找到任何文件。

您能否让我了解我是否在正确的位置(即在 WORKSPACE 目录下)检查上传的文件?

如何将文件上传到从属的工作区?

我使用的是 jenkins 版本 2.249.1

我可以至少在最新版本的 Jenkins 上使用它吗?

解决方法

那么您是否有一个在每次构建中都会复制的固定文件?即它是同一个文件?

在这种情况下,您可以将其保存为 jenkins 中的机密文件并执行以下操作:

environment {
    FILE = credentials('my_file')
}

stages {
    stage('Preperation'){
        steps {
            // Copy your fie to the workspace
            sh "cp ${FILE} ${WORKSPACE}"
            // Verify the file is copied.
            sh "ls -la"
        }
    }
}

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...