jenkins pipeline 流水线的step不执行,导致流水线退出。

描述:

    我运行pipeline,有几次会退出,退出信息如下:

    npm config set registry https://registry.npm.taobao.org
    npm config set 'sass-binary-site=http://npm.taobao.org/mirrors/node-sass'
    process apparently never started in /home/jenkins/workspace/demo_nodejs@tmp/durable-a15f6a06
    ERROR: script returned exit code -2
    Finished: FAILURE

我的pipeline写法如下

def registry = SECRET
def library = 'demo'
def name = 'nodejs_demo'
podTemplate(){
    node('nodejs') { // my podtemplate is defined in global config, and can run well.
        echo 'ready go'
        def path = pwd()
        def branch_ = ''
        def author = ''
        def version = ''
        def image
        branch_ = 'master'
        echo 'branch_ = ' + branch_
        // clone git 
        stage("clone code") {
            git credentialsId: SECRET, branch: branch_, url: SECRET
            sh 'git log --no-merges --pretty=format:"%an" -1 > author.txt'
            sh 'git log --no-merges --pretty=format:"%h" --abbrev=8 -1 > version.txt'
            sh 'url=`cat .git/config|grep git`&&url=${url##*/}&&echo ${url%.*} > name.txt'
            author = readFile("author.txt")
            version = readFile("version.txt")
            image = "${registry}/${library}/${name}"
            echo "${image}"
            echo 'clone code complete'
        }
        # enter container.
        container('nodejs') {
            stage("nodejs install") { // my Step
                sh 'npm config set registry https://registry.npm.taobao.org'
                sh 'npm config set sass-binary-site=http://npm.taobao.org/mirrors/node-sass'
                sh 'npm install' // not execute it.
            }
            stage("nodejs build") {
                sh 'npm run build'
            }
            stage('copy dockerfile') {
                input "Exit"
            }
        }
    }
}

我的现象如下:

    "npm install" or "npm build" 是我的jenkinsfile配置
    当脚本运行到"npm config" ,下一步应该是"npm install",但是没有执行,之后流水线退出了。我运行相同的jenkinsfile,有时候成功、有时候失败,而且失败的位置也不同,有时候是"npm install"或者"npm build"等等.
ci

1个回答

qq_21500619
qq_21500619 语法都是正确的,用的是jenkins-kubernetes, podtemplate 和pipeline语法大体一样的,而且大多数都能正常构建,就是有些时候stage里面的sh语法会卡住,然后容器里面没有执行脚本,到超时这个流水线就退出了
大约 2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

Jenkins创建项目时,为何看不到Pipeline选项

