我试图使用Jenkins管道将React应用程序部署到我的Mac上运行的流浪机器上。
在我成功构建应用程序之后,构建文件夹仅驻留在构建阶段。在下一阶段中看不到此生成文件夹。当我试图在构建后的下一阶段列出构建文件夹的内容时,我得到了这个错误;
ls: cannot access './build': No such file or directory
字符串
我已经存档了文件夹,但我一直得到同样的错误。
这是我的管道;
@Library('shared-library') _
pipeline {
agent none
stages{
stage("Test"){
agent {
docker {
image 'node:lts-alpine'
args '-u root:root'
}
}
steps{
sh "chmod +x -R ${env.WORKSPACE}"
sh './app/scripts/test.sh'
}
}
stage("Build"){
agent {
docker {
image 'node:lts-alpine'
args '-u root:root'
}
}
steps{
dir('./app'){
sh "chmod +x -R ${env.WORKSPACE}"
sh "npm install"
sh "./scripts/deliver-for-development.sh"
archiveArtifacts artifacts: "build/**", fingerprint: true
}
}
}
stage("Deliver for Development"){
agent any
when {
branch "development"
}
steps{
sh 'ls ./build'
}
}
}
}
型
这是管道中./scripts/deliver-for-development.sh脚本的内容。
#!/bin/sh
set -x
npm run build
set +x
型
请问我该如何解决这个问题?
2条答案
按热度按时间b91juud31#
使用stash将文件从一个阶段复制到另一个阶段,将Jenkins文件存储到其他阶段
应该和这个差不多
字符串
juzqafwq2#
正如你在构建阶段所看到的,它在docker内部构建,在紧接着的下一个阶段,代理丢失了,jenkins可能正在寻找与前一阶段docker不同的位置。如果在此步骤后立即执行ls,sh“./scripts/deliver-for-development.sh“,则可以看到内容。您可以在构建步骤期间将构建文件夹复制到控制器中的某个位置并部署它。