我有一个 jenkins 工作,它有一个 git repo 作为 scm,jenkins 通过 ssh 连接到后者。
当涉及到 clone 命令时,一切都很好,我已经在 .ssh/config 中设置了正确的密钥,它被 Jenkins 使用。
但是当涉及到使用插件 maven-release-plugin(尝试版本 2.3.2 和 2.5.1)执行 maven 发布时,它会因访问被拒绝而失败。
[INFO] Executing: /bin/sh -c cd /path/slave/workspace/foo-27 && git push ssh://git@git.url/mfx/project.git refs/heads/develop-27:refs/heads/develop-27
[INFO] Working directory: /path/slave/workspace/foo-27
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 46.447s
[INFO] Finished at: Fri Oct 10 20:00:06 GMT 2014
[INFO] Final Memory: 15M/222M
[INFO] ------------------------------------------------------------------------
[JENKINS] Archiving /path/slave/workspace/foo-27/pom.xml to /bld/shared/jenkins/jobs/foo-27/modules/bar$project/builds/2014-10-10_19-59-14/archive/bar/project/27.1.1.0-SNAPSHOT/project-27.1.1.0-SNAPSHOT.pom
Waiting for Jenkins to finish collecting data
mavenExecutionResult exceptions not …Run Code Online (Sandbox Code Playgroud) 尝试在Python 3.2.3上导入python-mysql.connector并收到一个奇怪的堆栈。我怀疑我的 ubuntu 12.04 安装配置不正确。
vfi@ubuntu:/usr/share/pyshared$ python3
Python 3.2.3(默认,2013 年 9 月 25 日,18:22:43)
[GCC 4.6.3] 在 linux2 上
输入“帮助”、“版权”、“信用”或“许可”以获取更多信息。
>>> 导入 mysql.connector
回溯(最近一次调用最后一次):
文件“”,第 1 行,在
导入错误:没有名为 mysql.connector 的模块
sys.excepthook 中的错误:
回溯(最近一次调用最后一次):
文件“/usr/share/pyshared/apport_python_hook.py”,第 66 行,在 apport_excepthook
从 apport.fileutils 导入可能_打包,get_recent_crashes
文件“apport/__init__.py”,第 1 行,在
从 appport.report 导入报告
文件“apport/report.py”,第 20 行,在
导入 appport.fileutils
文件“apport/fileutils.py”,第 22 行,在
从 apport.packaging_impl 导入 impl 作为包装
文件“apport/packaging_impl.py”,第 20 行,在
导入 apt
文件“apt/__init__.py”,第 24 行,在
从 apt.package 导入包
文件“apt/package.py”,第 1051 行
返回 file_list.read().decode("utf-8").split(u"\n")
^ … 我创建了一个 IAM 角色并将其分配给我的 EC2 实例。我创建了一个 IAM 角色策略并将其链接到我的 S3 存储桶。我现在可以使用aws-cliEC2 实例上的列出我的 S3 存储桶中的文件。
[root@ec2.hostname.aws.com ~]# aws --region eu-west-1 s3 ls s3://s3-bucket-name
2017-05-02 02:37:39 137 index.html
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试访问curl该文件,则会收到拒绝访问错误:
[root@ec2.hostname.aws.com ~]# curl https://s3-eu-west-1.amazonaws.com/s3-bucket-name/index.html
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>782176F442A4995A</RequestId><HostId>qZWZTXZdlgtD4BiVYfp5+Mj/gU3UXRiYQmsSyaAhwED1JtzUWs9QKE99RmsQ6w0uDB
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以让这个curl请求工作而不放宽 S3 存储桶的权限?诸如身份验证、标头等之类的东西。
我使用Jenkins ver. 1.522并且我想传递一个带有空格和引号的长字符串作为参数化构建部分中的参数.该作业只运行python脚本.
我的问题是我找不到逃脱我的字符串的方法,以便jenkins将它正确地传递给脚本.
假设...
串: fixVersion in ("foo") AND issuetype in (Bug, Improvement) AND resolution = Fixed ORDER BY resolution ASC, assignee ASC, key DESC
变量名:bar
脚本名称:coco.py
当我在终端中运行脚本时,一切都很好: python coco.py --option 'fixVersion in ("foo") AND issuetype in (Bug, Improvement) AND resolution = Fixed ORDER BY resolution ASC, assignee ASC, key DESC'
当我使用参数化构建与jenkins运行相同的脚本并尝试转义变量,因此它最终被py脚本作为一个参数,它被jenkins奇怪地想象.
在我的jenkins工作中,我称之为脚本: python coco.py --option \'${BAR}\'
它最终成为:
python coco.py --option '"fixVersion' in '('\''foo'\'')' AND issuetype in '(Bug,' 'Improvement)' in '(Production,' 'Stage)' AND resolution = Fixed ORDER …
如何使用在 make 目标中定义的变量
.PHONY: foo
VAR_GLOBAL=$(shell cat /tmp/global)
foo:
echo "local" > /tmp/local
VAR_LOCAL=$(shell cat /tmp/local)
echo ${VAR_GLOBAL}
echo ${VAR_LOCAL}
Run Code Online (Sandbox Code Playgroud)
这是执行输出:
$ echo global > /tmp/global
$ make foo
echo "local" > /tmp/local
VAR_LOCAL=local
echo global
global
echo
Run Code Online (Sandbox Code Playgroud) 很快就会发现,我是golang n00b。
我有一些基于事件通道启动goroutine的go代码。假设它启动了2个goroutine,因为我们收到了2个START类型的事件。
goroutine以uri作为参数开始,这给了我们一些独特之处。
稍后我们收到一个STOP类型的事件。
如何停止以相同uri开始的goroutine?
for {
select {
case event := <-eventCh:
if event.Entry != nil {
switch event.Action {
case foo.START:
log.Println("uri: ", event.Entry.URI)
go func(c chan []byte, u string) error{
//awesome goroutine code
}(myChan, event.Entry.URI)
case foo.STOP:
log.Println("uri: ", event.Entry.URI)
//I'd like to terminate the goroutine that matches event.Entry.URI
}
}
}
}
Run Code Online (Sandbox Code Playgroud)