是否有可能的方法/插件可以在Jenkins作业中止时运行后期构建脚本.我确实看到post build插件提供了一个执行一组脚本的操作,但这些脚本只能在成功作业或失败作业的2个选项上运行.
有没有办法在Post Build shell脚本中获取变量中Jenkins作业的状态.我想打印出如下消息.
"Build Status is $BUILD_URL :: $BUILD_STATUS"
Run Code Online (Sandbox Code Playgroud)
($ BUILD_STATUS是当前已完成构建的状态,例如:ABORTED,SUCCESS,FAILURE)
如何通过单个命令获取关于gerrit更改的最新refspec.我需要输出为"refs/changes/11/1234/4".是否有相同的git命令
我知道ssh命令结合gerrit查询和一些脚本可以获得这个,但想知道是否有更好的方法来做同样的事情.以下是我将用于获取refspec的ssh命令.
ssh -p $ REVIEW_SERVER_PORT $ GERRIT_REVIEW_SERVER gerrit query --format = TEXT --current-patch-set $ CHANGE_SHA | grep ref.
同样,我也想获得gerrit改变的最新补丁
我希望在字符串中第二次出现特定模式后删除所有内容.在Unix中最好的方法是什么?实现这一目标的最优雅,最简单的方法是什么; sed
,awk
或只是unix命令cut
?
我的意见是
After-u-math-how-however
Run Code Online (Sandbox Code Playgroud)
输出应该是
After-u
Run Code Online (Sandbox Code Playgroud)
第二次之后的所有东西都-
应该被剥离掉.正则表达式也应匹配模式的零次出现,因此应忽略零次或一次出现,并且从第二次出现时应删除所有内容.
所以如果输入如下
After
输出应该是
After
我正在尝试找到一种从命令行合并 GitLab 中的合并请求的方法。
有谁知道如何实现这一点,而不是从 GUI 界面合并相同的内容。
非常感谢任何指点。谢谢!
我正在使用 env 变量“currentBuild.result”来修改 Jenkins 作业的整体作业状态。
我可以将其设置为失败使用
currentBuild.result = 'FAILURE'
Run Code Online (Sandbox Code Playgroud)
我可以将其设置为 Aborted 使用
currentBuild.result = 'ABORTED'
Run Code Online (Sandbox Code Playgroud)
但我无法使用
currentBuild.result = 'SUCCESS'
Run Code Online (Sandbox Code Playgroud)
这让我发疯,知道我在这里做错了什么,以及在将整体工作状态设置为其他状态后如何将整体工作状态设置为成功的任何指示吗?
提前感谢任何指针!
我希望 Teamcity 在特定文件夹的特定分支上发生 gerrit 更改时触发构建。我无法实现相同的目标,非常感谢您所有有经验的用户的任何建议。
以下是我的结构的样子,我希望构建同时被 Branch dev 和 Staging 触发,仅在 New/Folder/My_Content 下进行任何更改,而不是在任何其他 foder 、文件内容上
- Branch dev
--Repo
* New/Folder/My_Content
* Folder 2
* Folder 3
* File1.txt
* File1.html
* File1.log
- Branch Staging
--Repo
* New/Folder/My_Content
* Folder 2
* Folder 3
* File1.txt
* File1.html
* File1.log
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的
VCS root name: my_root
set on branches
+:refs/(changes/*)
+:refs/heads/dev
+:refs/heads/Staging
VCS Trigger rules:
+:root=my_root:New/Folder/My_Content/**
Branch filter:
+:changes/*
Run Code Online (Sandbox Code Playgroud)
上述规则总是在所有文件夹上触发构建,除了我需要的文件夹。
我的第二个问题是,我可以在 VCS 触发器规则中使用参数吗?事情如下。
VCS Trigger rules:
+:root=my_root:New/Folder/%my_var%/**
Branch filter:
+:changes/*
Run Code Online (Sandbox Code Playgroud) 我想使用 powershell 获取属性的节点名称。谁能告诉我我们是否有相同的内置功能。
以下是我的名为 Pricefile.xml 的 xml 文件
<model type="model1" name="default" price="12.12" date="some_value">
<PriceData>
<item name="watch" price="24.28" date="2013-12-01"/>
<item name="toy" price="22.34" date="2013-12-02"/>
<item name="bread" price="24.12" date="2013-12-03"/>
</PriceData>
</model>
Run Code Online (Sandbox Code Playgroud)
假设我想获取属性“toy”的元素名称“item”。我怎样才能得到这些数据?
这是我到目前为止所拥有的。
[xml]$item = get-content pricefile.xml
$item.SelectNodes("//item/@*")
Run Code Online (Sandbox Code Playgroud)
这给了我以下输出,但我不知道如何从这里获取属性的元素或其父节点。
#text
-----
watch
24.28
2013-12-01
toy
22.34
2013-12-02
bread
24.12
2013-12-03
Run Code Online (Sandbox Code Playgroud)
如果我使用以下任何命令,我不会得到任何输出。
[xml]$item = get-content pricefile.xml
$item.SelectNodes("//item/@*").parentnode
$item.SelectNodes("//item/@*") | where {$_.parentnode}
Run Code Online (Sandbox Code Playgroud) 我正在尝试根据分隔符“.”拆分字符串。(点)在Jenkins 管道中使用常规 split 函数,我想将拆分子字符串分配给单行中的多个变量。以下是我的代码(它在 groovy 中工作),并且我在 Jenkins 管道中不断收到错误,我在这里做错了什么?有没有其他方法可以做到这一点?非常感谢任何指点。
IP="192.168.234.20"
def (env.W, env.X, env.Y, env.Z) = IP.split('\\.')
Error:
WorkflowScript: 543: expecting an identifier, found ',' @ line 543, column 28.
(env.W, env.X, env.Y, env.Z) = IP.split('\\.')
^
Run Code Online (Sandbox Code Playgroud)
IP="192.168.234.20"
(env.W, env.X, env.Y, env.Z) = IP.split('\\.')
Error:
WorkflowScript: 543: expecting ')', found ',' @ line 543, column 24.
(env.W, env.X, env.Y, env.Z) = IP.split('\\.')
^
Run Code Online (Sandbox Code Playgroud)