xml - Jenkins Job 无需构建步骤即可创建 Powershell Jenkins 自动化
问题描述
我的团队在虚拟机上有一个在线 Jenkins,我们都在使用它。我们想在本地安装 Jenkins 以进行测试和多任务处理。我编写了一个脚本,从在线 Jenkins 获取所有工作并将它们上传到我本地的 Jenkins。问题是作业在没有构建步骤的情况下被上传。但是当我查看 config.xml 时,这些步骤就在那里,但它们根本没有显示在仪表板上,也没有运行。
这就是我上传它们的方式:
$headers = @{'Authorization' = 'Basic ' + [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("$($Username):$($Password)")); 'Jenkins-Crumb' = $Crumb }
$response = Invoke-WebRequest `
-Uri "$($Url)createItem?name=$JobName" `
-Headers $headers `
-ContentType "text/xml" `
-Body $JobConfig `
-WebSession $Global:crumbSession `
-Method Post
我怀疑的是,当我查看在线 Jenkins 的 config.xml 时,配置如下所示:
<?xml version='1.1' encoding='UTF-8'?>
<project>
<actions/>
<description>
但是上传到我本地 Jenkins 上的那个看起来像这样:
<?xml version="1.1" encoding="UTF-8"?>
<project>
<actions/>
<description>
它们之间有细微的差别,例如单引号和双引号,以及一些正在转换的 HTML 实体。除此之外,我不知道为什么它不显示构建步骤,因为我提到构建器标签在两个配置中都存在,完全相同,但它根本不会出现在仪表板上,也不会运行.
感谢阅读:)
解决方案
所以经过一番挖掘,我设法找到了这个问题的根本原因。问题是两个Jenkins的版本不同。网上的Jenkins是2.176.3的版本,我本地的Jenkins是2.222.4高一点的。将作业从旧版本加载到新版本会导致加载作业时出现一些错误。显然向后兼容性对詹金斯来说不是一件事情:)。
推荐阅读
- wordpress - WordPress is_search() 函数总是假的
- vb.net - 动态分配 Form 对象
- java - 如何检查矩形和 TextureRegion LibGDX 之间的交集?
- c# - 使用正则表达式删除 \u 字符不起作用
- android - MediaManager.addCompletionHandler 在 Android 上不起作用
- c++ - 如何在 Jasper JPEG2000 中指定小端
- javascript - 更改事件的输入不适用于 Farbtastic 颜色选择器
- python - Python PyQt 改变组合框的布局
- java - Android 按钮返回为 null
- exception - Katalon Studio 在退出期间抛出错误消息