使用Jenkins在本地文件夹上运行命令

qgelzfjb  于 12个月前  发布在  Jenkins
关注(0)|答案(2)|浏览(139)

我有这样的文件夹结构:

  • /home/user/project
  • 共同
  • web
  • 移动的

我想在每个文件夹中并行运行yarn test,我想使用Jenkins(或其他东西?)以提供易于使用的用户界面
可能吗?
我在一个freestyle项目中使用nodeJS插件。安装nodejs如下:x1c 0d1x然后我尝试这样做:

然后我有这个错误:

好像没有安装yarn...但它应该被安装,因为我把yarn作为一个全局包,
有什么想法吗?

l0oc07j2

l0oc07j21#

我注意到你遇到的问题可能与这篇Stack Overflow文章中讨论的一个特定问题有关:How to enable Yarn for Jenkinsfile Pipeline syntax?
根据我的评估,您面临的错误似乎与Yarn未在Jenkins设置中配置为环境变量有关,这可能导致它在作业执行期间无法正确注入(在我看来)。
为了解决这个问题,我建议考虑使用NPM和Yarn Wrapper and Steps插件。这是一个简单的解决方案,请查看 https://plugins.jenkins.io/npm-yarn-wrapper-steps/ 上的所有详细信息进行配置,并可能解决您面临的问题。我鼓励您给予尝试,看看它是否符合您的要求。另外,您可以在GUI作业或管道上使用(对我来说是最好的解决方案)。

0sgqnhkj

0sgqnhkj2#

如果您想在三个文件夹中并行运行该命令,那么创建一个声明性管道并使用parallel命令docs更有意义。你的代码看起来像这样:

pipeline {
    agent any
    stages {
        stage('Run Tests') {
            parallel {
                stage('Common') {
                    steps {
                        dir(/home/user/project/common) {
                            sh "yarn test"  
                        }
                    }
                }
                stage('web') {
                    steps {
                        dir(/home/user/project/web) {
                            sh "yarn test"  
                        }
                    }
                }
                stage('mobile') {
                    steps {
                        dir(/home/user/project/mobile) {
                            sh "yarn test"  
                        }
                    }
                }
            }
        }
    }
}

这将同时在所有三个目录中触发yarn test。至于安装,只要确保你的Jenkins机器上安装了nodeJs和yarn,它应该可以在不使用插件的情况下工作。

相关问题