【问题标题】:Jenkins stage with parallel steps causes error during npm install in earlier stage具有并行步骤的 Jenkins 阶段在早期阶段的 npm 安装期间导致错误
【发布时间】:2018-04-25 06:38:11
【问题描述】:

我的项目中有以下基本 Jenkinsfile

pipeline {
    agent {
        docker {
            image 'node:6-alpine'
            args '-p 3000:3000'
        }
    }
    environment {
        CI = 'true'
    }
    stages {
        stage('Install') {
            steps {
                sh 'npm install'
            }
        }
        stage('Test') {
            steps {
                sh 'set -x'
                sh 'npm test'
            }
        }
        stage('Build') {
            steps {
                sh 'npm build'
            }
        }
    }
}

我在基于镜像jenkinsci/blueocean:latest的docker容器中运行Jenkins

当我添加以下阶段时,在阶段 Install 期间构建失败

stage('Browser tests') {
    steps {
        parallel (
            "Chrome" : { 
                echo 'Chrome'  
            },
            "Firefox" : { 
                echo 'Firefox' 
            }
        )
    }
}

当我查看失败构建的控制台输出时,它说没有名称为 package.json 的目录或文件。

entrypoint cat node:6-alpine
[Pipeline] {
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Install)
[Pipeline] sh
[jenkins-test-project_master-MDUNVJDQRLLKTJWSX7HRSYYITN7ZKZOU74225CDTDS4DUGOXVMIA] Running shell script
+ npm cache clean
[Pipeline] sh
[jenkins-test-project_master-MDUNVJDQRLLKTJWSX7HRSYYITN7ZKZOU74225CDTDS4DUGOXVMIA] Running shell script
+ npm install
npm WARN enoent ENOENT: no such file or directory, open '/var/jenkins_home/workspace/jenkins-test-project_master-MDUNVJDQRLLKTJWSX7HRSYYITN7ZKZOU74225CDTDS4DUGOXVMIA/package.json'

当我删除新添加的阶段时,提交并推送到 repo 并运行新的构建,一切正常。

我不明白为什么早期阶段会失败,并且找不到 scm 中存在的 package.json 文件。在并行步骤的阶段或我的 Jenkinsfile 中是否存在导致此构建失败的错误?为什么它在早期阶段失败,而不是在Browser tests

【问题讨论】:

    标签: node.js jenkins jenkins-pipeline


    【解决方案1】:

    并行阶段需要容器的两个实例。听起来在您的情况下,SCM 签出位于一个容器上,而安装阶段在另一个容器上执行。我建议在安装阶段的开头添加一个checkout scm 步骤。

    另请注意,并非两个并行容器都能够同时侦听主机上的 3000 端口。

    【讨论】:

      猜你喜欢
      • 2021-01-10
      • 2015-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      相关资源
      最近更新 更多