设置环境变量,然后在Jenkins脚本化管道中运行脚本

Perplexabot

我是詹金斯,Groovy和管道技术的新手。我创建了一个简单的管道阶段,如下所示:

//working build but not setting env variables
node('build-01') {
    stage('Building') {
        echo "[*] Starting build (id: ${env.BUILD_ID}) on ${env.JENKINS_URL}"
        try {
            sh 'ls -l'
            //ls shows the damn file
            sh '. setup-target'
        } catch(all) { 
            sh "echo 'Failed to run setup-target script with error: ' ${all}"
        }
    }    
}

这有效。但是我想将环境变量修改/添加到运行此脚本的会话中(此脚本是一个bash文件,顶部带有正确的shebang行)。所以我做了:

node('build-01') {
    withEnv(["CMAKE_INSTALL_DIR=${WORKSPACE}", "SDK_INSTALL_DIR=${WORKSPACE}"]){
        stage('Building') {
            echo "[*] Starting build (id: ${env.BUILD_ID}) on ${env.JENKINS_URL}"
            try {
                sh 'ls -l'
                //ls shows the damn file
                sh '. setup-target'
            } catch(all) { 
                sh "echo 'Failed to run setup-target script with error: ' ${all}"
            }
        }    
    }
}

出现以下错误:

/home/jenkins-sw/ci/workspace/myWorkSpace@tmp/durable-6d30b48d/script.sh:第1行:。:设置目标:找不到文件

无法运行安装目标脚本,错误:hudson.AbortException:脚本返回了退出代码1

但是设置了环境变量,我通过在sh 'printenv'ls -l右下方进行检查有趣的ls -l是显示了脚本。

我想念什么?

更新

以下:

node('build-01') {
    withEnv(["CMAKE_INSTALL_DIR=${WORKSPACE}", "SDK_INSTALL_DIR=${WORKSPACE}"]){
        stage('Building') {
            echo "[*] Starting build (id: ${env.BUILD_ID}) on ${env.JENKINS_URL}"
            try {
                sh 'ls -l'
                //ls shows the damn file
                sh './setup-target'
            } catch(all) { 
                sh "echo 'Failed to run setup-target script with error: ' ${all}"
            }
        }    
    }
}

结果是:

/home/jenkins-sw/ci/workspace/myWorkSpace@tmp/durable-6d30b48d/script.sh:第1行:./setup-target:权限被拒绝

有趣。withEnv如何影响权限?什么?!如果我将文件修改为具有权限,则会收到一个新错误,该错误与“缺少工作空间”有关。

Perplexabot

我想到了。我直接克隆到工作区中,然后将环境变量设置为也指向工作区。我修改了这两件事。现在,我在工作区中创建一个目录并克隆到该目录中,并且还将环境变量设置为工作区中的目录。像这样:

node('build-01') {
    withEnv(["CMAKE_INSTALL_DIR=${WORKSPACE}/cmake_install", "SDK_INSTALL_DIR=${WORKSPACE}/sdk"]){
        stage('Building') {
            echo "[*] Starting build (id: ${env.BUILD_ID}) on ${env.JENKINS_URL}"
            try {
                sh 'ls -l'
                //ls shows the damn file
                dir('path/to/checkout/') {
                    sh '. ./setup-target'
                }
            } catch(all) { 
                sh "echo 'Failed to run setup-target script with error: ' ${all}"
            }
        }    
    }
}

这有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Python

在python脚本中设置环境变量

来自分类Java

检查是否在Ant脚本中设置了环境变量

来自分类Java

在ant脚本中设置环境变量

来自分类Dev

在TCL脚本中设置环境变量

来自分类Dev

在Shell脚本OS X中设置环境变量

来自分类Dev

docker运行脚本,导出环境变量

来自分类Dev

在python中设置调用bash脚本的环境变量

来自分类Dev

脚本化管道设置和访问环境变量

来自分类Dev

bash在脚本中的命令之前设置环境变量

来自分类Dev

Jenkins-在执行脚本中设置环境变量

来自分类Dev

检查是否在配置脚本中设置了环境变量?

来自分类Dev

使用基于环境变量的路径运行脚本

来自分类Dev

如何在Jenkins脚本化管道中设置环境变量?

来自分类Dev

在Shell脚本中为React应用设置环境变量

来自分类Dev

如何在将由Bash运行的脚本的shebang(#!)中设置环境变量?

来自分类Dev

如何在运行脚本Xcode 10中读取自定义环境变量?

来自分类Dev

docker使用环境变量在CMD中运行python脚本

来自分类Dev

cmd设置环境并运行脚本

来自分类Dev

如何在脚本化的詹金斯管道中动态设置环境变量?

来自分类Dev

将环境变量传递给jenkins管道bash脚本

来自分类Dev

获取上游环境变量-Jenkins脚本化管道

来自分类Dev

从Jenkins中的Groovy脚本设置环境变量

来自分类Dev

在hooks / install中运行脚本之前如何设置环境变量?

来自分类Dev

在初始化脚本中启动时,如何设置会话DBus的环境变量?

来自分类Dev

在systemd服务文件中从sh脚本设置环境变量

来自分类Dev

从 python 脚本中获取 Jenkins BUILD 环境变量

来自分类Dev

在脚本化管道中设置环境变量

来自分类Dev

Shell脚本中的Jenkins管道环境变量创建一个新行

来自分类Dev

如何在从 Jenkins 管道运行脚本时通过 ssh 在远程 AIX 机器中加载环境变量?

Related 相关文章

  1. 1

    在python脚本中设置环境变量

  2. 2

    检查是否在Ant脚本中设置了环境变量

  3. 3

    在ant脚本中设置环境变量

  4. 4

    在TCL脚本中设置环境变量

  5. 5

    在Shell脚本OS X中设置环境变量

  6. 6

    docker运行脚本,导出环境变量

  7. 7

    在python中设置调用bash脚本的环境变量

  8. 8

    脚本化管道设置和访问环境变量

  9. 9

    bash在脚本中的命令之前设置环境变量

  10. 10

    Jenkins-在执行脚本中设置环境变量

  11. 11

    检查是否在配置脚本中设置了环境变量?

  12. 12

    使用基于环境变量的路径运行脚本

  13. 13

    如何在Jenkins脚本化管道中设置环境变量?

  14. 14

    在Shell脚本中为React应用设置环境变量

  15. 15

    如何在将由Bash运行的脚本的shebang(#!)中设置环境变量?

  16. 16

    如何在运行脚本Xcode 10中读取自定义环境变量?

  17. 17

    docker使用环境变量在CMD中运行python脚本

  18. 18

    cmd设置环境并运行脚本

  19. 19

    如何在脚本化的詹金斯管道中动态设置环境变量?

  20. 20

    将环境变量传递给jenkins管道bash脚本

  21. 21

    获取上游环境变量-Jenkins脚本化管道

  22. 22

    从Jenkins中的Groovy脚本设置环境变量

  23. 23

    在hooks / install中运行脚本之前如何设置环境变量?

  24. 24

    在初始化脚本中启动时,如何设置会话DBus的环境变量?

  25. 25

    在systemd服务文件中从sh脚本设置环境变量

  26. 26

    从 python 脚本中获取 Jenkins BUILD 环境变量

  27. 27

    在脚本化管道中设置环境变量

  28. 28

    Shell脚本中的Jenkins管道环境变量创建一个新行

  29. 29

    如何在从 Jenkins 管道运行脚本时通过 ssh 在远程 AIX 机器中加载环境变量?

热门标签

归档