对于如何在jenkins中获得工作的相应构建工件?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解jenkins怎么构建,并且为您提供关于groovy–如何在Jenkins工作流中编辑构建参
对于如何在jenkins中获得工作的相应构建工件?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解jenkins怎么构建,并且为您提供关于groovy – 如何在Jenkins工作流中编辑构建参数?、Jenkins PR 是否构建与源->目标合并相同的工件?、从 docker 容器中运行的 Jenkins 传输构建工件的问题、创建工作并使用REST在jenkins中执行的宝贵知识。
本文目录一览:- 如何在jenkins中获得工作的相应构建工件?(jenkins怎么构建)
- groovy – 如何在Jenkins工作流中编辑构建参数?
- Jenkins PR 是否构建与源->目标合并相同的工件?
- 从 docker 容器中运行的 Jenkins 传输构建工件的问题
- 创建工作并使用REST在jenkins中执行
如何在jenkins中获得工作的相应构建工件?(jenkins怎么构建)
我使用 hudson.cli.CLI jar* 创建Jenkins职位。我在 “构建后步骤” 部分中选择了 “归档工件”
选项。它将每个成功构建的工件存档。我正在使用 jenkins远程访问api 获取有关 作业的 详细信息。并获取有关 构建的
详细信息。 http://localhost:8080/job/job_name/api/json
http://localhost:8080/job/job_name/job_number/api/json
***
在删除构建时,不会删除相应的归档工件。我想确保将其删除。
当我使用jenkins远程访问apihttp://localhost:8080/job/[job_name]/[job_number]/api/json
进行构建时,它会返回json数据,其中包含
所有
先前已存档的工件(其他成功的构建工件)以及此(运行的构建)工件。如何获得构建的相关工件(成功的构建应返回其工件,而不是所有先前的成功工件)。有什么建议或想法吗?
答案1
小编典典我怀疑您没有清理构建之间的工作区,而是存档在那里找到的所有工件,包括先前构建的工件。
groovy – 如何在Jenkins工作流中编辑构建参数?
def currentParamActions = build.getAction(ParametersAction.class) def currentParams = currentParamActions.getParameters() currentParams.each() { if ( it.name.equals("BRANCH_REVISION") ) { newParams.add( new StringParameterValue("BRANCH_REVISION",newRevision ) ) } else { newParams.add( it ) } } build.actions.remove(currentParamActions) new_param_actions = currentParamActions.createUpdated(newParams) build.actions.add(new_param_actions)
但是,似乎这在Workflow中不起作用,因为无法访问构建对象.在此先感谢您的帮助!
解决方法
The
currentBuild
variable may be used to refer to the currently running build. It is an object similar to that documented for the return value of thebuild
step.
根据org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper
这是currentBuild的类型,使用currentBuild.build()代替构建问题中的代码.
Jenkins PR 是否构建与源->目标合并相同的工件?
如何解决Jenkins PR 是否构建与源->目标合并相同的工件??
我试图测试/证明在 Jenkins 中在 Pull Request 作业中发生的构建创建与源分支合并到目标分支时发生的构建完全相同的工件(并且可能相同的哈希)的理论.
理论上,当在 GitHub 中打开 PR 时,Jenkins 在其本地克隆的存储库中创建一个“分支”,并在那里合并 <script>
。因此,理论上,当 PR 关闭时,在目标分支上生成的构建与 PR 构建的结果完全相同,直到散列。
但我正在查看 PR 版本的 Jenkins 控制台,但我不确定我看到了什么。
让我感到困惑的是这些位,它们都是由 Jenkins 自动发生的:
import
为什么生成的合并哈希与源提交哈希相同? (source -> target
)
此外,它似乎实际上是在合并 Pull request #20 opened
Obtained Jenkinsfile from a3f5e277e1575ed9e7caf6e6309136d049892aef+c0762f9708f9bbff7e3cb642cc3bf2a35e4bc291 (1f784e2f67f7b82da699c6ccaddbbc5b14af0909)
Merging remotes/origin/develop commit c0762f9708f9bbff7e3cb642cc3bf2a35e4bc291 into PR head commit a3f5e277e1575ed9e7caf6e6309136d049892aef
> git checkout -f a3f5e277e1575ed9e7caf6e6309136d049892aef
> git merge c0762f9708f9bbff7e3cb642cc3bf2a35e4bc291
Merge succeeded,producing a3f5e277e1575ed9e7caf6e6309136d049892aef
Checking out Revision a3f5e277e1575ed9e7caf6e6309136d049892aef (PR-20)
,而不是 a3f5e
。这只是古怪的 git 术语,还是它实际上是按照它出现的方式进行的?重要吗?
我也刚刚注意到在第一行中,两个都是来自源和目标的哈希。根据 github 的说法,括号 (target->source
) 中的哈希值没有出现在 repo 中的任何地方。那么合并发生在哪里呢?在 Jenkins 中还是在 GitHub 中?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
从 docker 容器中运行的 Jenkins 传输构建工件的问题
首先,进入“Manage Jenkins”>“Credentials”,添加一个类型为“SSH Username with private key”的新SSH凭证,并填写“Username”和你的私钥(如果你还没有填写,请生成一个还)字段(您也可以上传一个)。不要忘记您必须将生成的公钥复制到远程服务器上的 ${SSH_USERNAME}/.ssh/authorized_keys
文件中。
我假设您在此处使用脚本化或 DSL 管道。在您的代码中,构建应用程序后,您可以将其推送到您的服务器,并将此步骤添加到您的管道中:
pipeline {
stages {
stage("Pushing changes to remote server") {
steps {
script {
def remote_server = "1.2.3.4"
withCredentials([sshUserPrivateKey(credentialsId: 'my-key',keyFileVariable: 'SSH_KEY',passphraseVariable: '',usernameVariable: 'SSH_USERNAME')]) {
sh "scp -i \${SSH_KEY} build/ ${SSH_USERNAME}@${remote_server}:/var/files/react-tester/"
}
}
}
}
}
}
最好的问候。
创建工作并使用REST在jenkins中执行
我正在尝试创建一个WCF
REST客户端,该客户端将与Jenkins通信并从XML文件创建作业,然后构建该作业。我的理解是,您可以使用Jenkins做到这一点。
有人可以提供一些命令,您可以在浏览器的地址栏上键入这些命令来创建和构建作业吗?即:http:localhost/jenkins/createItem?name=TESTJOB
沿着这些思路。
关于如何在jenkins中获得工作的相应构建工件?和jenkins怎么构建的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于groovy – 如何在Jenkins工作流中编辑构建参数?、Jenkins PR 是否构建与源->目标合并相同的工件?、从 docker 容器中运行的 Jenkins 传输构建工件的问题、创建工作并使用REST在jenkins中执行的相关知识,请在本站寻找。
本文标签: