确实哟,Pipeline Syntax 的 env 有 BRANCH_NAME 这个变量
多出来的那句,到底是谁的意思?
是谁想无限制任意的访问用户数据?
https://stackoverflow.com/questions/25509067/git-branch-select-in-jenkins-with-groovy-script
这个先看下能不能解决你的问题?我对你的问题也有点晕
https://stackoverflow.com/questions/42501553/jenkins-declarative-pipeline-how-to-read-choice-from-input-step/42502838#42502838
这个据说解决了问题
我们加下 QQ? 443056241,我可以运行下看看,行不行
因为
(1).active choice 和 extended choice 也可以考虑
(2).另外 script pipeline 和 declarative pipeline 对于不同的 choice 也要求不同
佩服楼主的毅力,也在思考转型
迷茫的 2017
对的,lkx 正解,权限没加。关于这一点,docker doc 有明确提到
估计需要在调查下才能知道
这个问题很好理解,原因是因为你是 docker 方式启动 jenkins,docker 中的 jenkins 不识别 python,应该映射进去就好了,具体如下:
docker run -p 8080:8080 -p 50000:50000 -v /Users/XXXi/jenkins_home:/var/j -v python路径:docker中路径
然后后面调用 python 的时候,记得使用 docker 中的路径
不熟悉的话其实不太建议用 docker 方式使用 Jenkins,会有一些小坑,当然如果你对 docker 很熟悉,也没问题的 (个人的小建议哈)
下面是个人理解:除了 tcp/http,还有 dubbo/restful......
多数都可以使用 jmeter,例如 dubbo,你可以再写一个 jar,让 jmeter 能执行 dubbo 请求
框架一般都是自动化使用的,java/python/ruby 均可,编程语言写接口测试的比较少,除非特殊情况
都不是绝对的,看你的需求,然后可以自己选择
同意 dongdong 的说法,例如 tcp/ip,这是一个协议族,一堆协议,对应一堆的 RFC 文件......
原来是和 ansible 同一级别的东西。学习了
已报名
(1).docker 的用法,你还是找的不对,我等下后面是我这边实际的 docker 使用,不是在 tools 里面用 docker
(2).确切说,目前 pipeline 不支持 choice 中选择非默认 (第一个) 选项这样的用法,要看你的目的是什么,这样用的需求是什么。这就好比说你不能要求汽车飞起来一样,至少目前是这样的,无法这样用,如果抛开 pipeline,是可以支持的 (就是 Extensible Choice Parameter plugin 这个插件)
下面是一个使用 docker 的例子:
佩服 + 学习,持续关注中......
python 的好处,第三方库很多很丰富,开发速度快
(1).github 用 rails on ruby 开发的,这个性能上应该说是经受住考验的,毕竟是面向全球的
(2).至于"知乎这个网站,就是用 python 写的,tornado 框架",我不知道知乎使用 python 写的,不了解 github 和知乎的线上实际情况,不好评判
马上检查更改
手游情况分化比较严重,多数都是由前几名的大企业垄断了
(1).有长期的也有短期几个月就上线的
(2).一般来说除了极端的一些,多数手游生命周期不长
综合各种情况分析处理
接受批评,马上看
这个必须赞!
—— 来自 TesterHome 官方 安卓客户端
其实我觉得一般来说不存在绝对的哪些工作适合专门的语言
需要什么语言,就调研下,然后选用什么语言即可
个人感觉 java 用途稍微稍微广一些,我用 python 写过一些小的脚本,flask 框架写过一个内部用打包网站,一个 app 的自动化;觉得 python 不适合商业上的网站,内部网站用用没关系,公开的官网用 python 实现,觉得性能上不行
我来回答下你的问题
(1).choice 怎么选择到 ABCD
(1.1).这是一个 choice,也就是执行这个 pileline 脚本前就要先选择一个 (不是选 1234,就是选 ABCD),所以不存在怎么选择到 ABCD
Pipeline 组件毕竟有一层封装,这个不可以像我们编写 vc/vb/html/c#/java......那样,界面可以默认初始化选定第二项 ABCD
(1.2).抛开 pipeline,jenkins 有一个插件可以做到默认值为非第一项 (Extensible Choice Parameter plugin)。但是很不幸,pipeline 插件目前不支持这个 Jenkins 插件 (Extensible Choice Parameter plugin)
(1.3) 至于 ${params.choiceTest[1]}取到的值是 2,你会发现
${params.choiceTest}----------------->1234
${params.choiceTest[0]}-------------->1
${params.choiceTest[1]}-------------->2
${params.choiceTest[2]}-------------->3
${params.choiceTest[3]}-------------->4
现在明白为什么 ${params.choiceTest[1]}取到值为 2 了???
(2). tools 用法,如果想使用 docker 该怎么写
tools 典型的用法
def mvnHome = tool 'M3'
sh "${mvnHome}/bin/mvn -B -Dmaven.test.failure.ignore verify"
也就是说 tools 实际上是读取 Jenkins-->Global Tool Configuration 里面的公共配置,更通常用于多 node 情况
至于你说的使用 docker,建议去查下"pipeline-syntax",里面有怎么使用 docker 的语法
(3). tools,比如安装的三方插件或者说只要不是一个单词像 jdk maven gradle 这样的都不知道该怎么写
实践证明不是一个单词,也是 OK 的, pipeline 关键代码如下:
node('master') {
def mvnHome = tool 'my jdk'
sh "${mvnHome}bin/java -version"
}
运行结果如下:
[test-long-toolsname] Running shell script
+ /opt/jdk1.8.0_151/bin/java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
(4) .像 string 那个参数那样,既然是 defaultValue,我理解的是应该可以替换,那么需要怎样替换
这个是 pipeline 插件提供的,定义和读取类似如下
string(name:'test', defaultValue: 'test1', description: '')
${params.strPara}
你要非常清楚这个 string 是 pippeline 支持的,才可以这样使用,所以这个并不是通常意义上理解的 String 类型变量,让你想怎么办就怎么办
总体感觉你对 jenkins-pipeline 比较陌生,建议你先去读一遍 pipeline doc(我稍后在本版发一下 pipeline 官方文档的中文版),再看你想要实现的功能,或许会有不同的感触。