【发布时间】: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