小编luk*_*a5z的帖子

如何列出jenkins管道作业中的所有`env`属性?

鉴于jenkins 2.1构建管道,jenkins将一个env变量注入到node{}.例如,BRANCH_NAME可以使用

node {
    echo ${env.BRANCH_NAME}
    ...
Run Code Online (Sandbox Code Playgroud)

我想回显jenkins管道中的所有 env属性.

我正在寻找像这样的代码

node {
    for(e in env){
        echo e + " is " + ${e}
    }
    ...
Run Code Online (Sandbox Code Playgroud)

这会像回应一样

 BRANCH_NAME is myBranch2
 CHANGE_ID is 44
 ...
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-pipeline

88
推荐指数
11
解决办法
11万
查看次数

如何使用Jenkins Pipeline插件实现Post-Build阶段?

在阅读了解释Pipeline插件的Jenkins 教程后,似乎插件应该可以实现Post-Build步骤.但是,文档在具体说明方面相当有限.

例如,我想知道如何实现:

  • 仅在构建成功时运行
  • 仅在构建成功或不稳定时运行
  • 无论构建结果如何都运行

(我注意到最终的构建状态被设置为SUCCESS,即使某些阶段,即'build'在基于最后阶段设置时失败了.这是否意味着最终构建状态需要明确设置,即currentBuild.result = 'UNSTABLE'?)

jenkins jenkins-workflow jenkins-pipeline

49
推荐指数
3
解决办法
7万
查看次数

Jenkins Pipeline插件是否支持Do​​cker Compose?

我正在寻找一种方法来运行由Jenkins 2.0中的多个容器组成的支持Docker的构建.

是否有任何计划在Pipeline中Docker Compose进行原生支持,或者通过CloudBees docker插件进行管道.

或者可以/必须通过显式调用解决这个问题sh docker-compose...吗?甚至可以在内部使用它们try... finally 来进一步控制服务生命周期.


编辑:第一个答案是建议一种在jenkins中构建docker容器的方法.这不是这里所需要的.我(EngineerDollery)希望使用compose在jenkins中启动我的目标平台,以便我可以将我的应用程序部署到它并运行端到端测试.

jenkins docker jenkins-pipeline

39
推荐指数
1
解决办法
3万
查看次数

如何阅读详细信息:GC输出?

70.222:[GC [PSYoungGen:131072K-> 15437K(152896K)] 131072K-> 15509K(502464K),0.0228420 secs] [次:用户= 0.09 sys = 0.01,real = 0.02 secs]

java garbage-collection memory-management

28
推荐指数
2
解决办法
4万
查看次数

docker run --user和--group-add参数之间的区别

docker run参数之间有什么区别:

   -u, --user=""
      Sets the username or UID used and optionally the groupname or GID for the specified command.

   The followings examples are all valid:
      --user [user | user:group | uid | uid:gid | user:gid | uid:group ]

   Without this argument the command will be run as root in the container.
Run Code Online (Sandbox Code Playgroud)

   --group-add=[]
      Add additional groups to run as
Run Code Online (Sandbox Code Playgroud)

docker

21
推荐指数
2
解决办法
4万
查看次数

Jenkins共享管道库:我可以在vars文件中声明静态变量吗?

Jenkins共享管道库是否支持vars/*. groovy文件中的静态变量?

例子

"隐式"引用全局变量(不起作用)

file: vars/foo.groovy
---
def functionFoo() {return "foo"}



file: vars/bar.groovy
---
def result = functionFoo()
def functionBar() {println result}


file:Jenkinsfile
---
@Library('MyLib') _
bar.functionBar()
Run Code Online (Sandbox Code Playgroud)

抛出错误:

groovy.lang.MissingPropertyException:没有这样的属性:对于类的结果:groovy.lang.Binding.getVariable(Binding.java:63)中的groov.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty的groovy.lang.Binding (SandboxInterceptor.java:224)org.kohsuke.groovy.sandbox.impl.Checker $ 4.call(Checker.java:241)org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:238)在com.cloudbees.groovy.cps.sandbox.SandboxInvoker.getProperty(SandboxInvoker.java:24)com.cloudbees.groovy.cps.impl.PropertyAccessBlock.rawGet(PropertyAccessBlock.java:20)....

"明确地"引用全局变量(确实有效)

file: vars/foo.groovy
---
def functionFoo() {return "foo"}



file: vars/bar.groovy
---
def functionBar() {
    def result = functionFoo()
    println result
}


file:Jenkinsfile
---
@Library('MyLib') _
bar.functionBar()
Run Code Online (Sandbox Code Playgroud)

摘要

我假设变量要么以不同的方式初始化,要么根本无法与vars/目录一起使用,就像函数一样.这个功能是Groovy语言的一部分吗?还是詹金斯全球管道图书馆的限制?

jenkins jenkins-pipeline

9
推荐指数
1
解决办法
4444
查看次数

Jenkins Pipeline:如何为全局共享库添加帮助

根据文档,应该可以包含*.txt带有帮助/文档的文件:

(root)
 +- src                     # Groovy source files
 |   +- org
 |       +- foo
 |           +- Bar.groovy  # for org.foo.Bar class
 +- vars
 |   +- foo.groovy          # for global 'foo' variable/function
 |   +- foo.txt             # help for 'foo' variable/function
 +- resources               # resource files (external libraries only)
 |   +- org
 |       +- foo
 |           +- bar.json    # static helper data for org.foo.Bar
Run Code Online (Sandbox Code Playgroud)

...

vars目录托管定义可从Pipeline脚本访问的全局变量的脚本.每个*.groovy文件的基本名称应该是Groovy(~Java)标识符,通常是camelCased.匹配的*.txt(如果存在)可以包含文档,通过系统配置的标记格式化程序处理(因此可能真的是HTML,Markdown等,尽管需要txt扩展名).

不幸的是,通过简单地创建*.txt一些任意内容,它对我没用.

我错过了什么吗?或者全局共享库没有在通常的Jenkins地方显示文档:在此输入图像描述

jenkins jenkins-pipeline

9
推荐指数
1
解决办法
2471
查看次数

如何在jenkins管道控制台输出中抑制源脚本行回显?

我正在Jenkins中编写一个管道作业,它显示了管道控制台输出中下游作业的输出控制台.到目前为止,这项工作正在进行,但由于管道作业本身将所有回声线添加到输出中,因此输出很难读取.

Started by user john.doe@cdf.com
[Pipeline] Allocate node : Start
Running on swqa-pr-prod-slave-1 in /srv/jenkins-slave/workspace/UUT Automated Regression - 1.20
[Pipeline] node {
[Pipeline] echo

[Pipeline] echo
/////////////////////////////////////////////////
[Pipeline] echo
                Start Execution                  
[Pipeline] echo
/////////////////////////////////////////////////
[Pipeline] echo

[Pipeline] echo

[Pipeline] [monitor] echo
[monitor] [EnvInject] - Loading node environment variables.
[Pipeline] [monitor] echo
[monitor] Building remotely on swqa-pr-prod-slave-1 (pr-prod-linux-slaves) in workspace /srv/jenkins-slave/workspace/Process Map Components Lock Down - 1.00
[Pipeline] [monitor] echo
[monitor] [EnvInject] - Injecting environment variables from a build step.
[Pipeline] …
Run Code Online (Sandbox Code Playgroud)

groovy jenkins jenkins-pipeline

8
推荐指数
1
解决办法
3659
查看次数

如何用systemd更改dockerd参数?

自16.04发布以来,Ubuntu停止使用Upstart并切换到Systemd用于其init系统.

如何更改默认的DOCKER_OPTS参数?

systemd docker

5
推荐指数
1
解决办法
3099
查看次数

Jenkins Pipeline:如何在构建多分支项目后构建作业构建?

是否可以Build after other projects are built为Pipeline Multibranch定义,特别是对于org.文件夹如GitHub OrganizationBitbucket Tream/Project

例:

properties([pipelineTriggers([upstream(
        threshold: hudson.model.Result.SUCCESS,         
        upstreamProjects: "../multibranch-job/master")])])
Run Code Online (Sandbox Code Playgroud)

它有用吗?它需要绝对路径还是相对路径?

jenkins jenkins-pipeline

3
推荐指数
1
解决办法
2261
查看次数

如何使用管道作业的CopyArtifact插件传递从中复制工件的内部版本号?

如何传递在Pipeline Job中复制工件的构建号?因为默认此步骤复制来自上一个稳定构建的工件,并且我需要来自特定构建的复制工件(例如123).

我的管道代码在这里:

node {
  stage "Copy artifacts"
  step ([$class: 'CopyArtifact',
          projectName: 'other-project',
          filter: 'myapp.jar']);
}
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-workflow jenkins-pipeline

1
推荐指数
1
解决办法
3659
查看次数