Jenkins网上的教程在创建项目时有很多选项,比如有Freestyle project、Pipeline、Multibranch Pipeline等: ![图片说明](https://img-ask.csdn.net/upload/202002/12/1581492079_862135.png) 而我这里已经安装了Pipeline插件,如下图: ![图片说明](https://img-ask.csdn.net/upload/202002/12/1581495551_536142.png) 为什么还是只有一个Freestyle project: ![图片说明](https://img-ask.csdn.net/upload/202002/12/1581471715_360648.png)

jenkins里面创建pipeline的job, 支持访问svn路径吗?

node { git url: 'https://github.com/jglick/simple-maven-project-with-tests.git' def mvnHome = tool 'M3' sh "${mvnHome}/bin/mvn -B verify" } git url: 'https://github.com/jglick/simple-maven-project-with-tests.git’ 这url路径支持svn的路径吗? 求解答,谢谢!

#jenkins #詹金斯 #pipeline 脚本中执行linux命令报错:line 2: syntax error near unexpected token `('。

pipeline 脚本中执行linux命令报错: 1. linux命令:sh "python3 /home/pipline/DisasteRecoveryV1.1/main.py ${pool} ${province}" 2. 报错:line 2: syntax error near unexpected token `('。 命令只有1行,且没有"(",还是报了这个错误,为什么啊? 如果将脚本改成:sh 'python3 /home/pipline/DisasteRecoveryV1.1/main.py "${pool}" "${province}"',就不会报错,但是参数又传不进来,两个参数传进来都是空字符。 pipeline script如下: ``` stage('选择切换省份和资源池') { steps{ script{ def province = '' province = input message: '请选择省份', parameters: [choice(choices: '安徽\n北京\n福建, name: 'provinces')] def pool = '' pool = input message: '请选择资源', parameters: [choice(choices: '河北\n河南, description: '-', name: 'pool')] echo "选择省份:${province},选择资源:${pool}。" sh "python3 /home/pipline/DisasteRecoveryV1.1/main.py ${pool} ${province}" } } } ```

jenkins中如何在pipeline中获取gitLab tag名称

pipeline进行集成时,需要根据最新的tag标签来决定接下来的构建

Jenkins部署VUE项目无限转菊花

首先说下我的部署思路,主要分为两步 1.我通过jenkins拉取svn代码到远程服务器上,目录是(jenkins/workspace/vue)下 2.进入目录直接 执行“npm run test ![](https://img-ask.csdn.net/upload/201905/23/1558572367_93994.png) 3.部署结束后项目能成功启动,也能正常访问 4.但是就是一种转圈,导致整个Job不能结束,/log/all下也没报错日志 ![图片说明](https://img-ask.csdn.net/upload/201905/23/1558572616_854998.png) ![图片说明](https://img-ask.csdn.net/upload/201905/23/1558572638_468621.png) 必须手动给关闭,困扰多天,请教大神如何解决 ps:同时部署了java项目,启动tomcat都正常,未出现这种情况

jenkins execute shell 命令执行

众所周知, command1&&command2是指命令1成功后执行命令2 command1||command2是指命令1失败后执行命令2 command1;command2是指命令间顺序执行 我在jenkins execute shell中通过(command1;command2)执行命令,其中command1是执行robot framework自动化用例脚本的命令,command2是生成报告的命令,为什么只要command1中有用例失败,即使command1是被执行完成的,仍然不会执行command2呢,只能通过||连接命令,command2才被执行

用docker镜像搭建的jenkins,构建时使用shell脚本,没有root权限,该怎么办。

这是我在jenkins里面写的构建脚本 ``` docker -v if [ $? != 0 ] then apt-get update apt-get install docker fi docker rm -f biz-document docker rmi -f comb-service-biz-document-imnage docker build -t comb-service-biz-document-imnage ./comb-service-biz-document/ docker run -d -p 2000:2000 --name biz-document comb-service-biz-document-imnage ``` 这是构建时候的日志输出 ``` + docker -v /tmp/hudson1357047080350557192.sh: 2: /tmp/hudson1357047080350557192.sh: docker: not found Build step 'Execute shell' marked build as failure Finished: FAILURE ``` 原本我是打算,判断一下docker是否安装,没有安装就apt-get install一个 结果现在遇到两个问题: 1.这个判断写法好像不对 2.因为我这个jenkins是一个docker的镜像,docker exec -ti 6cb7 whoami看了下不是root用户,是jenkins用户,我没法获取到root权限,也就不能apt-get了 小白一枚,望大神赐教。

如何判断Jenkins前处理已执行完成

我在jenkins的job的设定页面,设定了前处理 但在控制台并没有输出前处理是否执行的相关信息 如何判断前处理是否已经执行?是否已经执行结束?

jenkins执行shell命令时,命令被分成两行执行,中间有一个管道,怎么办?

命令是这个 ``` find -name '*.jsp'|xargs perl -pi -e 's|ccc.com|aaa.com|g' ``` 在控制台输出是这样的 ``` + cd + find -name '*.jsp' + xargs perl -pi -e 's|ccc.com|aaa.com|g' ``` 怎么样让它在一行执行呢?

使用Jenkins Blue Ocean找不到命令

<div class="post-text" itemprop="text"> <p>I am trying to set up a Jenkins Blue Ocean pipeline to auto-build my github repo on a PR merge.</p> <p>I've installed the Go plugins for Jenkins and created the following <code>Jenkinsfile</code> with the help of Blue Ocean. Just wanted it to be very simple at first - I have a shell script to run that will build the program I just need Jenkins to run it on merge. </p> <pre><code>pipeline { agent any stages { stage('Building Backend') { agent any steps { echo 'Using Go 1.12' tool(name: 'Go 1.12', type: 'go') echo 'Building Backend...' sh 'go version' } } } } </code></pre> <p>The above Jenkinsfile returns </p> <pre><code>go: command not found script returned exit code 127 </code></pre> <p>but ideally I want it to recognize Go since I will be running a log of <code>go build</code> commands. I added Go as a tool in <code>global tool configuration</code> in the settings of Jenkins.</p> </div>

流水线冲突解决的问题

解决流水线由于控制相关可能引发的问题,有一种解决办法是分支延迟槽,分支延迟槽的主要思想是什么?和分支预测有什么区别?

jenkins 如何判断构建操作执行成功了还是失败了?

每一个项目配置都会有构建,构建可以是windows命令行,shell脚本等等... jenkins是如何判断本次构建是失败还是成功了呢(源码这个地方肯定是做了一些类似于if esle或者 返回值的判断的),这部分判断的源码是怎样的呢?逻辑是怎么实现的?

求教kubernetes中Jenkins容器如何调用DOCKER命令

我遇到个问题,用kubernetes装载的Jenkins 无法再pipeline script中执行sh "docker -b .."等命令

RFS中上传文档自动化脚本,集成在jenkins中执行不通过,不知道怎么解决?

RFS中web上传文档(非标准上传控件)自动化脚本,集成在jenkins里运行,脚本是执行通过了,但实际图片并没有上传成功? 说明:上传图片脚本用到了AutoItLibrary库,执行过程中需要打开windows选择文件界面,但jenkins中运行脚本的语句pybot是在后台执行,并不会打开界面,所以导致上传图片不成功。

jenkins 构建后执行shell脚本应该选择那个一个模块,为什么别人教程上的我没有

jenkins 构建后执行shell脚本应该选择那个一个模块,为什么别人教程上的我没有,我是不是需要安装什么插件 ![图片说明](https://img-ask.csdn.net/upload/201808/01/1533103106_476415.png)

在基于Docker的Jenkins代理中找不到Go

<div class="post-text" itemprop="text"> <p>I have created a Docker-based Jenkins agent that uses <code>docker:stable-dind</code> (which is based on Alpine 3.10) as its base. <a href="https://pastebin.com/mw6HQEV5" rel="nofollow noreferrer">Full Dockerfile</a>.</p> <p>In the Dockerfile I install Go: <code>RUN apk add go</code></p> <p>When running locally, e.g. <code>go version</code>, <code>go env GOROOT</code>, etc... I get results, e.g. <code>1.12.6</code>, <code>/usr/lib/go</code>.</p> <p>I then attempt using this agent in Jenkins, and print <code>env</code> to verify the above environment variables are, but they not there and also <code>go version</code> fails`.</p> <p>So, I update the Docker agent template in Jenkins with:</p> <ul> <li><code>GOROOT</code>: <code>/usr/lib/go</code></li> <li><code>PATH</code>:<code>/bin/sonar-scanner/bin/:/usr/local/bin:$GOROOT/bin:$PATH</code></li> </ul> <p>Now when checking <code>env</code> they are there...</p> <pre><code>GOROOT=/usr/lib/go PATH=/bin/sonar-scanner/bin/:/usr/local/bin:/usr/lib/go/bin:/bin:/usr/bin:/sbin:/usr/sbin GOPATH=/home/jenkins/workspace/go test </code></pre> <p>... but <code>go version</code> still fails.</p> <p><code>GOPATH</code> is set to the current <code>$WORKSPACE</code> as that's where I will clone the Go project source if this actually works.</p> <p>This is the Jenkins job: </p> <pre><code>#!groovy pipeline { agent { label 'cli-agent' } stages { stage ("test") { steps { script { withEnv(["GOPATH=${WORKSPACE}"]) { sh """ env go version """ } } } } } } </code></pre> </div>

将Jenkins构建部署到Sonatype Nexus

<div class="post-text" itemprop="text"> <p>I have already integrated <code>sonar-cube</code>,<code>Jenkins</code> and <code>git lab</code>.Is there a way to add the <code>Jenkins</code> build result (my all projects are <code>php Angular</code>) to the <code>Sonatype Nexus</code> repository (<code>Sonatype Nexus</code> already installed)?</p> </div>

请问Jenkins中如何使用Oracle的sdcli执行utPLSQL?

这是Jenkins中的执行脚本 ``` node { dir('D:/app/PVer/product/11.2.0/dbhome_1/sqldeveloper/sqldeveloper/bin'){ stage('Run UT'){ bat 'sdcli64 unittest -run -suite -name ALL -repo localdbDwayne -db localdbDwayne -log 3' } } } ``` 这是构建的时候报的错 ![图片说明](https://img-ask.csdn.net/upload/201904/12/1555079655_438133.jpg)

Jenkins构建后操作,能不能发送Http请求呢?

Jenkins构建后可以发送邮件通知,现在需要实现Jenkins构建后调用开放接口发送消息,怎么在构建后发送http请求调用接口呢?

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

相关热词 c# 局部 截图 页面 c#实现简单的文件管理器 c# where c# 取文件夹路径 c# 对比 当天 c# fir 滤波器 c# 和站 队列 c# txt 去空格 c#移除其他类事件 c# 自动截屏
立即提问