我在SO上看过类似的帖子,但并不完全是我想要做的(或者至少没有完整的命令来运行).
我试图使用curl远程触发Jenkins上的参数化构建.我启用了"防止跨站点请求伪造",因此我还需要传递有效的碎屑.
我的脚本如下:
#!/bin/bash
json="{\"parameter\": [{ \"P1\": \"param1\", \"P2\": \"param2\", \"P3\": \"param3\" }]}"
crumb=`curl "http://SERVER/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,%22:%22,//crumb)"`
curl -v -H $crumb -X POST http://SERVER/job/JOB_NAME/buildWithParameters -d token=runme --data-urlencode json="$json"
Run Code Online (Sandbox Code Playgroud)
我也尝试修改我传递给以下任何一个的URL:
USERNAME:APITOKEN@SERVER
Run Code Online (Sandbox Code Playgroud)
和
USERNAME:PASSWORD@SERVER
Run Code Online (Sandbox Code Playgroud)
卷曲的输出是:
* About to connect() to SERVER port 8080 (#0)
* Trying SERVER... connected
* Connected to SERVER (SERVER) port 8080 (#0)
* Server auth using Basic with user 'USERNAME'
> POST /job/JOB_NAME/buildWithParameters HTTP/1.1
> Authorization: Basic bjAwNjY5MjI6YWxLaW5kaTg=
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.13.1.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2
> Host: SERVER:8080 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在PM2上启动并运行Node/Express应用程序.我可以使用此命令启动应用程序:npm start
这启动了端口3000上的应用程序罚款.
如果我尝试启动应用程序,pm2 start app.js我会在日志中获得以下内容:
{ online: true, success: true, pid: 10714, pm2_version: '0.8.15' }
2014-06-12T19:52:06.789Z : [[[[ PM2/God daemon launched ]]]]
2014-06-12T19:52:06.800Z : RPC interface [READY] on 6666:localhost
2014-06-12T19:52:06.801Z : BUS system [READY] on 6667:localhost
2014-06-12T19:52:06.978Z : Entering in node wrap logic (cluster_mode) for script /home/user/test/app.js
2014-06-12T19:52:07.115Z : /home/user/test/app.js - id0 worker online
Run Code Online (Sandbox Code Playgroud)
在我的bin/www文件中,我有以下指定端口:
app.set('port', process.env.PORT || 3000);
Run Code Online (Sandbox Code Playgroud)
我也试过跑步 export PORT=3000
以及bin/www中的以下内容:
app.set('port', 3000);
Run Code Online (Sandbox Code Playgroud)
如果我跑了,netstat -an | grep 3000我什么也得不回来.
我试图根据计算字段计算MongoDB查询中的百分比 - 不确定这是否可行.我希望能够做的是计算失败百分比:(failed count / total) * 100
以下是一些示例文档:
{
"_id" : ObjectId("52dda5afe4b0a491abb5407f"),
"type" : "build",
"time" : ISODate("2014-01-20T22:39:43.880Z"),
"data" : {
"buildNumber" : 30,
"buildResult" : "SUCCESS"
}
},
{
"_id" : ObjectId("52dd9fede4b0a491abb5407a"),
"type" : "build",
"time" : ISODate("2014-01-20T22:15:07.901Z"),
"data" : {
"buildNumber" : 4,
"buildResult" : "FAILURE"
}
},
{
"_id" : ObjectId("52dda153e4b0a491abb5407b"),
"type" : "build",
"time" : ISODate("2014-01-20T22:21:07.790Z"),
"data" : {
"buildNumber" : 118,
"buildResult" : "SUCCESS"
}
}
Run Code Online (Sandbox Code Playgroud)
这是我正在尝试使用的查询.问题出在FailPercent/$ divide行:
db.col.aggregate([
{ $match: { "data.buildResult" …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Groovy和XmlSlurper完成访问作为根节点一部分的属性.我可以使用嵌套节点轻松完成此操作,但似乎无法访问根节点.
这是XML结构(简化):
<coverage lines-covered="2353" lines-valid="2943">
<sources />
<packages />
</coverage>
Run Code Online (Sandbox Code Playgroud)
我希望能够获得行覆盖和行有效的属性值.这是我正在尝试的代码:
def cobertura = new XmlSlurper().parse(xml)
def coverage = cobertura.coverage
def lines = cobertura.find { it.@lines-covered }
println lines
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
def cobertura = new XmlSlurper().parse("cobertura-coverage.xml")
def coverage = cobertura.coverage
println coverage.@lines-covered
Run Code Online (Sandbox Code Playgroud)
和:
def cobertura = new XmlSlurper().parse("cobertura-coverage.xml")
println cobertura.@lines-covered
Run Code Online (Sandbox Code Playgroud) 我在将聚类应用于聚合分组时遇到问题.我的原始数据如下所示:
{
"_id" : ObjectId("52deab2fe4b0a491abb54108"),
"type" : "build",
"time" : ISODate("2014-01-21T17:15:27.471Z"),
"data" : {
"buildNumber" : 43,
"buildDuration" : 997308,
"buildProjectName" : "TestABC",
"buildResult" : "SUCCESS"
}
}
Run Code Online (Sandbox Code Playgroud)
我想首先通过buildProjectName对日期进行排序.这是我的查询:
db.builds.aggregate([
{ $group: {
_id: {
month: { $month: "$time" },
day: { $dayOfYear: "$time" },
year: { $year: "$time" },
buildProjectName: "$data.buildProjectName",
},
buildDuration: { $avg: "$data.buildDuration" }
} },
{ $sort: {buildProjectName: 1, year: 1, month: 1, day: 1} }
])
Run Code Online (Sandbox Code Playgroud)
我已经尝试切换排序顺序(即:buildProjectName,日,月,年),但我总是得到相同的结果,日期不按顺序:
{
"result" : [
{
"_id" : …Run Code Online (Sandbox Code Playgroud) 我有一个非常类似的问题:使用Groovy脚本从Jenkins的Workspace读取文件
但是我需要从System Groovy脚本中读取文件,因此使用Text-finder或Groovy PostBuild插件的解决方案将无法正常工作.
如何从系统groovy脚本获取工作空间路径?我尝试过以下方法:
System.getenv('WORKSPACE')
System.getProperty("WORKSPACE")
build.buildVariableResolver.resolve("WORKSPACE")
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有以下MongoDB查询按日期和结果分组并给出计数.我希望查询还为特定日期返回0,如果当天不存在数据,则返回结果.
例如,我有以下结果状态:SUCCESS和FAILED.如果在21日没有FAILED的结果我想要一个返回0的计数:
{
"_id" : {
"month" : 1,
"day" : 21,
"year" : 2014,
"buildResult" : "FAILURE"
},
"count" : 0
}
Run Code Online (Sandbox Code Playgroud)
我已经使用关系数据库和日历表做了类似的事情,但我不确定如何使用MongoDB来解决这个问题.这是可能的,还是应该在运行查询后以编程方式执行某些操作?
以下是数据库中文档(简化)的示例:
{
"_id" : ObjectId("52deab2fe4b0a491abb54108"),
"type" : "build",
"time" : ISODate("2014-01-21T17:15:27.471Z"),
"data" : {
"buildNumber" : 43,
"buildDuration" : 997308,
"buildResult" : "SUCCESS"
}
}
Run Code Online (Sandbox Code Playgroud)
这是我目前的查询:
db.builds.aggregate([
{ $match: { "data.buildResult" : { $ne : null} }},
{ $group: {
_id: {
month: { $month: "$time" },
day: { $dayOfMonth: "$time" },
year: { $year: "$time" …Run Code Online (Sandbox Code Playgroud) 在Ant中是否可以使用不同的参数多次调用相同的目标?
我的命令如下所示:
ant unittest -Dproject='proj1' unittest -Dproject='proj2'
Run Code Online (Sandbox Code Playgroud)
问题是unittest运行两次,但仅适用于proj2:
unittest:
[echo] Executing unit test for project proj2
unittest:
[echo] Executing unit test for project proj2
Run Code Online (Sandbox Code Playgroud)
我知道我可以运行两个单独的ant命令,但这会导致单元测试报告文件出现其他问题.
我在Jenkins中有一个'Execute Groovy script'构建步骤.此步骤包含两个文件 - 名为createWorkspaces.groovy的客户端文件和名为WorkspaceBean.groovy的Bean文件.两者都位于作业工作区中的相同位置.
以前运行Jenkins 1.554这没有问题,但升级到1.594后,我收到以下错误:
/jenkins/workspace/testjob/scripts/groovy/createWorkspaces.groovy: 75: unable to resolve class WorkspaceBean
@ line 75, column 21.
def workspace = new WorkspaceBean()
^
1 error
Run Code Online (Sandbox Code Playgroud)
我已批准新脚本批准功能中的脚本,并且还将文件的位置添加到作业步骤中的类路径参数以及jenkins-core.jar文件的位置.
有什么想法为什么停止工作?
我试图解析XML文件并遇到此错误:
org.xml.sax.SAXParseException: Content is not allowed in prolog
Run Code Online (Sandbox Code Playgroud)
我在SO上看过其他帖子,但我的XML文档看起来还不错 - 在XML声明之前没有额外的字符或空格.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
<coverage branch-rate="0.24074074074074073" branches-covered="39" branches-valid="162" complexity="0" line-rate="0.3485915492957746" lines-covered="198" lines-valid="568" timestamp="1396622452625" version="0.2.6">
Run Code Online (Sandbox Code Playgroud)
这是脚本的相关部分(Groovy 1.8.9):
def coveragedata = new XmlSlurper(false,false).parseText(coverageFile)
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助.