我正在编写一个简单的詹金斯文件来测试、构建和部署角度应用程序。 但我的詹金斯管道在 sh 'npm install' 处失败
这是我的詹金斯管道脚本
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git branch: 'main', url: 'https://github.com/0APOCALYPSE0/ngrx-task.git'
}
}
stage('Test') {
steps {
sh 'npm install'
sh 'ng test'
}
}
stage('Build') {
steps {
sh 'ng build'
}
}
stage('Deploy') {
steps {
bat 'move dist\\ngrx-task\\*.* C:\\nginx\\'
}
}
}
}
错误:
Found unhandled java.io.IOException exception:
Cannot run program "nohup" (in directory "C:\ProgramData\Jenkins\.jenkins\workspace\Angular build and deploy"): CreateProcess error=2, The system cannot find the file specified
java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1170)
java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1089)
hudson.Proc$LocalProc.(Proc.java:252)
hudson.Proc$LocalProc.(Proc.java:221)
hudson.Launcher$LocalLauncher.launch(Launcher.java:994)
hudson.Launcher$ProcStarter.start(Launcher.java:506)
org.jenkinsci.plugins.durabletask.BourneShellScript.launchWithCookie(BourneShellScript.java:180)
org.jenkinsci.plugins.durabletask.FileMonitoringTask.launch(FileMonitoringTask.java:134)
org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.start(DurableTaskStep.java:329)
org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:323)
org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:196)
org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:124)
我尝试谷歌搜索,但找不到解决方案。我是詹金斯/devops 的新手。我认为 sh cmd 有问题,也许 Windows 中安装的 jenkins 有问题,这就是它无法运行 sh cmd 的原因。
有人可以帮我吗?
谢谢
我想您正在运行默认代理希望是内置节点希望不推荐,您必须设置代理 Windows 代理(希望您必须使用 PowerShell“bat”)或设置 Linux 代理希望使用“sh”。 代理可以是虚拟机、树莓派或远程服务器,任何带有命令行的东西。 这是有关如何在 YouTube 上设置 Linux 虚拟机代理的指南: https://www.youtube.com/watch?v=99DddJiH7lM&t=403s&ab_channel=CloudBeesTV 和代理文件 此外,您必须在其上并在路径中安装 Node.js。 或者,您可以使用 docker 容器作为代理,您需要安装 docker 并在路径中 请参阅 Docker with Pipeline 文档: https://www.jenkins.io/doc/book/pipeline/docker/ 经验:
pipeline {
agent {
docker { image 'node:20.16.0-alpine3.20' }
}
stages {
stage('Test') {
steps {
sh 'node --version'
}
}
}
}