nodejs python jedi_Jenkins管道:选择nodejs版本(+ python版本)
我在Jenkinsfile中遇到Jenkins管道的问题。我的Jenkins实例上有4个不同的nodeJs版本。我想选择要在管道中使用的那个,但是官方插件示例(https://wiki.jenkins-
ci.org/display/JENKINS/NodeJS+Plugin)根本不起作用。
我尝试了第一种方法,但由于$ PATH被该tools部分覆盖而失败。
pipeline {
agent any
tools {
// I hoped it would work with this command...
nodejs 'nodejs6'
}
stages {
stage('Example') {
steps {
sh 'npm --version'
// Failed saying :
// Running shell script
//nohup: failed to run command 'sh': No such file or directory
}
}
}
}
我尝试了第二种方法,但失败了,因为该tool命令似乎根本不起作用。
pipeline {
agent any
stages {
stage('Example') {
steps {
// ... or this one
tool name: 'nodejs6'
sh 'node --version'
sh 'npm --version'
// Does not use this version of node, but the default one... 7.5.0 with npm 4.3.0
}
}
}
}
最后,我尝试了一个适用于NodeJS的工具,但是…似乎“不是很聪明”,并且不允许我正确处理我的特定版本的“
Python”-是的,我还有2个不同的版本我想以与节点相同的方式处理Python-
pipeline {
agent any
stages{
stage ('Which NodeJS'){
steps{
withEnv(["PATH+NODEJS=${tool 'nodejs6'}/bin","PATH+PYTHON27=${tool 'python27'}"]) {
// Check node version
sh 'which node' // Works properly
sh 'node -v' // Expected 6.9.x version
sh 'npm -v' // Expected 3.x version
sh 'python27 -v'
// Failed with
// /nd-jenkinsfile_XXX@tmp/xx/script.sh: python27: not found
}
}
}
}
}
我还有第四个解决方案,不使用pipeline语法。它适用于nodejs,但不适用于python(到目前为止)。再一次,手动定义似乎不是很优雅env.PATH。
node {
// Setup tools...
stage ('Setup NodeJs'){
def nodejsHome = tool 'nodejs6'
env.NODE_HOME = "${nodejsHome}"
env.PATH = "${nodejsHome}/bin:${env.PATH}"
sh 'which node'
sh 'node -v'
sh 'npm -v'
}
stage ('Setup Python 2.7'){
def pythonBin = tool 'python27'
// Jenkins docker image has Jenkins user's home in "/var/jenkins_home"
sh "rm -Rf /var/jenkins_home/tools/python ; mkdir -p /var/jenkins_home/tools/python"
// Link python to python 2.7
sh "ln -s ${pythonBin} /var/jenkins_home/tools/python/python"
// Include link in path --don't use "~" in path, it won't be resolved
env.PATH = "~/tools/python:${env.PATH}:~/tools/python"
// Displays correctly Python 2.7
sh "python --version"
}
}
总而言之,我只是想知道哪种解决方案(最好是我这里未列出的另一种解决方案)是最好的?您建议哪一个,为什么?
干杯,奥利维尔
nodejs python jedi_Jenkins管道:选择nodejs版本(+ python版本)相关推荐
- python就业方向选择-学完Python,你有哪些就业方向可以选?
原标题:学完Python,你有哪些就业方向可以选? Python工资又涨了!Python好学,0基础都没问题!Python应用超级广泛,几乎无所不能!Python--随着Python的大火,连抖音里面 ...
- python和java选择哪个-Java、Python你会选择哪个?老男孩python
现在很多零基础的小伙伴都想要进入到编程行业之中,无论什么情况选择哪门语言都非常重要,毕竟关系到以后的发展和薪资,很多人都知道Python是当下很火的语言,也知道Java是非常高级的编程语言,问题来了, ...
- python 命名管道_详解Python进程间通信之命名管道
管道是一种简单的FIFO通信信道,它是单向通信的. 通常启动进程创建一个管道,然后这个进程创建一个或者多个进程子进程接受管道信息,由于管道是单向通信,所以经常需要创建两个管道来实现双向通信. 命名管道 ...
- python dict批量选择_用python实现word内容批量替换
本文讨论一下如果使用python来批量替换word中的内容. 一.目标: 在word文档中,将水果的名称由中文替换为英文. 而且我们有多份word文档. 二.实现: 使用了python-docx 这个 ...
- arcgis python脚本实现从界面选择输入输出_arcgis python脚本实现从界面选择输入输出_ArcGIS Python编程案例(2)-使用ArcPy编写脚本......
本章将涉及以下案例: 使用ArcGIS Python窗体 访问ArcPy 从脚本中执行工具 使用ArcGIS桌面软件帮助系统 使用变量存储数据 访问ArcPy中的模块 引言 地理处理任务往往是耗时且重 ...
- python编程培训多少钱-python培训一般多少钱?[python培训]
python培训一般多少钱?目前有很多小伙伴对python开发非常感兴趣,而且python开发技术在当今的企业和社会受到高度重视,因此参与python培训的人员不断增加.那么,python培训一般多少 ...
- Python 1. 如何选择python版本,以及如何选择开发环境(IDE)
本文为原创文章转载请注明出处,博主博客地址:http://blog.csdn.net/qq_20259459 和作者信息. 点击打开链接(原文地址超链接点击阅读原文) 这是我在神经网络和matlab ...
- Python启动器(py.exe)主版本次版本相同补丁版本不同解释器选择的异常问题
Python解释器概述 在Windows中安装Python时,默认选择安排Python启动器(py.exe).Python启动器可帮助定位和执行不同版本的Python解释器. Python启动器(py ...
- tensorflow支持python3.83版本_Anaconda多版本Python管理以及TensorFlow版本的选择安装
Anaconda是一个集成python及包管理的软件,记得最早使用时在2014年,那时候网上还没有什么资料,需要同时使用py2和py3的时候,当时的做法是同时安装Anaconda2和Anaconda3 ...
最新文章
- OpenGL概念辨析: 窗口,视口,裁剪区域
- java访问修饰符详解——学java,零基础不怕,不只要理论,更要实践+项目,a href=http://www.bjweixin.com太原维信科技提供 /a...
- [BZOJ]2563: 阿狸和桃子的游戏
- 最佳拟合直线_JAVA
- 2个多边形,其中一个包围另一个,如何将中间的环带区域涂成红色
- [Spring5]IOC容器_Bean管理注解方式_组件扫描配置细节
- 独占线程太多怎么办_电脑内存被占用太多怎么办?
- java socket 重连复用_Java Socket编程基础及深入讲解(示例代码)
- 年薪20万的前端工程师成长线路指南!
- 2018-2019-2 网络对抗技术 20165322 Exp8 Web基础
- GridView 遍历每一行,两种写法
- JanusGraph的使用
- 向量叉积和点积混合运算_向量点积叉积及其几何意义
- 搭建-ico图标制作
- ORID焦点呈现法(Focused Conversation Method)
- 男人不想打工一辈子,再忙也要读这10本书,提高情商智商
- 李维:我的回忆和一些有趣的事(About Borland)(转载)
- 项目管理工具 | 软件开发项目管理软件
- Python与OpenCV(二)——基于背景差分法的运动目标检测程序分析
- swift swiftJson 解析json
热门文章
- ViewPager之使用PagerTabStrip添加标题栏,实现滑动效果
- python模块的发布_(转载)Python中模块的发布与安装
- 桌面制作——Wallpaper Engine+Rainmeter
- Nodejs学习笔记(一)——基础之全局对象、包和npm
- ajax失败的原因,使用https协议失败的ajax请求失败的可能原因但http工作
- import qs from qs 安装_Python 导包难道你只会个 import 吗?
- windows下ping命令的结果前加上系统的当前时间
- 第三十二章 elk(3)- broker架构 + 引入logback
- Socket相关操作超时
- python自动化运维之python2.6升级2.7和集中病毒扫描