我的项目中有以下基本Jenkins文件
$('#element_id').draggable({axis: 'x,y',});
我根据图片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
Install
当我查看失败版本的控制台输出时,它表示没有名称为stage('Browser tests') {
steps {
parallel (
"Chrome" : {
echo 'Chrome'
},
"Firefox" : {
echo 'Firefox'
}
)
}
}
的目录或文件。
package.json
当我删除新添加的舞台时,提交并推送到repo并运行一个新的构建,一切正常。
我不明白为什么早期阶段失败,并且找不到scm中存在的package.json文件。在具有并行步骤的阶段中或在我的Jenkinsfile中是否存在导致此构建失败的错误?为什么它在早期阶段失败而不在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'
?
答案 0 :(得分:0)
并行阶段需要容器的两个实例。听起来您的情况是,SCM签出位于一个容器上,而Install阶段在另一个容器上执行。我建议在安装阶段的开始添加一个checkout scm
步骤。
还请注意,并非两个并行容器都能够同时侦听主机上的端口3000。